我有一个由 THREE.PlaneBufferGeometry
(水面)组成的网格,该表面上有另一个对象(船)。我的问题是,当船稍微入水时,您会看到水突然出现在船内(因为 y 值较高)。
我该如何解决这个问题?
我正在考虑计算船内部的尺寸并尝试将它们传递到水面的着色器。 (如果该点在内部,请将其隐藏。)这是最好的方法吗?我该如何做到这一点?
编辑:水应该与船的两侧重叠(例如显示在船的前面)。澄清一下:
Current situation: Desired situation:
B A
| | | |
-----|---------|-------- -----| |--------
|_________| |_________|
从 [A] 处,您不应该看到船对象内的水,从 [B] 处,您不应该看到船的下部。
最佳答案
尝试禁用水面的深度写入。检查以下示例。假设蓝色平原是水,红色平原是船。
//codepen.io/OlxandrPopov/pen/xwVBKg
关于javascript - 当 THREE.PlaneBufferGeometry 位于另一个对象内时,如何隐藏它的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32659057/