2014-01-22 61 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'。上帝保佑他的棉袜。 –