ModernGL 深度测试忽略后面的顶点(有时?)

Mic*_*572 1 python opengl python-moderngl

渲染这个立方体时,我使用moderngl DEPTH_TEST以正确的深度正确绘制面,效果很好,如图所示:

在此输入图像描述

但是,我想让立方体透明。给它一个稍微透明的纹理后,它的渲染如下:

在此输入图像描述

由于某种原因,立方体正面后面的部分被忽略,导致它只是被染成红色。

这是旋转时的样子:

在此输入图像描述

有些角度有效,有些则无效。

当我禁用深度测试时,所有内容都会正确呈现,但顺序错误。有没有什么办法解决这一问题?(使用Python Moderngl)

Rab*_*d76 7

启用深度测试时,混合无法正常工作,因为已绘制对象后面的片段在混合之前会被深度测试丢弃。您必须从后到前以正确的顺序绘制图元才能使其正常工作。另请参阅OpenGL 深度排序OpenGL:透明纹理问题
请注意,OpenGL 不是游戏引擎,它只是一个低级 API,它按照您指定的确切顺序执行您指定的操作。