【行业见闻】我在SIGGRAPH上学习到的关于vray的知识点整理

20 十二月, 2014
181
3

继上一回的游历感受,这一次,我要整理一下我在会上学到的关于vray的知识点。可能很多问题比较深,或者比较钻牛角尖,在这里就只写个大概,有感兴趣的朋友可以留言,我们深入讨论。

  首先,我问问题的人是konstantin Gaytandzhiev。可以去搜索一下他,有很多之前版本的vray新功能介绍,都是他在做,包括vray10年的教程里,也有他的教程。我后来知道他邮件以后搜索了一下,才发现之前就看过他不少的教程。有眼不识泰山,罪过。
我在SIGGRAPH上学习到的关于vray的知识点整理
我在SIGGRAPH上学习到的关于vray的知识点整理
有兴趣的朋友可以去搜索一下,会找到很多他之前的教程。
我在SIGGRAPH上学习到的关于vray的知识点整理
这张纸上记录的是我当时想要探讨的问题。
1)当你使用HDR对场景进行照明的时候,如果你的图片上有很小很强的光源,比如说有一个太阳的时候,那么很容易造成你场景的diffuse通道、reflection通道和specular通道出现很多噪点。对于这个问题来说,要手动磨掉HDR图片上的太阳,用sun或者directional light来模拟太阳。具体的方法,我最近正好在筹备做一起HDR的教程,会在这部教程中做详细讲解。
2)sun shape和directional light的区别? 没有本质区别,只是sun shape多了一些参数控制。
3)GI精度很高的情况下是否可以取代AO? 答案是肯定的,尤其是使用brute force类型的GI的时候。并且他本人从来不使用AO,因为那是一种对于GI的近似模拟,在处理高精度渲染的时候,只会使图片看着更假。
4)关于GI这一块儿,特别复杂,本来我觉得我理解得还行,听他说完发现vray里关于GI的设置比我了解的还要复杂的多,而且一些问题,他也没有说出非常好的答案。后面我也会在这一块花更多的时间研究。
5)AA采样与灯光材质采样的平衡:实际上你在材质和灯光上写的subdiv值,要除以AA采样的max subdiv才会得到每一根eye ray 真正射出去的材质或灯光采样的数量。这样的处理方式,往往会让你每一个eye ray进行的材质采样量比较低。比如说,你把AA的min subdiv 设为1,max subdiv 设为8,而你的reflection glossiness设为默认的8,那么其实你的每一根eye ray只射出8/8 =1 根glossiness采样。vray这样去处理采样其实是一种聪明的做法,会让景深和运动模糊这些效果的渲染速度大大提升。但是如果想要对所有场景都设置很ok的采样,那么就要对这背后的原理有很好的了解,并且进行不同的设置。
如果对这个问题感兴趣的话,可以深入阅读下面的这个帖子。(有可能要翻墙)
我在SIGGRAPH上学习到的关于vray的知识点整理
这是翻译过的,翻译得还是很难阅读 http://hammerbchen.blogspot.com/2012/10/v-ray-dmc.html
有些朋友反映要翻墙才能看到这篇文章,我将这个网页保存下来打包上传了,传送门
这个帖子对于vray的采样解释得非常好,全看懂的话几乎就懂了vray采样的一切。只是内容写得确实非常深奥,难以理解。这篇帖子我看过很多遍,以前看的时候就似懂非懂,直到当面和konstantin讨论了,然后晚上回去又仔细看了几遍,才真正搞懂了vray的算法。
另:vray3.0中,在AA采样那一块儿多了一个选项,叫divide shading subdivs。默认是勾上的,就是跟之前版本的方式一样,材质的采样要除以AA的最大采样,才会得到真正的采样。而如果你去掉这个勾,那么就不除了,就你的材质上的采样写的多少,每一个eye ray就会真正的用多少采样。
另:关于vray官方给出过的一个采样设置建议里,把AA设置为min 1,max100. 我表示这种设置方式很不可理喻。konstantin告诉我,这种做法虽然说不对,但是有它存在的道理,因为可以把你设置在材质上的subdiv都除以100,得到一个比较小的值,这样就不会渲染很长时间,效果也还能接受。是对于不了解采样设置的人很好的一个开始。
6)vray中的round edge效果,没有mental ray好用。因为只能在边缘产生圆角的效果,但是不能在两个模型交叉的地方产生圆角的效果。这种效果经常拿来做人眼睛噙着一点泪水的效果;或者一些物体插入水面,物体边缘水有弧度的视觉效果。
说起来是很容易实现的,但是他们开发组就是一直没有加进去,后面的版本可能会更新。
7)  vray中的linear workflow选项可不可以用?    他说的是,可以用,并且他的lwf设置跟我的完全一致。我问他,为什么官方帮助文档上不推荐勾选linear workflow?他说,因为我们一般使用的是jpg或者tga这些8位sRGB的贴图,但是做电影行业的一些人会使用32位openEXR的贴图。对于使用32位贴图的人来说,勾选linear workflow以后的设置比较麻烦,难以理解,所以就干脆不推荐大家这么用了。但其实勾选linear workflow是现在版本使用线性工作流速度最快的方式。至少我和他都是这么用的。并且这个方法是经过我长期验证,也被chaos group员工当面肯定的,绝对经得起考验。所以说,官方帮助文档是觉得vray用户有多笨啊,觉得把背后的原理都写出来大家就看不懂了吗?
另:关于LWF一直在规划一期教程,尽量在这个月。
8)GPU渲染现在还有什么效果不支持? 只有两种,vrayMtl 的fog color(做彩色玻璃的那个);以及volume fog(体积雾,丁达尔现象)。以前3s材质是不支持的,现在支持得非常好。在我录制的现场演示视频里也可以看出来。所以说,现在版本的vray GPU渲染是可以真的拿来做产品级渲染和动画渲染了。
9)GPU渲染拿来做动画的时候,怎么控制GI噪点? 因为用传统cpu渲染动画的时候,可以保存光子图,一旦使用光子图的话,那么就不会有任何GI闪烁。但是用GPU渲染的话能存光子图?
答案是,不管你的GI设置是怎么样的,当你使用GPU来渲染的时候,都强行变成brute force类型。大家都知道,brute force是完全物理精确的GI算法,也是arnold采样的算法。这样的话,只要你精度用的够,是不会有GI噪点的。
那么GPU渲动画,主要要担心的问题就是在brute force精度不够的时候,产生的低精度噪点。但是用GPU的话,只要你显卡不错,速度就快得离谱,可以把精度设得非常高。所以GPU渲染+brute force可以无脑解决动画渲染的问题。估计硬件发展到一定的程度以后,精度控制就一个滑竿,也不会再有存光子图这种东西了。机器解放人类。GPU渲染,甚至说GPU渲染农场,亦或者GPU分布式渲染,绝对是渲染解决方案的未来!
另:像renderman和arnold这样的渲染器,虽然自有其优势所在,现在用着也挺舒服。但是它们至今不引入GPU渲染,如果你目光放长远,你会担心它们的未来。就算它们随着大势所趋,开始加入GPU渲染功能,也已经落后了。这也是我在vray 和arnold 两款渲染器中,但是义无反顾选择vray作为主渲染器的最重要原因了。我相信一个更新速度快,更新的功能实用具有革新意义,并且愿意投入在暂时似乎看不到回报的研究领域中的公司。虽然说我至今还只是拿GPU渲染当做渲染预览。但是可能到明年我搞点顶配的显卡就会把GPU渲染融入日常的渲染流程中去了,不管是测试还是成品。
konstantin告诉我,有一部片子就是完全用GPU渲染的。我想可能很多朋友都看过,我之前也看过,但是没想到里面所有的一切,包括景深运动模糊之类的都是用GPU渲染的,再回头看一遍,果然震撼,感慨GPU的时代已经不远了。
短片资料:
10)当你在渲染某些物体的时候,若它背后有强光,物体的边缘被强烈地照亮,那么这些地方会出现明显的抗锯齿错误。产生的原因是,alpha是个半透明的值,会乘以你的RGB信息得到你的最终结果,但是由于过亮的信息,乘以alpha以后,依然是大于1的值,显示出来就是纯白的一个个像素。解决这个问题的方法就是,使用clamp将亮度信息切割到1以内,使其和alpha相乘值不要大于1.
我花了些时间专门出了一集小教程讲这个问题的,欢迎收看。
以上记录了我们探讨的结晶。因为精力有限,将大概的内容整理出来,配上个人的一些解读,希望对阅读的各位有所帮助。感兴趣的话,可以留言讨论。