不得不说 Clarisse 像一条破船,在不断打着补丁,从更新版本的速度以及每次更新的内容就能发现,每次修复的 bug 都是非常致命的错误!
Clarisse 官方论坛部分专门建立了 Bug Tracker 分支,用于收集用户的 bug。说白了就是拿用户当小白鼠,帮助开发人员测试,这也是制定新版本的路线图重要组成部分。
最近公司项目需要,经常需要将 Clarisse 的场景提交到某渲染农场去渲染。因为最近 4.0 的发布,所以公司也基本都更新了新版本的 4.0 SP1 用于项目制作。新版本对于 3.6 的支持有些问题,尤其关于 abc 文件的加载问题上,不过还是可以人工修正回来。所以用 4.0 SP1 去渲染并没有发现什么不对。
但最近在农场上提交 4.0 的文件时,发现渲染速度成倍的变慢,检查文件后又没有发现问题,我用前台渲染检查了渲染时间,感觉问题肯定出在农场那边,我把问题反应给了农场,他们的 TD 检查后发现,原来使用 cnode 渲染文件时,虽然在命令上只写了渲染其中的一层,但是 cnode 在执行命令时将所有层全部渲染了一次,并且只保存了 cmd 命令中指定的那一层的输出文件!这都不能用坑爹来形容了。
Clarisse 和 Maya 类似,渲染也是分前台和后台执行,执行的程序及命令都不一样,前台是通过 Clarisse 程序来执行渲染,而农场渲染必定是采用后台渲染的方式,这就要使用 cnode 程序来执行渲染(也可以使用 crender,但是官方不太建议使用 crender,并且在 4.0 中已经去掉 crender 程序),使用 cnode 渲染需要执行固定的一条渲染命令,这个帮助文档上说的很明白。这个命令里是需要指定 image 及 image 下的 layer,以告诉渲染器渲染哪一层的内容。
但是 4.0 SP1 坑爹的将没有写在命令中的层一起渲染了,只要指定了 image,就会将 image 下的所有层全部渲染,并且只保存命令中指定的层。
为了验证这个问题。
我弄了个简单的场景,在 image 下建立两个 3D Layer,两个层分别设置输出不同路径


先使用 4.0 SP1 进行命令行渲染:
"C:\Program Files\Isotropix\Clarisse iFX 4.0 SP1\Clarisse\cnode.exe" H:\clar_rendertest\clar_test_v001.project -image scene/image.layer_a -stats -frame 1 5 -output H:/clar_rendertest/clar_test_v001/layer_a.####.exr
果然显示的信息是先执行了 layer_b 的渲染,直到 layer_b 进度达到 100%才开始渲染 layer_a,layer_a 达到 100%后对 layer_a 进行保存 exr:



接着使用 3.6 SP8b 进行命令行渲染:
"C:\Program Files\Isotropix\Clarisse iFX 4.0 SP1\Clarisse\cnode.exe" H:\clar_rendertest\clar_test_v002.project -image scene/image.layer_a -stats -frame 1 5 -output H:/clar_rendertest/clar_test_v002/layer_a.####.exr
渲染器直接就对 layer_a 进行渲染,完成后分别对 5 帧进行保存操作:
Clarisse iFX 4.0 SP1 的后台渲染 BUG 无疑。
后来又到官方论坛上找了找,果然在今年 4 月份时,Bug Tracke 上已经有人提交了这个 bug,解决方案就是保证每个 image 里只含有一个 layer。。。


这个 BUG 编号#9676
不过好在 SP3 版本的更新中,已经提到修复了#9676 的 BUG!

下周一公司将对 Clarisse 进行新一轮的更新了!