【问题标题】:Mesh Opacity issue when the mesh is invisible网格不可见时的网格不透明度问题
【发布时间】:2012-07-30 22:00:03
【问题描述】:

我创建了一个 jsfiddle [http://jsfiddle.net/georgeneil/cfrsj/5/] 来演示这个问题。

场景中有一个红色立方体和该立方体内的许多粒子。这里是重现问题的步骤。

1) 通过取消选中控制面板中的可见复选框将立方体设置为不可见。

2) 旋转立方体

3) 通过面板中的不透明度控件增加不透明度

4) 将立方体设置为可见。

现在立方体将变得完全不透明。我观察到这个问题并不一致,但对我来说大部分时间都会发生。

这是 API 中的错误还是我的代码中有任何问题?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    透明度在 webGL 中是屡试不爽的。在您的情况下,您的透明对象正在相互竞争。一种解决方案是在shaderMaterial 中将粒子的透明度设置为false,因此只有一个透明立方体。在这种情况下一切正常。

    小提琴:http://jsfiddle.net/cfrsj/6/

    【讨论】:

    • 这是否意味着在场景中只能将网格设置为透明。我需要处理一次将多个网格设置为透明的情况。遇到这种情况该如何处理?
    • 可以有多个透明对象,可以通过设置renderer.sortObjects = false来控制渲染的顺序。如果你想追求这个,我建议你学习webGLRenderer.js,这样你才能真正理解three.js是如何处理透明度的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2012-01-29
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多