2015-09-18 84 views
0

我有一個由THREE.PlaneBufferGeometry(水面)製成的網格,並且在那個表面上是另一個物體(一條船)。我的問題是,當船駛入水中時,你會發現船內突然出現水(因爲y值較高)。如何在其他對象內部隱藏THREE.PlaneBufferGeometry的一部分?

我該如何解決這個問題?

我正在考慮計算船的內部尺寸,並試圖將它們傳遞給水面的着色器。 (如果點在裏面,隱藏它。)這是最好的方法嗎?我該怎麼做?

編輯:水應重疊(例如顯示在前面)船的兩側。要clearify:

Current situation:   Desired situation: 

B  A 
    |   |     |   | 
-----|---------|--------  -----|   |-------- 
    |_________|     |_________| 

從[A]你不應該看到這艘船對象內,從[B]的水,你不應該看到船的下部。

回答

1

嘗試禁用水面的深度書寫。檢查下面的示例。假設藍色的平原是水,紅色的是船。

//codepen.io/OlxandrPopov/pen/xwVBKg 
+0

由於某些原因,我無法發佈鏈接到codepen.io,所以只需在http: –

+0

前加上鍊接即可。謝謝!唯一的問題是,當你從側面看時,水應該顯示在船體側面的前方。:S – Philip