使用 Ptex 贴图和表达式

您可以结合使用 Ptex 贴图和表达式以生成基本体属性的输出值,包括样条线颜色和长度。例如,您可以创建 Ptex 贴图,然后使用表达式来更改贴图值对基本体颜色的影响。也可以使用表达式合并两个 Ptex 贴图的输出值以生成许多有趣的效果。

使用表达式修改 Ptex 贴图值

创建 Ptex 贴图后,可以使用生成的值作为表达式的输入或使用表达式修改 Ptex 贴图值。

  1. 单击此图标 以查看由 Ptex 贴图创建的表达式。

    Ptex 贴图表达式应与下面相似:

    $a=map('${DESC}/paintmaps/mask');

  2. 为要对 Ptex 贴图输出执行的操作创建变量和表达式,如随机化表达式。

    $b = rand(0.2, 1.4);

  3. 合并表达式中的变量以生成修改后的 Ptex 贴图输出。

    $a*$b

合并多个 Ptex 贴图的效果

可以创建多个 Ptex 贴图,然后使用表达式合并贴图对基本体的影响。在此示例中,将合并两个 Ptex 贴图的效果来控制“预览颜色”(Preview Color)属性。您可以使用相同的工作流为其他基本体属性创建并合并 Ptex 贴图。

  1. 单击“预览”(Preview)选项卡。
  2. 通过执行以下操作为“预览颜色”(Preview Color)创建 Ptex 贴图:
    • “预览颜色”(Preview Color)旁边,单击此图标
    • 从显示的菜单中选择“创建贴图”(Create Map)
    • 设置“创建贴图”(Create Map)选项。
    • 使用要用作“预览颜色”(Preview Color)的颜色绘制多边形曲面。
    • “预览颜色”(Preview Color)旁边,单击此图标 保存贴图。
  3. 重复执行步骤 2,为“预览颜色”(Preview Color)创建第二个 Ptex 贴图。
  4. 单击此图标 ,打开“XGen 表达式编辑器”(XGen Expression Editor)
  5. “XGen 表达式编辑器”(XGen Expression Editor)中,选择 Ptex 贴图表达式。
  6. 将表达式复制并粘贴到编辑器的第 2 行。
  7. 通过执行以下操作编辑表达式:
    • 在第 1 行中,将 Color1 更改为 Color
    • 在第 2 行中,将 $a 更改为 $b
    • 在第 3 行中,键入 $a*$b

      此表达式将合并 Ptex 贴图值。

    • 单击“接受”(Accept)

    请注意,现在在 XGen 窗口的“基本体颜色”(Primitive Color)下会显示两个 Ptex 贴图的值。

    可以通过许多其他方法合并 Ptex 贴图值。例如,您可以将贴图值相加,然后通过将 $a+$b*rand(0.6,1) 添加到表达式来对结果进行随机化处理。

    您可以将该表达式复制到其他基本体属性(如“长度”(Length))以控制其值。

在噪波表达式中使用两个 Ptex 贴图

在此示例中,会合并两个 Ptex 贴图的输出值,然后在噪波表达式中进行修改。

  1. 创建两个 Ptex 贴图。请参见上面的合并多个 Ptex 贴图的效果
  2. 创建噪波表达式,例如:
    $a=map('${DESC}/paintmaps/color');#3dpaint,5.0
    $b=map('${DESC}/paintmaps/color1');#3dpaint,5.0
    $freq_fine =0.653; #0.00,1.00
    $freq_coarse =22.000; # 0,100
    $X = 1.000; #0.00,10.00
    $Y = 1; #0.00,10.00
    $Z = 1; #0.00,10.00
    $frequency = ($freq_fine+$freq_coarse) * [$X,$Y,$Z];
    $Strength=1.000;
    $Contrast =0.793;
    $Color =1.000; #0,1
     
    $Cnew = ($Color ? noise($P*$frequency) : noise($P*$frequency)) 
    -> contrast($Contrast);
    mix($Cs,$Cnew,$Strength)*($a/$b)