@lijiang

Sculpting in time

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

1 分钟

参考资料

Renderman 24 For Blender Doc

着色

RenderMan for Blender中的材质和着色网络的建立方式与Blender的内置渲染器基本相同,都是使用Shader Editor。但是,有一些快捷方式和用户界面部件是不同的。

添加材质

你可以使用 “对象上下文菜单 “中的快捷键将材质(bxdf)附加到选定的对象上。

这将把选定的材质附加到大纲目录中的选定对象上。

你也可以在 “材质属性 “选项卡中,以通常的方式将材质附加到一个物体上。

点击新建。

然后点击添加RenderMan节点树

并选择你想使用的RenderMan材质。

RenderMan着色网络总是以RenderMan材质输出节点为终点。

下面是一个着色网络的例子。

样式/模式Patterns

样式节点可以用Shader Editor的常规方式连接到材质或其他样式上,或者直接在Material properties Tab中连接。

对于可以接受样式连接的参数,在参数值旁边会显示一个。这就是我们的连接小部件。

点击这个小部件将显示我们的连接菜单。这里有一个例子。

模式将被分成几类,以便于浏览。__EXISTING__部分将显示着色器图中现有的节点,你可以连接到这些节点。如果参数已经被连接了,会出现一些更多的选项。

最上面一行将显示当前连接到这个参数的节点。断开项目将断开该参数与传入节点的连接。移除项目将断开并从图中移除传入的节点。Solo Input Node(单独输入节点)允许你单独传入的节点。如果你想集中精力调整这个节点,这是很有用的,与整个材质无关。

Blender置换

要在RenderMan for Blender中渲染几何体的位移,请使用PxrDisplace 节点。

添加PxrDisplace

要添加PxrDisplace,确保你已经为你的几何体添加了一个RenderMan材质。在材质属性中,在位移Displacement面板下,从 “位移Displacement “旁边的下拉列表中选择PxrDisplace。

你可能要处理的主要参数是。

  • Gain: 位移的增益,如果它是零,就没有位移。

  • Scalar Displacement: 标量位移的输入。这是一个浮动的位移。

  • Vector Displacement: 矢量位移输入。矢量位移数据是一个三通道数据文件,XYZ。

还有一些关于Displacement的实用模式。

避免多边形网格出现裂缝

当用硬法线置换网格时,面会分离并产生裂缝。置换会沿法线方向移动顶点,但硬边不同一侧的相邻顶点具有不同的法线,会向不同的方向移动,从而产生缝隙或裂缝。

RenderMan有一个"polygon:smoothdisplacement"属性,它将创建一个完全平滑的法线副本,并使用它代替原始法线。

在RenderMan for Blender中,这个属性是由网格上的对象数据属性中的 “Prevent polygon cracking"复选框启用的。

Blender中的毛皮/毛发着色

使用RenderMan for Blender进行毛皮和毛发的渲染/着色,可以按照在Blender中渲染毛发时的通常方式进行。用于毛发的主要RenderMan材质是[PxrMarschnerHair](https://rmanwiki.pixar.com/display/REN/PxrMarschnerHair)。

创建一个毛发系统

要创建一个毛发系统,选择你要添加毛发的网格对象,然后点击粒子属性。添加一个新的粒子系统并选择毛发。

你的对象在视窗中应该是这样的。

对毛发进行着色

如前所述,我们将使用PxrMarschnerHair材质来为我们的毛发着色。要做到这一点,点击你的网格的材质属性。在材质列表中,点击+按钮添加一个新的材质槽,然后点击新建。

点击Add RenderMan Nodetree,然后从下拉菜单中选择PxrMarschnerHair。

然后选择PxrMarschnerHair

回到粒子属性中,在 “渲染 “部分,将材质改为我们新添加的PxrMarschnerHair材质。

艺术控制

PxrMarschnerHair材质应该足以渲染真实的毛发。然而,这些参数可能有点过于技术性。为了更方便艺术家的控制,除了PxrMarschnerHair之外,还可以使用PxrHairColor模式节点。PxrHairColor有三个输出,需要连接到PxrMarschnerHair。最好使用着色器编辑器来进行连接。下面的图片显示了它们应该如何连接。

将模式改为艺术化将给你更多的艺术友好控制,以帮助毛发着色。

毛发ID Primvar

PxrHairColor包括为颜色添加随机性的控制。这是由一个ID原始变量控制的。在RenderMan for Blender中,我们为每一缕毛发添加一个 “索引 “原始变量。这个 “索引 “原始变量可以作为ID原始变量的来源。

Blender中使用PxrLayerSurface的材质分层

RenderMan允许通过分层材质来创建复杂的外观。这意味着像汽车油漆、瓶子上的标签、灰尘或泥浆等效果都可以有效地分层进行渲染。

下面你可以看到一个使用PxrLayerSurface在青铜猴头上创建铜锈的例子,这是一个逐步的例子。PxrLayerSurface和PxrSurface是一样的,只是大部分不适用于分层的参数被隐藏在用户界面中。

添加材质

将一个PxrLayerSurface材质附加到你选择的对象上。你可以通过对象的上下文菜单来做这个。

对于PxrLayerSurface,RenderMan for Blender会自动添加一个PxrLayerMixer节点,以及两个PxrLayer节点,作为基础层和上层。下面是你的网络在开始时应该是这样的。

基础层(铜)

对于底层,我们将创建一个铜的外观。首先,将连接到PxrLayerMixer的基础层参数的PxrLayer节点重命名为类似铜的东西。下面是我们的铜层的设置。

第1层(绿锈patina)

对于上层,我们将创建一个铜锈的外观。像底层一样,重命名PxrLayer节点为patina(这与PxrLayerMixer的Layer 1参数相连)。下面是我们的patina层的设置。

遮罩Masking

如果你按原样渲染你的场景,你会注意到只有绿锈层被显示出来,而没有铜层。为了将两者混合在一起,我们需要使用一个遮罩。对于遮罩,我们将使用一个PxrDirt模式节点。首先创建一个PxrDirt节点,并将resultR输出连接到PxrLayerMixer的Layer 1 Mask参数。你可以在着色器编辑器中这样做,就像下面的图片。

或者使用材质面板中的连接小部件,像这样。

下面是我们将用于我们的PxrDirt的设置。

为了让遮罩的样式有改变,我们将一个PxrGamma连接到Unoccluded参数,然后将一个PxrFractal图案连接到PxrGamma的输入颜色参数。

如果你想对遮罩值进行处理,独立于整个网络,你可以使用Solo Node功能。点击材质面板上的连接小部件,然后点击Solo Input Node。

结果

这是我们分层材质的结果。

为了增加真实感,可以考虑使用PxrBump图案,连接到每个层的全局凹凸参数,以创造一个更不平整的表面。

Blender中的UDIMs

在Blender中使用UDIMs是非常直接的。

如果你的纹理使用Mari UDIM样式,文件名是。Diffuse.1001.tex,你需要将Atlas风格设置为UDIM(Mari),并在文件名参数中使用Diffuse.<UDIM>.tex,以便将纹理加载到它们正确的UDIM中。

注意: <UDIM>可以是大写或小写的 <udim>。

第一个UV瓦片的Mari UDIM例子是Diffuse.1001.tex,其中 “1001 “取代了纹理文件名中的`<UDIM>。

纹理文件名中的 “1001 “代替了纹理文件名中的”"。
0 Diffuse.1001.tex UDIM (Mari) Diffuse.<UDIM>.tex Diffuse.<udim>.tex
1 Diffuse.U1_V1.tex UV Tile Base-1 (Mudbox) Diffuse.<U>_<V>.tex !
2 Diffuse.u0_v0.tex UV Tile Base-0 (Zbrush) Diffuse.<u>_<v>.tex

最新文章

分类

关于

Keep thinking, Stay curious
Always be sensitive to new things