在渲染这个立方体时,我使用moderngl DEPTH_TEST在正确的深度上正确地绘制面,其工作情况如下所示:
但是,我想让立方体透明。在给它一个稍微透明的纹理后,它呈现如下:
由于某种原因,立方体前面后面的部分被忽略,导致它只被染成红色。旋转时的外观如下所示:
有些Angular 行得通,有些Angular 不行。当我禁用深度测试时,所有的东西都正确地呈现了,但是顺序不对。有什么办法可以修复这个问题吗?(使用python moderngl)
ccrfmcuu1#
Blending在启用Depth Test时无法正常工作,因为在混合之前,深度测试会丢弃已绘制对象后面的碎片。您必须按照从后到前的正确顺序绘制图元,才能使其正常工作。另请参阅OpenGL depth sorting和OpenGL:透明纹理问题。请注意,OpenGL不是游戏引擎,它只是一个低级API,它完全按照您告诉它的顺序执行您告诉它要执行的操作。
1条答案
按热度按时间ccrfmcuu1#
Blending在启用Depth Test时无法正常工作,因为在混合之前,深度测试会丢弃已绘制对象后面的碎片。您必须按照从后到前的正确顺序绘制图元,才能使其正常工作。另请参阅OpenGL depth sorting和OpenGL:透明纹理问题。
请注意,OpenGL不是游戏引擎,它只是一个低级API,它完全按照您告诉它的顺序执行您告诉它要执行的操作。