OpenGL/SDL2双深度缓冲

OpenGL/SDL2 double depth buffering

本文关键字:深度 缓冲 SDL2 OpenGL      更新时间:2023-10-16

大图:我正在使用喷溅方法(使用c++, OpenGL和SDL2)为体积模型编写渲染器。我有一个多分辨率的数据结构(八叉树)。当相机移动时,渲染是在实时运行的分辨率下完成的。只要相机静止不动,就可以完成更高分辨率的渲染(=迭代优化)。

问题:由于细化期间的渲染可能持续数秒,一旦用户决定改变相机位置,我需要取消它。关于颜色缓冲没有问题,我使用双缓冲,只是不切换它。但是我必须在渲染之前清除深度缓冲区,所以当我取消渲染运行时,深度缓冲区中的信息将丢失。问题是,我需要渲染器的另一部分的深度信息。

我的问题是:在这种情况下最好的策略是什么?备份深度缓冲区?或者是否有一种方法可以使用OpenGL和SDL2进行深度双缓冲?

您可以将深度信息呈现到帧缓冲区以备份它

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/

这样你就可以自己实现双深度缓冲区了