[Mitsuba 0.6] 日志
Log
运行
- 因为是动态链接,需要把库加载目录放到环境变量中
1 | # mitsuba 可执行文件目录 |
Qt 相关问题
- 如果不准备使用 gui,可以直接不生成
mtsgui - 在下面文件中修改 Qt 相关代码
mitsuba/build/SConscript.configure
- 删除
1 | --- try: |
- 添加
1 | +++ print('Checking for Qt 5.x... ignore') |
添加新库
- 最简单的还是直接放到
/usr/目录下,但是不一定有权限 - 示例仓库:ears
oidn 为例
- 例如
oidn - 文件放在根目录下

添加
include目录- 文件:
mitsuba/config.pyBASEINCLUDE添加目录(第二项)
#include路径是mitsuba/include
1
BASEINCLUDE = ['#include', "#include/../../oidn/include"]
- 文件:
添加静态库目录
- 直接在环境变量中添加
- 例如我的路径是:
/home/xxx/data/ears/oidn/lib - 注意:gcc 不识别
~路径
- 例如我的路径是:
1
export LIBRARY_PATH="$LIBRARY_PATH:/home/xxx/data/ears/oidn/lib"
- 在使用的地方添加编译选项(源代码中已经添加了)
- 文件:
mitsuba/src/integrators/SConscript
- 文件:
1
2
3
4
5
6# 编译选项
oidnEnv = env.Clone()
oidnEnv.Append(LIBS=['OpenImageDenoise'])
# mitsuba 添加插件
plugins += oidnEnv.SharedLibrary('recursive_path', ['path/recursive_path.cpp'])- 直接在环境变量中添加
添加动态库目录
- 直接在环境变量中添加
1
export LD_LIBRARY_PATH="/home/xxx/data/ears/oidn/lib:$LD_LIBRARY_PATH"
VSCode 调试
- 直接就能调试,配置
launch.json - 配置好可执行文件(
program)以及命令行参数(args)就可以
1 | { |
调用链
mitsuba/src/mitsuba/mitsuba.cppmts_main()- 核心模块的启动与注册
- 调用
mitsuba_app()
mitsuba_app()- 解析 XML 文件
- 启动
RenderJob
mitsuba/src/librender/renderjob.cppstart():继承父类Threadrun()m_scene->preprocess()m_scene->render()
mitsuba/src/librender/scene.cpp- 清空 film
m_integrator->render()
mitsuba/src/librender/integrator.cppSamplingIntegrator:所有的 integrator 的基类render()ref<ParallelProcess> proc = new BlockedRenderProcess(job, queue, scene->getBlockSize());sched->schedule(proc)- 调用
BlockedRenderProcess的process()函数m_integrator->renderBlock()- 进入到具体的 integrator 中
- 调用
mitsuba/src/integrators/path/recursive_path.cpp- EARS 工作