在iOS 4上使用OpenGL ES 2.0。
我有一个继承自UIView的OpenGL视图。它位于提供背景的UIImageView前面。
我有一个 。我用于OpenGL纹理的具有透明度的png图像。
我遇到的问题是OpenGL视图中图像的透明度显示到UIImageView背景中的图像。我想在具有透明纹理的元素后面的OpenGL视图中显示内容。
正在渲染下方的OpenGL纹理,但顶部具有透明纹理的任何部分都不会显示下方的OpenGL纹理。它显示UIImageView背景。
我需要做什么才能使透明度在OpenGL视图中显示透明内容后面的内容?
编辑:
我重组了索引数组,因此所有具有透明纹理的元素都在最后,并且在我调用glDrawElements时应该在所有不透明元素之后渲染。
仍然有透明度的问题。
我设置了一些数据,以便我有 2 个三角形的 4 个顶点和 6 个索引来绘制一个具有不透明纹理的正方形。2 个三角形也有 4 个顶点和 6 个索引来绘制一个具有透明纹理的正方形,该纹理位于顶点/索引数组中的其他条目之后。透明元素坐标将其呈现在不透明元素的前面。
我可以看到透明元素,也可以看到不透明元素的边缘从后面伸出。然而,透明度并没有显示直接位于透明元素后面的不透明元素,而是直接穿过并显示 OpenGL 视图后面的视图背景。
不透明的黄色方块:
透明测试图像:
透明图像覆盖不透明图像,但透明度显示背景而不是背后的不透明图像: