2017-04-13 122 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對象隊列中)。