@lijiang

Sculpting in time

Do one thing and do it well.
Every story has a beginning and an end.

2 分钟

参考资料

Renderman 24 For Blender Doc

Blender中渲染

Blender中的集成器

集成器接收摄像机的光线,并将结果返回给渲染器。对于主要的集成器来说,这些集成器是对沿射线从外部看到的表面的光能(辐射度)的估计。这些主集成器负责计算整体的光传输,也就是说,光从光源穿过你的场景,从物体到物体(或者穿过物体和体积),到达摄像机。在特殊情况下内部集成器可以协助处理表面或体积内的光线。我们提供了三种主要的用于生产环境的集成器,尽管用户可以用自己的集成器来代替。

PxrPathTracer 实现了一个单向的路径追踪器。它将击中点的材质信息与光线样本结合起来,以估计直接照明和阴影,然后产生/发射额外的光线来处理间接照明。这对环境光和大型直接光源很有效。通常,外部场景,由圆顶灯/HDRI照明的场景以及许多典型的视觉效果镜头都是用这个集成器渲染的。

PxrVCM用双向路径追踪来扩展它。除了来自摄像机的路径之外,它还追踪来自光源的路径,并试图将它们连接起来。它可以解决复杂的间接路径,这些路径可能在PxrPathTracer中收敛得很慢。特别是,它被设计用来处理镜面光晕。光晕是光线在反射或折射到表面后重新聚焦的一种效果。上面的图片展示了这两种效果。如果你的场景需要这些效果,或者你有复杂的照明,其中一些灯可能被覆盖或隐藏在灯具中,那么PxrVCM集成器是你最可能的有效选择。

PxrUnified是可用的,但目前是试验性的,直到它支持商业版本RenderMan的所有功能。

在Blender中设置集成器

默认情况下,RenderMan for Blender会使用PxrPathTracer作为场景的整合器。要设置/使用一个不同的集成器,请进入渲染属性,并点击添加RenderMan集成器节点树。

然后你应该看到像这样的画面。

你可以通过使用下拉菜单选择不同的集成器。

注意,Blender中的集成器只是world node中的着色节点shading nodes。如果你在着色器编辑器中查看world node的着色节点,你应该看到像这样的节点。

Blender中的采样和显示滤镜(Sample && Display Filters)

采样和显示滤镜插件分别用于在集成器产生着色采样值和像素值后,在它们被发送到显示驱动display driver之前,对它们进行调整。

采样滤镜 Sample Filters

采样滤镜插件描述了在对采样值进行像素过滤之前对其进行的颜色转换。 它们在像素滤波应用于原始相机射线样本之前对其进行操作。 一旦一个采样过滤器改变了一个样本,并且进入了帧缓冲区,它就会成为任何渲染图像(包括深层图像)的永久组成部分。请注意,如果一个单一的任意输出变量(AOV)作为多个图像文件的一部分被输出,对一个样本的单一改变可能会影响到所有的文件。采样过滤器所做的改变也会影响自适应采样器。

显示滤镜 Display Filters

显示滤镜插件描述了在像素过滤后和输出前对最终像素值进行的颜色转换。 在这一点上,多个图像共享的AOV被认为是不同的,可以单独修改。目前不支持深层图像的显示过滤器,对自适应采样器没有影响。

在Blender中的设置

你可以在渲染属性中创建显示和采样过滤器。点击Add RenderMan Display Filters Nodetree按钮或Add RenderMan Sample Filters Nodetree。

你应该看到"Display Filters" 和 “Sample Filters"的面板展开,类似于以下情况。

点击添加RenderMan显示滤镜节点将自动添加一个PxrBackgroundDisplayFilter节点,并继承World颜色作为背景色。

可以使用多个显示和采样过滤器。点击 “添加 “将添加一个新的槽,可以添加一个额外的显示过滤器或样本过滤器。要删除一个过滤器,点击名称旁边的-按钮。像集成器一样,显示和样本过滤器只是world node内部的着色节点。

Blender中的任意输出变量 Arbitrary Output Variables

任意输出变量(AOVs)是由渲染器产生的辅助图像。它们可以同时生成任意数量的图像,每张图像都可能进入不同的文件、不同的显示驱动,或者使用不同的像素滤镜设置。在某些情况下,可以使用特殊的像素滤镜模式,以避免以非理智的方式混合来自不同样本的值;通常这些模式会选择一个样本来代表整个像素。

广义上讲,RIS中的AOVs主要分为以下几类:内置,集成器(全局),自定义和光路表达。

AOVs 管理器

默认情况下,RenderMan for Blender会尝试翻译Blender自带的默认输出。如果你点击视图层属性,对于老用户来说,UI应该或多或少看起来比较熟悉。

然而,我们可以通过点击 “Switch to RenderMan Displays “来切换到使用RendeMan作为Blender的AOVs管理器。点击该按钮后,用户界面应该是这样的。

该按钮还将尝试从之前的用户界面中选择的输出来创建等效的AOVs。AOVs列表下的每个项目都是一个有若干通道的单一输出。从列表中选择一个项目将显示该AOV的文件格式选项和通道。

这里我们可以看到dspy_3将输出到OpenEXR。打开openexr设置部分将显示OpenEXR显示驱动的选项,比如压缩和类型(浮点或半浮点)。相机允许你从一个与主场景相机不同的相机中渲染AOV。去噪(Denoise)选项将告诉RenderMan在外部/批处理渲染时对AOV进行去噪。

要向AOV添加通道,请使用添加通道的下拉菜单。

你可以通过点击删除通道来从AOV中删除一个通道。选择一个通道也将呈现一个选项列表,这些选项可以修改通道的行为。它还会显示类型和来源。

你也可以通过点击添加频道下拉菜单中的 “自定义 “来创建你自己的自定义频道。然后由你来给通道起个名字、类型和来源(光路表达式)。

Blender中的Render Holdouts

要启用阻隔Holdouts,首先选择你要阻隔的对象,并在对象属性中,将阻隔设置为 “是”。

接下来,在渲染属性中,将Render Holdouts改为In Alpha或Separate AOV。

选择Alpha将把阻隔值放入美学图像的alpha中,Separate AOV将输出一个单独的图像。

关于Holdout

VFX艺术家经常需要在实拍的电影画面上合成CG物体。为了让观众相信CG物体是真实的,是属于这个场景的,holdouts被用来收集CG物体的阴影和反射,与实拍画面的阴影和反射相互吻合。

几何体 Geometry

Holdout对象被用来代替现实世界中的物体,以捕捉来自3D物体的光线互动。在RenderMan中,阻隔对象是通过启用trace holdout属性来指定的。

Attribute “trace” “int holdout” [1]。

集成器和AOVs

Holdout是在集成器层面实现的一种照明功能。它们能够捕捉各种集成器特定的照明效果,如漫反射和镜面反射、透射和焦散。支持搁置的可用集成器有。PxrPathTracer, PxrVCM, 和 PxrUPBP。

LPE工作流程对阻隔几何形状阻隔不变。

因为holdouts工作流程涉及多个AOV,在启用适应所有的情况下进行渲染可以减少噪点。

灯光

默认情况下,光源被认为是holdouts,不会直接照亮其他holdout对象。这可以防止用于照亮非阻隔几何体的灯光和已经在平面图像上捕获的照明之间的双重贡献。

要创建一个直接照亮保留对象的光源,使用”__illumholdout “作为光源组的后缀。这告诉集成器插件在确定照度时将此光视为非遮挡光源。

Light “PxrSphereLight” “spherelight” “string lightGroup” [“light__illumholdout”] 。

阿尔法,阴影和合成 Alpha, Shadows, and Compositing

Holdout贡献可以通过使用阿尔法和阴影通道作为遮罩在影片上进行合成。阴影通道是使用PxrShadowDisplayFilter插件捕获的,可以选择写入它自己的AOV或添加到alpha中。遮挡和未遮挡的输入AOV应该使用holdouts LPE前缀进行渲染,这样它们就只包含holdout几何体的阴影项。

DisplayChannel "color shadow"
DisplayChannel "color occluded" "string source" ["color lpe:holdouts;C[DS]+[LO]" ]
DisplayChannel "color unoccluded" "string source" ["color lpe:holdouts;unoccluded;C[DS]+[LO]"]

合成可以通过使用PxrImageDisplayFilter插件在RenderMan中进行交互式预览。这将把影片与美感通道合成,使用alpha通道和holdout shadow AOV来掩盖地面。

Blender中的批量渲染

使用RenderMan for Blender进行批量渲染,可以在外部渲染面板的渲染属性中进行。让我们来看看一些可用的选项。

External Render: 开启并加载一个批量渲染作业。

External Batch Render: 启动并加载一个烘培的渲染作业。

Render Animation: 你是否要渲染一个完整的动画,帧的范围应该通过开始和结束设置来设定。

Spool Style: 选择Blender Batch或RIB。Blender Batch会产生一个单独的blender进程来渲染。对于RIB,RenderMan for Blender会在渲染前先写出外部RIB文件到磁盘上(Blender不参与渲染)。每种模式都有优点和缺点。

Spool To: 可以选择Local Queue(本地队列)或Tractor(拖拉机)。Local Queue(本地队列)是我们的本地渲染队列管理器;所有的渲染工作都在本地机器上完成。Tractor是我们的渲染农场工作队列和工作分配系统。这种选择要求您在本地机器上安装Tractor,并在本地网络上安装Tractor引擎和Tractor刀片。

Enable Recovery: 您是否要尝试恢复渲染。更多信息请参见Checkpointing and Recovery。检查点设置可以在采样面板下找到。

Custom Render Commands: 允许你在渲染命令中添加任何你想添加的其他参数

Custom Denoise Commands: 允许你为去噪命令添加任何其他参数。

Use GPU for denoising: 去噪器是否应该使用GPU进行去噪。

RIB Format: 如果Spool Style被设置为RIB,这将控制RIB是以ASCII还是二进制格式写入。二进制可以节省磁盘空间,但不能用文本编辑器检查。

RIB Compression: 如果Spool Style被设置为RIB,这将控制你是否要对RIB文件进行GZip,以节省额外的磁盘空间。

Blender中的烘焙

概述

烘焙允许用户预先计算或 “烘焙 “模式网络到2D纹理图像或3D点云中。烘焙有几个优点。

  • 通过消除昂贵的图案网格的运行时间计算来减少渲染时间。这些节省可以在许多框架中实现。

  • 作为着色管线的一部分,查看开发资产预演。

  • 在不使用Pref的情况下,从参考位置锁定程序性的图案信息。

  • 在渲染器、实时视口和3D打印之间传输资产。

烘焙在RenderMan中是通过穿透式图案插件来实现的,它允许用户从相同的场景中进行渲染和烘焙。在不对资产或场景进行大量修改的情况下,用户能够:

  • 使用先前的烘焙结果,如果它们存在的话,或者

  • 读取模式网络而不是烘培的结果。这可能出于任何原因,但通常是因为烘焙的结果不存在,或者用户希望忽略烘焙的结果,以便调整模式网络。

烘培本身是通过使用烘培隐藏器来启用的。

纹理烘培

2D烘培允许用户将图案信号烘培到纹理图像上。用户可以直接烘培到txmake(.tex)、TIFF(.tif)和OpenEXR(.exr)输出。2D烘焙要求用户提供一个良好的纹理流形,也就是说,应该有用户创建的UV来满足他们的需要。虽然最常见的纹理流形是ST,但也支持任意的流形。支持Atlas输出,如UDIM。

RenderMan提供了一个通用的纹理烘培模式,PxrBakeTexture

点云烘焙

RenderMan提供了一个通用的点云烘焙模式,PxrBakePointCloud。这可以用来生成Ptex图像。

Blender设置

烘焙可以在渲染属性中,在烘焙面板下进行设置。

Bake: 这将会启动一个单次的渲染。

Bake:这将启动一个单帧烘培渲染。如果你想做多帧,或者想做批量渲染,请使用外部烘培渲染按钮。

Bake Mode: 在Pattern、Illumination或All之间进行选择。对于图案,这需要在你的对象的材质着色器网络中的某个地方有一个PxrBakeTexture或PxrBakePointCloud。对于光照,你的每个AOV都将被烘焙成一个点云(.ptc)文件或一个2D纹理文件。选择 “全部 “将同时烘培图案和光照。

最新文章

分类

关于

Keep thinking, Stay curious
Always be sensitive to new things