渲染具有相等z次序的透明3d形状(四边形)

时间:2011-10-24 20:01:49

标签: c++ opengl

我使用等于z的OpenGL渲染两个四边形。当我启用DEPTH时,我会得到以下图像,但是当它关​​闭时,我得到的是我需要一个水果而不是另一个水果。是否有可能像我想要的那样绘制具有相等z的四边形?我的OGL设置:

glEnable(GL_BLEND); glEnable(GL_ALPHA_TEST); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

my trouble

编辑抱歉,我忘了提到我最先调用渲染的最左边四边形,我使用正交

编辑+1 当我使用不同的Z渲染四边形时,我得到相同的图像,如何解决?

2 个答案:

答案 0 :(得分:4)

z缓冲区不关心透明度,因此您必须按照近似深度对四边形的绘制顺序进行排序。

我会将它们的深度更改为不同(您可以使用正交投影使它们看起来大小相同)然后再绘制另外的四边形。

此外,由于z-fighting,即使没有透明度也不能在同一深度绘制两个多边形。

答案 1 :(得分:0)

我试验并看到我在渲染立方体时遇到同样的问题,所以问题是由于顶点排序,可能是背面剔除参数。