THREE.js透明平面切割相邻物体纹理

Chr*_*ier 4 alpha-transparency three.js

transcut http://glasier.hk/image/transcut.png

每张脸都是这样的:

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);
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Bap*_*teB 5

它看起来像深度缓冲问题.看到这个那个.

您可以尝试使用材质的depthTest和depthWrite参数进行播放,也可以按自定义顺序绘制对象.您可以通过设置renderer.sortObjects = false并添加透明纹理最后添加到场景中来完成此操作.

  • 那很好,谢谢.我用'alphaTest:0.5`作为Doob先生在"this"中的建议.上帝保佑他的棉袜. (3认同)