2017-04-13 141 views
0

我创建了一个简单的人物。睫毛使用具有透明度的纹理。 但是,只要我打开面部纹理的透明度,就会在不应该显示的位置创建透明度。 您可以通过位于睫毛下方的部位的脸部纹理进行查看。透明纹理互相干扰three.js

见切换面透明度与该行的效果:

mesh.material.materials[3].transparent = false 
mesh.material.materials[3].transparent = true 

我希望有透明度开启面部质感,让我怎么能解决这个问题?

演示: http://dev.udart.dk/transparencyProblemStackOverflow/ (等待模型加载)

代码: https://github.com/vibber/transparencyProblemStackOverflow/blob/gh-pages/index.html

回答

1

透明几何形状变得手动深度排序,以获取更多的信息,参见本东寺规范答案:Transparent textures behaviour in WebGL

如果您希望此场景正常工作,您必须拆分模型,并将睫毛呈现为单独的(子)网格。这样three.js可以使用正常的z缓冲方法渲染其余的脸部,然后单独应用睫毛(从深度排序的transaprent对象队列中)。