问题描述
|
我对openGL中的Alpha混合有疑问...
我已经尝试了一些用于绘制透明对象的东西...通过在绘制透明面之前禁用GL_DEPTH_TEST并在绘制透明面之后重新启用GL_DEPTH_TEST,我看到了一个不错的(理想)结果...
显然,我已经注意到,根据我绘制不同面孔的顺序,我会得到结果或其他结果。
但是,我已经决定先在启用GL_DEPTH_TEST的情况下绘制立体面,然后在禁用GL_DEPTH_TEST的透明面后进行绘制...
因此,很明显,如果我在禁用GL_DEPTH_TEST的情况下绘制透明面,我会看到里面的透明面(例如一个立方体),然后
所以,我的问题是...这是正确的吗? OpenGL是否具有“魔术”方式来自动排序不透明和透明的面?
解决方法
OpenGL是否具有“魔术”方式来自动排序不透明和透明的面?
不可以。您必须自己对透明对象进行排序。或者,您可以使用与顺序无关的透明度算法。有几种可用的方法,但是它们都不是“魔术师”,并且大多数都占用了大量的性能。
, 尽管这不是理想的结果,但我先绘制了不透明的面,然后再绘制透明的面,从而获得了不错的效果。