【发布时间】:2019-08-12 19:30:28
【问题描述】:
我正在尝试在立方体顶部添加透明纹理。只有正面是不透明的。其他面是透明的。可能是什么问题呢?。任何帮助表示赞赏。
编辑:我发现首先绘制的脸是不透明的。
立方体的3个面被绘制出来。
【问题讨论】:
标签: iphone ios opengl-es opengl-es-2.0
我正在尝试在立方体顶部添加透明纹理。只有正面是不透明的。其他面是透明的。可能是什么问题呢?。任何帮助表示赞赏。
编辑:我发现首先绘制的脸是不透明的。
立方体的3个面被绘制出来。
【问题讨论】:
标签: iphone ios opengl-es opengl-es-2.0
您很可能遇到了排序问题。要正确显示透明几何图形,必须从后到前对对象的面进行排序。
不幸的是,opengl-es(或现有的任何 gfx 库)中没有内置支持。唯一的可能性是对多边形进行排序,每帧重新创建对象并使用正确排序的面进行绘制。
一种解决方法是使用附加透明度而不是普通透明度。加性透明度是一个与顺序无关的计算。您必须记住在绘图时关闭 z-buffer 写入,否则某些几何图形可能会被遮挡。
通过将两个 blendfunc 值都设置为 GL_ONE 来实现附加透明度。
【讨论】: