Ptex マップとエクスプレッションは、スプラインのカラーや長さなどのプリミティブ アトリビュートに対する出力値を生成するために、合わせて使用することができます。たとえば、Ptex マップを作成し、次に、エクスプレッションを使用してマップの値がプリミティブのカラーにどのように影響するかを変更することができます。エクスプレッションを使用して 2 つの Ptex マップの出力値を結合し、多くの面白いエフェクトを生成することもできます。
Ptex マップを作成した後に、そのマップが生成する値をエクスプレッションの入力として使用したり、エクスプレッションを使用して Ptex マップの値を変更することができます。
Ptex マップのエクスプレッションは次のようになります。
$a=map('${DESC}/paintmaps/mask');
$b = rand(0.2, 1.4);
$a*$b
複数の Ptex マップを作成し、次に、エクスプレッションを使用してプリミティブへのマップの作用を結合することができます。この例では、2 つの Ptex マップのエフェクトが、Peview Color アトリビュートをコントロールするために結合されます。同じワークフローを使用して、その他のプリミティブのアトリビュートの Ptex マップを作成および結合することができます。
このエクスプレッションでは、Ptex マップ値を結合します。
プリミティブのカラー(Primitive Color)の下にある XGen ウィンドウで、2 つの Ptex マップの値が表示されていることに注意します。
Ptex マップ値を結合するには他にも多くの方法があります。たとえば、マップ値を追加し、次に、エクスプレッションに $a+$b*rand(0.6,1) を追加することにより製品をランダム化することができます。
この式を他のプリミティブ アトリビュート(長さなど)にコピーして、その値をコントロールすることができます。
この例では、2 つの Ptex マップの出力値を組み合わせ、ノイズ エクスプレッション内で変更します。
$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)