【问题标题】:Transparent textures interfering with each other in three.js透明纹理在three.js中相互干扰
【发布时间】:2017-09-09 10:26:21
【问题描述】:

我创造了一个简单的人形。睫毛使用具有透明度的纹理。 然而,一旦我打开面部纹理的透明度,就会在不应该出现的地方创建透明度。 您可以透过睫毛下方的面部纹理查看。

通过使用这条线切换面部透明度来查看效果:

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

【问题讨论】:

    标签: three.js textures transparency


    【解决方案1】:

    透明几何图形会手动进行深度排序,有关详细信息,请参阅 Toji 的此规范答案:Transparent textures behaviour in WebGL

    如果您希望此方案正常工作,则必须拆分模型,并将睫毛渲染为单独的(子)网格。这样,three.js 可以使用正常的 z-buffer 方法渲染面部的其余部分,然后分别应用睫毛(来自深度排序的透明对象队列)。

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 2013-05-27
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 2023-01-31
      • 2021-08-30
      相关资源
      最近更新 更多