我需要为3d重建代码生成测试数据。为此,我决定使用panda3d。我能够创建简单的应用程序,并看到场景。现在我需要为场景创建深度图,即对于屏幕上的每个像素,我需要计算深度,即从相机到3d空间中最近的对象的距离(垂直于相机平面移动)。哪些API函数更适合这样做?
发布于 2017-11-17 21:56:31
这在原理上类似于阴影贴图,如高级阴影示例中所示。您将需要创建一个屏幕外缓冲区和相机来渲染深度缓冲区。请注意,除非使用正交镜头,否则生成的深度值将不是线性的,需要使用镜头的近距和远距值将其转换为线性值。应配置近距离和远距离,以便获得所需的深度值范围。
或者,可以使用着色器将适当的距离值写入颜色缓冲区,如果要存储透视摄影机的距离值而不必撤消透视投影,或者要存储原始世界空间位置,则此方法特别有用。
如果希望能够访问CPU上的值,则在绑定纹理时需要使用RTM_copy_ram值而不是RTM_bind_or_copy,以告知Panda3D将渲染缓冲区的结果传输到CPU可访问的内存。
https://stackoverflow.com/questions/47058578
复制相似问题