Mitsuba2 C++ API - 用于获取 BSDF 的自定义集成器示例

问题描述

我的目标:我想用 C++ 在 Mitsuba2 中为我的高速公路场景编写一个自定义集成器类。我有一个高速公路(高速公路)的 xml 文件,我想对光线进行采样,将它们与我的高速公路图像相交并获得相交点的 bsdf。我只想使用 mitsuba 的数据包变体/标量变体,因为我不能使用 gpu 变体。

我发现:根据此链接 https://mitsuba2.readthedocs.io/en/latest/src/advanced_topics/custom_plugins.html#integrator-example 中的 Mitsuba 2 文档,有一个自定义积分器示例,但它仅适用于深度值,不适用于包变体中的 bsdf。

我尝试过:1)加载场景,播种采样器并对光线进行采样,将光线与场景相交并获取表面交互对象以及深度信息。深度信息通过surfaceInteraction 对象的属性t 获得。按照此链接 https://mitsuba2.readthedocs.io/en/latest/src/python_interface/rendering_scene.html?highlight=depth 中的示例,所有这些都成功了。 2) 使用位于 mitsuba2/src/integrators/depth.cpp 或链接 https://github.com/mitsuba-renderer/mitsuba2/blob/master/src/integrators/depth.cpp 中的名为 DepthIntegrator 的 C++ 类,但我不太明白如何在 C++ 中使用此类并按场景加载。是否有这方面的示例或 API。

问题/疑问 1) 是否有用于 Mitsuba2 的 C++ API 以 C++ 方式加载 xml 文件并编写自定义集成器,而不是通过命令行传递它mitsuba my_scene.xml(认情况下会执行 mitsuba.cpp src 文件? 2) 是否有在数据包变体中使用 bsdf() 类 SurfaceInteraction 的 python 示例,因为我在尝试使用时遇到此错误bsdf_error_packet_variant

由于我是这个领域的新手,任何线索都会非常有帮助。

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)