Ptex マップとエクスプレッションを使用する

Ptex マップとエクスプレッションは、スプラインのカラーや長さなどのプリミティブ アトリビュートに対する出力値を生成するために、合わせて使用することができます。たとえば、Ptex マップを作成し、次に、エクスプレッションを使用してマップの値がプリミティブのカラーにどのように影響するかを変更することができます。エクスプレッションを使用して 2 つの 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 マップを作成し、次に、エクスプレッションを使用してプリミティブへのマップの作用を結合することができます。この例では、2 つの Ptex マップのエフェクトが、Peview Color アトリビュートをコントロールするために結合されます。同じワークフローを使用して、その他のプリミティブのアトリビュートの Ptex マップを作成および結合することができます。

  1. プレビュー(Preview)タブをクリックします。
  2. 次の操作を実行してプレビュー カラー(Peview Color)の Ptex マップを作成します。
    • プレビュー カラー(Peview Color)で、の横のこのアイコンをクリックします。
    • 表示されるメニューから、マップを作成(Create Map)を選択します。
    • マップを作成(Create Map) オプションを設定します。
    • プレビュー カラー(Peview Color)として使用するカラーでポリゴンサーフェスをペイントします。
    • マップに保存するには、プレビュー カラー(Peview Color)の横にあるこのアイコン をクリックします。
  3. プレビュー カラー(Peview Color)の 2 番目の Ptex マップを作成するには、手順 2 を繰り返します。
  4. XGen エクスプレッション エディタ(XGen Expression Editor)を開くには、このアイコン をクックします。
  5. XGen エクスプレッション エディタ(Expression Editor)で、Ptex マップ エクスプレッションを選択します。
  6. エディタの 2 行にエクスプレッションをコピー&ペーストします。
  7. エクスプレッションを編集するには、次の手順を実行します。
    • 1 行で、Color1カラーに変更します。
    • 2 行で、$a $b に変更します。
    • 3 行で、$a*$b と入力します。

      このエクスプレッションでは、Ptex マップ値を結合します。

    • 適用(Accept)をクリックします。

    プリミティブのカラー(Primitive Color)の下にある XGen ウィンドウで、2 つの Ptex マップの値が表示されていることに注意します。

    Ptex マップ値を結合するには他にも多くの方法があります。たとえば、マップ値を追加し、次に、エクスプレッションに $a+$b*rand(0.6,1) を追加することにより製品をランダム化することができます。

    この式を他のプリミティブ アトリビュート(長さなど)にコピーして、その値をコントロールすることができます。

ノイズ エクスプレッションで 2 つの Ptex マップを使用する

この例では、2 つの Ptex マップの出力値を組み合わせ、ノイズ エクスプレッション内で変更します。

  1. 2 つの 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)