Javascript 使用three.js在3D场景中绘制不规则的水

Javascript 使用three.js在3D场景中绘制不规则的水,javascript,three.js,Javascript,Three.js,我想在3d场景中使用水元素绘制一条平面河流。但这条河的河道是不规则的,不是矩形的,如下图所示。 水元素定义为 water = new THREE.Water( waterGeometry, { color: params.color, scale: params.scale, flowDirection: new THREE.Vector2( params.flowX, params.flowY ), textureWidth:

我想在3d场景中使用水元素绘制一条平面河流。但这条河的河道是不规则的,不是矩形的,如下图所示。 水元素定义为

 water = new THREE.Water( waterGeometry, {
        color: params.color,
        scale: params.scale,
        flowDirection: new THREE.Vector2( params.flowX, params.flowY ),
        textureWidth: 1024,
        textureHeight: 1024
    } );`

仅为水描述了两个参数:长度和宽度。我怎样才能画出一幅不规则的水样的画呢。谢谢。

你应该做一个水窗格,平的和长方形的。“世界”窗格应该有一个深度,水可以从中穿过。因此,地形(河岸)必须是不规则的

(为我拙劣的绘画技巧感到抱歉)

可以使用heightmapping创建任意深度和形状的地形


如何从heightmap创建地形。

我不熟悉three.js,但你不能从图像中剪切河流,并将图像放置在水元素矩形的顶部吗?另一个选项是将河水几何体分离到单独的模型中,并对其应用水着色器。这样你就可以在不同的高度拥有河流/湖泊。