BACK TO ARCHIVE
Script Clarisse DCC Mechanics & Nuances

Clarisse iFX 4.0 SP1坑爹BUG

07.07.2019 ADUCG RESEARCH

不得不说 Clarisse 像一条破船,在不断打着补丁,从更新版本的速度以及每次更新的内容就能发现,每次修复的 bug 都是非常致命的错误!

Clarisse 官方论坛部分专门建立了 Bug Tracker 分支,用于收集用户的 bug。说白了就是拿用户当小白鼠,帮助开发人员测试,这也是制定新版本的路线图重要组成部分。

最近公司项目需要,经常需要将 Clarisse 的场景提交到某渲染农场去渲染。因为最近 4.0 的发布,所以公司也基本都更新了新版本的 4.0 SP1 用于项目制作。新版本对于 3.6 的支持有些问题,尤其关于 abc 文件的加载问题上,不过还是可以人工修正回来。所以用 4.0 SP1 去渲染并没有发现什么不对。

但最近在农场上提交 4.0 的文件时,发现渲染速度成倍的变慢,检查文件后又没有发现问题,我用前台渲染检查了渲染时间,感觉问题肯定出在农场那边,我把问题反应给了农场,他们的 TD 检查后发现,原来使用 cnode 渲染文件时,虽然在命令上只写了渲染其中的一层,但是 cnode 在执行命令时将所有层全部渲染了一次,并且只保存了 cmd 命令中指定的那一层的输出文件!这都不能用坑爹来形容了。

ClarisseMaya 类似,渲染也是分前台和后台执行,执行的程序及命令都不一样,前台是通过 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 进行新一轮的更新了!

本文采用 Creative Commons BY-NC-ND 4.0 协议进行授权。

BY-NC-ND: 署名-非商业性使用-禁止演绎

End of Article