2012-06-26 103 views
0


大家好!
使用three.j運行動畫時出現問題。請參閱示例:http://jsfiddle.net/5ywdE/13/
當綠色立方體旋轉到藍色立方體的位置時,紅色立方體將旋轉。
問題:爲什麼藍綠色立方體在它前面時顯示。我希望綠色立方體顯示在藍色立方體的前面(例如紅色立方體顯示在所有的前面)。如果重疊,我可以設置在其他立方體前面顯示的立方體嗎?
我在做什麼錯?

在此先感謝重疊顯示立方體?

回答

1

所有的立方體的position.z等於零。那麼......哪個立方體必須首先繪製/最後繪製? Three.js不知道,只是將它們全部抽出,可能與它們被添加到場景中的順序相同。

你可以嘗試改變在立方體添加到場景的順序:

scene.add(obj1); 
scene.add(obj); 
scene.add(rot); 

或者,如果你不打算移動攝像機,使用不同的z值的藍色立方體:

... 
cube1.position.z = -0.1; 
... 

或者你也可以設置爲false藍色立方體的visible屬性時綠色立方體完成他的動畫:

... 
run1= false; 
three.cube1.visible = false; 
... 

如果您現在可以使用WebGLRenderer而不是CanvasRenderer,則可以使用renderDepth屬性爲每個立方體指定「深度偏差」。

+0

感謝您的回覆。我想顯示所有的立方體。所以,解決方案3是不可行的。解決方案1也許可以,但是如果有多個立方體,我們不知道運行動畫的立方體的順序,而且當兩個立方體重疊時,三個立方體似乎顯示一個立方體。我會嘗試解決方案2.謝謝! – lptrung

+0

@Iptrung:我不確定你的意思。 Three.JS如果可以同時顯示兩個立方體,並且它們的大小相同並且重疊在相同的位置,又怎麼能夠顯示? –

+0

@Cory Gross:對不起,遲到回覆。我猜可能是。我看到three.js只顯示首先添加的立方體。在這種情況下使用z值是個好主意。 – lptrung