使用 Renderman 接口 Bytestream 渲染海量数据

计算科学 可视化
2021-12-24 19:55:45

我有要渲染的几何对象(球体、网格)的色调:一种方法是首先编写一个可以肯定完成的 .rib 文件,然后将该文件推送到符合渲染器的渲染器,例如开源 Aqsis 渲染器。问题是这个 .rib 文件太大(1-10gb),我不认为这是首选的想法。

是否有可能通过库访问 aqsis 渲染器,然后以某种方式在 c++ 中构建 rib 对象,然后在 c++ 代码中使用它调用渲染器?那将是可怕的:-)。

或者是否有另一种首选的渲染方法来渲染这些海量数据?

1个回答

该方法不是在磁盘上生成 RIB 或一步生成所有 RIB。

对于如此大量的数据,第一步是以某种层次结构的方式组织它,这样你就有了一个像八叉树一样的边界框结构。从内存足迹的角度来看,这很重要。

有了以上内容,您将使用 Procedural Geometry 程序方法

    <https://renderman.pixar.com/resources/RPS_17/proceduralPrimitives.html>

当渲染桶碰到包含几何图形的边界框时发出少量几何图形(因此层次边界框的重要性)。完成渲染桶后,将丢弃几何图形,以检查内存占用。

请注意,以上只是 Pixar 的 PRMan(商业)的文档,但在 Aqsis 等开源 RenderMan 渲染器中实现。

根据您拥有的几何数据的性质和渲染要求,实现的复杂性可能从一天到几周不等,具体取决于您使用 RenderMan API 的经验。

干杯