使用OpenGL实现Z缓冲区

时间:2010-11-05 22:54:58

标签: opengl 3d zbuffer

对于一个项目,我想实现自己的Z缓冲区。我知道算法以及如何实现它。因为我不想编写一个我计划使用OpenGL的整个图形引擎,问题是,我如何将自己的算法与openGL结合起来?

我在某处读到我可以自己计算所有内容,然后将每个像素的数据传递给GLDrawPixels(),但这看起来有点矫枉过正。关键是我不想实现三角测量算法等。

我的目标是使用openGL直到线框,然后使用我自己的z-buffer算法,然后再次使用openGL绘制最终图片。 (对于我的项目,z缓冲区是唯一重要的,包括光和阴影)。有没有办法可以做到这一点,还是我必须自己实现一切,让openGL只是画出结果?

此致

1 个答案:

答案 0 :(得分:2)

您可以通过“手动”计算它们的距离,将您绘制的顶点的颜色设置为它们的z值。但我认为可以将z-buffer绑定为纹理,然后在屏幕上绘制一个带有z-buffer纹理的大四边形覆盖。