2014-01-22 53 views
2

transcut http://glasier.hk/image/transcut.pngthree.js所透明的平面切割周邊物體的質感

每個面與本作:

geometry = new THREE.PlaneGeometry(w,h,1,1,1); 
base = new THREE.MeshBasicMaterial({ color: pass.color, transparent: true, side: THREE.DoubleSide}) 
material = new THREE.MeshLambertMaterial({ map: THREE.ImageUtils.loadTexture(pass.img), transparent: true, opacity:1, side: THREE.DoubleSide }); 
shape = new THREE.Mesh(geometry, material); 

我有什麼錯呢?

回答

3

它看起來像一個深度緩衝區問題。 見thisthat

您可以嘗試使用材質的depthTest和depthWrite參數進行演奏,或以自定義順序繪製對象。您可以通過設置renderer.sortObjects = false並在場景中最後添加透明紋理來完成此操作。

+2

太好了,謝謝。正如Doob先生在「this」中所建議的那樣,我使用了'alphaTest:0.5'。上帝保佑他的棉襪。 –