是一些关于高效地整合Houdini和Mantra到一个生产流程中的建议。
Overview
Houdini有一些特性,工作流程,以及很棒的粒子,这些都使得其可以用一个生产流程高效的渲染大的,复杂的场景。例如,共享Alembic几何体可以允许有多个步骤同时的在生成流程中工作。
在Houdini13之前,最有效的渲染流程是在Houdini中使用代理几何体交互式的工作,并在渲染时使用一个几何体材质,如Delayed Load Procedural或点替换来替换几何体。Houdini13添加了packed primitives 以及Alembic文件的更深层次整合的支持。这些特性可以让你直接工作于非常大的几何体,且能更容易的在部门间贡献文件。
下面的建议和典型的生产线有关:减慢——视觉开发——场景装配——视觉特效——照明——渲染。
Models
对于效率而言,可以在渲染前将最终的几何体转为packed primitives或poly soups,除非你不需要每面的材质或属性(因为Houdini会将polysoup 或 packed geometry 看成单个Primitive)。
以Alembic文件方式导出模型,可以有最大的灵活性和效率。 Alembic 文件允许不同的流程中使用同样的代理,或最终几何体文件。材质编写者,场景装配人员,FX艺术家,灯光师都可以使用object appearance editor(物体外观编辑器)的子设置或细节级别来引用同样的文件。
记住, Alembic 文件只支持所有Houdini的Primitive类型的集对象。如果你需要这些Primitive类型,你可以将几何体保存为bgeo文件,然后以磁盘上打包的Primitive方式导入几何体文件。
Houdini会以 packed primitives方式导入Alembic几何体。 Packed primitive更快速,以及节约内存(和常规的几何体编辑相比)。例如,packed primitives是直接从磁盘上的文件中流动都图形卡内来显示的,而不需要存放在内存中。
视觉开发
从共享的 Alembic 文件中导入模型。
以带有材质的数字资产方式保存最终的模型,或以Alembic primitives方式保存场景文件。
场景装配
从共享的 Alembic 文件中导入模型。
设置相机。
使用物体外观编辑器降低复杂物体的细节级别,使其更容易在物体上工作。
使用物体外观边界器隐藏在相机视角外的物体,这样可以使场景加载和渲染更快。
以在 Alembic primitives上存储变换的方式,保存场景文件。
视觉特效
很多渲染器都直接支持 Alembic/packed primitive方式的几何体。当可行的时候,就使用它们(解算器要支持它们,且几何体是非变形的)。
当你使用常规的几何体代表渲染中的多个几何体时(例如,破碎的碎片,或大量碰撞的RBD物体),模拟会将每个物体作为单独的DOP物体。Packed primitives可以有任意数量的分离的碎块物体,并且仍然可以用单个DOP物体方式代表。此会使模拟非常快速,因为Houdini不需要总体管理成百上千的DOP物体。
对于只变换非变形模型的模拟(如刚体),你可以只在代表 Alembic/packed primitive的点上输出变换信息。此意味着会从静态模型开始处理,然后再其上运用模拟的变换的信息(当可获取时)。
灯光
使用资产文件,其带有视觉开放中所创建的材质,场景装配时物体的变换,以及用于特效的动画数据。
Houdini工作于线性颜色空间,并且会默认转为2.2的Gamma用于显示。查看线性照明和合成获取更多信息。
你可以将静态照明设置烘焙到一个HDR图像中,然后使用环境光,再利用该图像照明场景来优化照明。
渲染
通常,你应当使用PBR渲染,因为它更快,更真实,更易于使用,配合HDR使用更好,并且其使编写材质更简单。但是,如果你渲染一个没有反射,折射,阴影时,可以考虑使用micropolygon 渲染方式,因为它更快,运动模糊更好。
在最终渲染前试着确定相机位置/运动。当你知道在相机视角中有什么时,你可以对哪些对象是可见的,哪些是超出帧范围的进行优化。
Houdini中有几个工具可以让你基于相机的视角优化场景。例如,你可以创建一个相机锥角状的体积框,然后将框外所有物体都剔除。
试着使用三个分离的R,G,B从顶部,前部,侧边照明体积对象。你可以在合成中通过将图像转为灰度图,缩放R,G,B通道的贡献值来调节照明。{通常渲染水花粒子就用RGB三色光照明,然后分别调节前,顶的亮度}
用于视觉特效的渲染
使用一个HDR图像作为基本的照明,然后根据需要再添加额外的CG灯光。
在单独的通道中渲染透明物体,可以更灵活的合成。
你需要和现实中的相机匹配运动模糊,景深。 PF Track motion tracking软件可以生成用于Houdini的跟踪数据。
使用程序化的渲染。
用于整合CG物体和现实物体的渲染
你需要和现实中的相机匹配运动模糊,景深。 PF Track motion tracking软件可以生成用于Houdini的跟踪数据。
要切出物体,地形,角色的图像,使用Trace SOP生成相机空间中的UVs。
用于全CG的渲染
全CG的渲染通常会涉及庞大的数据集,复杂的场景,以及大量的材质。你需要有一个资产跟踪和工作流程。
使用程序化的,分配式的渲染。
使用 Alembic 或Houdini几何体的程序材质(其只会在渲染时加载几何体)来保持场景文件较小(轻型文件,就是较小的场景文件)。
Houdini可以使用Alembic surface node节点以专门的 primitive 类型加载 Alembic 几何体。你可以以节点层级方式导入 Alembic 文件中的内容(使用 File > Import > Alembic菜单项)。
你甚至可以使用Transform node(将组方式设为Primitive)变换 Alembic primitive 的元素对象。类似的,你可以使用Material node将Mantra的材质指定给Alembic文件的元素对象。你不可以编辑真实的几何体,例如修改它的点或细分。
程序材质会调用一个程序来替换用其自身数据所着色的物体。这些材质是以Mantra开头的,在SHOP列表中。更多关于特定程序材质的信息,查看单独节点的帮助文档。
Mantra: Delayed Load
Mantra: Fur Procedural
Mantra: HScript Procedural
Mantra: Image3D Procedural
Mantra: Image3D Volume Procedural
Mantra: Sprite Procedural
Mantra: Program Procedural
Mantra: VEX Volume Procedural
总的建议
使用交互式的渲染视图来查看实时更新的渲染(当你改变参数和材质时)。
使用渲染区域工具选择一个3D视窗区域来查看渲染。你可以继续工作于视窗中,渲染区域会自动更新。
在渲染视图中使用视图快照工具不同设置的结果,因此你可以翻会查看比较它们。
你可以使用take来测试不同的渲染参数,查看之间的区别。
Houdini内部是使用线性颜色空间。
在单独的渲染通道中渲染体积对象。
合成节点可以从一个渲染节点中获取图像,而非从一个文件中。Composite render node可以渲染一个合成网络的最终结果。此可以让你整合Houdini的合成节点到渲染中,例如,在保存前就修改渲染的图像。
查看文件名中的表达式,获取关于如何在输出文件名中嵌入帧标号或其他有用的信息。
总体来说,你应当将你的工作路径设置为相对于$HIP的目录(包含hip文件的目录)。大的应用程序可能会使用它们所习惯的变量来共享节点网络中的资源,如 $JOB 何 $SITE。
一个好的设置就是将你的所有bgeo文件都放到一个$HIP/geo 的子目录下,并且设置渲染节点输出到一个 $HIP/pic 子目录下。
双击检查图像要输出到的地方。你不需要将输出图像设为ip方式(表示在MPlay中交互式显示),然后将任务发送到渲染农场中。
在Win系统上,你应当使用UNC路径指定节点网络上的源文件(如共享的纹理贴图)。
temp临时:文件处理程序会使用操作系统调用创建临时文件。
For example:
temp:shadow_$F.rat
Note
基于操作系统的不同,Temp文件可能不会出现在文件搜索或列出的目录中,或直接被刷新到了磁盘上。
记住,Temp文件不可用于在处理过程中共享文件,因为它不可被任何处理程序,除了创建它的程序所使用。
例如,你不能将Temp文件用于光子贴图,因为预过滤需要单独的处理过程,用于读取/写出原始的光子文件。
Houdini会询问操作系统来打开$HOUDINI_TEMP_DIR下的临时文件。在Win系统上,Houdini会打开带有w+bTD标志的文件。
高效的渲染点和粒子
在Manta中,你可以使用“point primitives点元”方式直接的渲染模型上的顶点,而无需创建粒子系统(注意!要开启物体节点上的“添加到粒子系统”参数)。点渲染方式会以disk(朝着相机的,只带有单个基于每点的材质计算的小圆盘)方式渲染模型上点。
在几何体物体上,点击 Render 选项卡中的Geometry子选项卡。
开启以点方式渲染选项。
使用一个Mantra的输出驱动节点渲染。
下面的属性可以用于SOP中调节粒子或点的渲染。
pscaleorwidth | 可以用于改变渲染中粒子的大小。此参数会覆盖SOP中原始粒子的大小。你可以在顶点,点,Primitive,以及Detail级别上添加该属性。 |
orient | 方向属性控制着用于点渲染的disk的方向。此操作是通过一个法线向量指定的。你可以在顶点,以及Detail级别上添加该属性。 |
v | 速度属性控制着用于粒子渲染的线条,或tube的长度。 |
额外的一些建议页面
下面的页面也包含了一些用于mantra渲染的建议。
PBR渲染—如何使用PBR渲染。
速度vs 质量—如何设置速度和质量平衡的Mantra渲染。
渲染很多多边形—如何设置mantra渲染极端复杂的场景。
拷贝和替换。