【发布时间】:2016-11-03 13:36:52
【问题描述】:
大局:我正在使用 splatting 方法(使用 C++、OpenGL 和 SDL2)为体积模型编写渲染器。我有一个多分辨率数据结构(八叉树)。当相机移动时,渲染以实时运行的分辨率完成。一旦相机静止不动,就会以更高分辨率进行渲染(= 迭代细化)。
问题:由于细化过程中的渲染可能会持续几秒钟,因此一旦用户决定更改相机位置,我就需要取消它。关于颜色缓冲区不是问题,我使用双缓冲并且根本不切换它。但是我必须在渲染之前清除深度缓冲区,所以当我取消渲染运行时,深度缓冲区中的信息会丢失。问题是,我需要渲染器另一部分的深度信息。
我的问题:在这种情况下,最好的策略是什么?备份深度缓冲区?或者有没有办法使用 OpenGL 和 SDL2 进行开箱即用的深度双缓冲?
【问题讨论】: