繁体   English   中英

GL_TRIANGLE_STRIP和透明度问题

[英]GL_TRIANGLE_STRIP and transparency problems

我想绘制透明多边形(例如金字塔)。 有些面看起来不透明,而有些面则看起来不透明。

我使用GL_TRIANGLE_STRIP绘图。

我启用了混合模式,但是没有运气。

请看所附图片,


在此处输入图片说明

这是由于三角形的绘制顺序而发生的。 首先绘制一些三角形,这些三角形将其深度值写入深度纹理,然后出现下一个三角形并检查其前面是否有物体。 如果存在,则不会渲染。

如果首先渲染位于后面的三角形,那么没问题,位于其前面的三角形查看深度纹理,看到其具有更大的z值,因此可以正确地渲染,这些是这些颜色所在的地方透明度较低。

当前面的三角形首先渲染时,就会出现问题。 它将深度值写入深度缓冲区,然后后面的三角形出现,看到其前面已经有东西,因此不会被渲染。

您可以通过多种方法来解决此问题,可以禁用深度测试,对三角形进行排序以使它们按顺序排列,或者使用诸如深度剥离的算法。 这些算法中的每一个都有副作用或非常复杂,这就是为什么您在游戏中看不到太多透明度的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM