使用panda3d生成深度图

时间:2017-11-01 15:42:49

标签: opengl depth-first-search 3d-reconstruction panda3d

我需要为3d重建代码生成测试数据。为此,我决定使用panda3d。我能够创建简单的应用程序并查看场景。现在我需要为场景创建深度图,即对于屏幕上的每个像素,我需要计算深度,即从相机到3d空间中最近的对象的距离(垂直于相机平面移动)。哪些API函数更适合它?

1 个答案:

答案 0 :(得分:0)

这原则上类似于阴影贴图,如高级阴影样本中所示。您需要创建一个屏幕外缓冲区和相机来渲染深度缓冲区。请注意,除非使用正交镜头,否则生成的深度值将不是线性的,需要使用镜头的近和远值将其转换为线性值。应配置近距离和远距离,以便获得所需的深度值范围。

或者,您可以使用着色器将适当的距离值写入颜色缓冲区,如果您想要存储透视摄像机的距离值而不必稍后撤消透视投影,或者如果您想要存储原始的世界空间位置。

如果您希望能够访问CPU上的值,则在绑定纹理时需要使用RTM_copy_ram值而不是RTM_bind_or_copy来告诉Panda3D传输渲染的结果缓冲到CPU可访问的内存。