大局:我正在使用splatting方法(使用C ++,OpenGL和SDL2)为体积模型编写渲染器。我有一个多分辨率数据结构(八叉树)。在相机移动时,渲染是以实时运行的分辨率完成的。一旦相机静止不动,就会以更高的分辨率进行渲染(=迭代细化)。
问题:由于在细化过程中渲染可能持续多秒,因此我需要在用户决定更改摄像头位置时取消它。关于颜色缓冲区不是问题,我使用双缓冲并且根本不切换它。但是我必须在渲染之前清除深度缓冲区,因此当我取消渲染运行时,深度缓冲区中的信息将丢失。问题是,我需要渲染器另一部分的深度信息。
我的问题:这种情况下最好的策略是什么?备份深度缓冲区?或者有没有办法使用OpenGL和SDL2开箱即用深度双缓冲?
答案 0 :(得分:0)
您可以将深度信息渲染到帧缓冲区以备份它
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/
这样你就可以自己实现双深度缓冲器了