版权所有
更新日期 2010年11月12日
随着国内CG事业的发展 ,越来越多的人开始学RenderMan,越来越多的公司也逐渐的开始尝试使用RenderMan做片子。我在进入Autodesk前一直在南京的CG公司兼职工作,由于工作需要使用了RenderMan。许多朋友都会问我关于RenderMan的问题,下面是我对在流程中使用RenderMan总结,随着时间的变化我也会更新的,欢迎挑错与提问。
确切的来说,RenderMan只是PIXAR当年定的一个渲染器标准,而且恰巧,那批人(包括Pat Haranhan)也是设计OpenGL,所以你看RenderMan API和OpenGL API很相像。现在我们经常说的RenderMan,一般来说是PIXAR自己开发自己使用同时也对外出售的PIXAR PhotoRealistic RenderMan渲染器。
RenderMan有哪些公司在用
毫无疑问,自己家吃饭的玩意。
由于当初和PIXAR分家所签订的条约,使得IL+M可以永远和PIXAR分享RenderMan的源代码。作品无数。
老作品不说了,最近的比如《Beowolf》《Spiderman 2》《Benjamin Button》等。
《King Kong》,还有最近的《Avatar》。其中NVIDIA 为《Avatar》的制作流程开发了基于GPU的外部点云光线跟踪器,也就是那个PantaRay。
《Clash of Titans》。MPC开发了Importance Sampling解决方案,应该类似于mental ray的Phenomena。
还有很多公司会在流程中用RenderMan。但是千万不要抱着非RenderMan不用的说法,因为mental ray、VRay有时候也是干活的得力助手,就好比并不是说有了航空母舰就有了一切,你还需要配备重型巡洋舰和核潜艇护卫舰才能发挥航空母舰的威力。
首先说一下,倘若你的流程决定用RenderMan,那么,会基本脚本能力的Shader Writer,或者Technical Director是绝对必不可少的——RenderMan附带的材质极其有限,可以说基本上没用。如果你还能够有高素质的R&D Programmer,那么一切就都很好了,你的流程可以向世界级工作室看齐了,别人为提高流程效率所做的,你也能做。
RenderMan主要的特点有
具体的内容可以看PIXAR发布的论文以及文档。尤其是关于RenderMan基础算法的论文,可以让你了解许多底层信息。
首先,你能找到的开源实现有Pixie和Aqsis。前者作者貌似已经没了继续开发的动力,后者刚刚出2.0版本。BMRT在民间依旧有流传,不过你要是在商业产品中使用严格来说是违法的行为。Pixie的功能是比较全面的,有光线跟踪,也有Photon Mapping、Irradiance Cache,Point-based Color Bleeding等这些还没过时的技术以用来支持GI。根据我的测试,Pixie比Aqsis效率高。Pixie据说在《Spiderman 2》的流程中使用过。
目前成熟的商业版RenderMan的主要有
PRMan前者目前只有13.5的盗版,后者你可以用MAC地址申请一个免费的License。据我所知,国内许多个人和公司都用的破解的PRMan 13.5生产,其中不乏一些叫得出名字的公司。我曾经在流水线中用盗版PRMan 13.5在生产中所碰到的致命问题有,
对于一套PRMan来说,它由三个部分组成
RPS,基本的命令行渲染器以及辅助工具。
类似于mental ray for Maya的东西,可以在Maya中完成工作的艺术家工具。
其实就是老一代的RenderMan Artist Tools,它包括
对于3Delight来说,则就简单的多,也是由3Delight for Maya的艺术家工具和独立渲染器组成。 3Delight的计算效率和稳定性不如PRMan。但是由于售价便宜,艺术家工具简单易学,所以也可以用。《District 9》的制作据说用的是3Delight。
具体的你可以去PIXAR和3Delight网站去得到更加详细的介绍。
软件方面,首先,Maya是必须的。并不是说没有RenderMan for 3dsmax,因为那个玩意年代实在太久远了(名字忘记了)。而且,如果你要用盗版的PRMan 13.5,那么只有对Maya 7、Maya 8.5、Maya 2008的艺术家工具。从Houdini 9开始对RenderMan的支持也越来越好,可以用Python进行开发。
后期软件的话则没有特别要求,Shake和Nuke等等都可以。
硬件方面,则很简单——刀片服务器RenderFarm是最好不过了。台式机搭建的网络曾经我们也测试过,稳定性和刀片服务器根本无法相比,哪怕是用的华硕服务器主板外加ECC内存,也一样没刀片服务器稳定。
这一块可以分进阶和高阶两个阶段。进阶主要就是围绕RenderMan本身的开发,高阶指的是开发配合RenderMan渲染器的外部工具。
首先,写Shader不难,难得并不是什么算法,难的是如何实现想要的效果。这是个可以发挥高度创造性的工作领域,许多时候不仅仅是将论文上的公式写成代码,更多的是写一些达到事半功倍的trick,比如Cook-Torrance BRDF中Beckmann Distribution项的修正(这个是SPI的朋友告诉我的,我不能透露具体做法)。
DSO分ShaderOp和Procedural DSO。前者主要是在RSL中添加新的函数,比如用GPU读取贴图的函数。后者主要是在运行期生成一些新的几何体,这样可以免去解析RIB的时间与存储空间。
RifPlugin是Procedural DSO的一个延伸。具体作用就是,在解析RIB的时候,用你写的这个C++类去分析RIB,我们可以对写在RIB中的数据进行操作,本质上是RIB Parser。
Implicit Surface
其实这个东西,说有用也有用,说没用也可以。首先,Implicit Surface运用的地方不是很多,在学术圈内Implicit Surface Modeling相关的主题已经很成熟,但是真正的生产环节这个是没几个人用的。二来,常用的流体解算工具比如Houdini和Realflow求解出的SPH数据多半已经Polygonized,所以再用Implicit Surface替代毫无意义。开发人员晓得这是怎么回事就可以。
我永远强烈建议开发人员熟读Henrik Wann Jensen的这两篇论文,
如果你不想读论文,在这里我可以用一个等式告诉你根本含义,
Albedo & Diffuse Mean Free Path = Absorption & Scattering
这个等式贯穿了整个SSS 的制作方法。虽然Gelato、PRMan 14、OSL都支持了subsurface这个ShaderOp,但是本质上依旧没有脱离这个等式所涵盖的范围。
这是个最近对于我来说比较热的主题。首先,毛发的建模和动力学解算是个难题,大规模毛发的渲染又是个问题。用Maya+Shave的人那么多,但是却几乎无一例外的用Archive而不是DSO解决问题。毛发的GPU求解已经几乎是必然趋势,Animal Logic有自己的基于GPU的求解工具,SPI也在继续开发类似的系统。大量毛发的运行期生成也是必然,过段时间我会写一个这样的工具。
为什么这个工具被开发,本质上还是因为目前AMD64/EM64T的程序不是真64bit,大规模场景数据依旧无法处理。《Avantar》的主要场景是在森林中,由于森林很庞大几何体数据会极其庞大,有些数据的计算比如Ambient Occlusion的计算无法在程序中完成。于是乎可以将物体的点云输出,在外部计算那些庞大的数据,出Pass的时候在Shader中直接读取计算完成的点云就可以。具体的你可以看今年Siggraph 2010的论文。
作者: Bo Schwarzstein 发表于 2010-11-12 23:50 原文链接
评论: 2 查看评论 发表评论
最新新闻:
· 李善友:我已是熬完的药渣 曾陪酷6艰难走过(2011-03-20 18:12)
· 传苹果放弃在纽约中央车站建全球最大零售店(2011-03-20 18:11)
· 诺西并购案为中国知识产权保护提供借鉴样本(2011-03-20 18:10)
· 雨林木风旗下聚合搜索将启用新域名116.com(2011-03-20 18:07)
· 外媒评苹果应该从微软偷走五个绝妙的创意(2011-03-20 18:06)
编辑推荐:应届毕业生生存法则--工作篇
网站导航:博客园首页 我的园子 新闻 闪存 小组 博问 知识库