【问题标题】:Implementing a Z-buffer using OpenGL使用 OpenGL 实现 Z 缓冲区
【发布时间】:2010-11-05 22:54:57
【问题描述】:

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

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

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

真诚的

【问题讨论】:

    标签: opengl 3d zbuffer


    【解决方案1】:

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

    【讨论】:

    • 我会考虑的。最后,我必须实现另一种基于 z-buffering 的技术,但不完全相同(我必须创建一个不规则的 z-buffer)。让我们看看你的建议有什么可能。
    • 你说得对,openGL 似乎不是解决这个问题的合适工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多