今回からContour系です。全3回くらいの予定です。
Contour(コンター)はオブジェクトの輪郭やなんかを線で描くやつです。
設定方法は2種類。
RenderSettings側で設定する簡単な方法と、自分でノードを繋いで設定する手間のかかる方法。
まずはRenderSettings側で設定する簡単な方法から。
ノードと言いつつ、今回はノードじゃないですw
上のような画像がレンダリングされるように設定してみます。
毎度の事ですが、Mayaは2012の英語版です。日本語版ユーザーの方はご容赦を。
step1
RenderSettingsの”Enable Contour Rendering”をON。ラインの出力を有効にします。
step2
何処にラインを描くかを定義します。
ここでは、Around all poly face”をON。
step3
アサインしているマテリアルのShadingEngine(SG)を選択、”Enable Contour Rendering”をON。
他のパラメータでラインの色や太さを設定します。
これで白いLineがレンダリングされるはずです。
※2014/12/01追記
Maya2014から設定がちょっと変わったみたいですね。
上記設定+RenderSettingsのQualityタブにあるSample Modeを”Legacy Sample Mode”に変更する必要があるようです。
ひょっとしてContourに関連したレンダリングをしたい場合はすべて”Legacy Sample Mode”にしなきゃいけないのかな?
参考:Mentalrayのcontourシェーダがレンダリングに反映されない
RenderSettingでの設定項目を確認していきます。
Contours
Enable Contour Rendering
コンターレンダリングの有効/無効
Hide Source
ライン生成もとのオブジェクトを非表示
Flood Color
塗りつぶしカラー
Over-Sample
値が高いほど線がなめらかに。
Filter Type
Box /Triangle / Gaussian の三択。
Filter Support
フィルタの強さ
Draw By Property Difference
Around silhouette(coverage)
Around all poly faces
Around coplanar faces
複数の法線間にラインを描く(マニュアル曰く)。よく分かりません。
”Around render tesselation”に似た絵ができる。
Between differnt instances
Between different material
Between different label
異なるラベルのオブジェクト間にラインを描く。
ここで言うラベルとはMentalrayで規定する”miLabel”というアトリビュートのこと・・・だと思います。
『mib_amb_occlusion』の回でもちょこっとやりました。
この”miLabel”は自分でアトリビュートに追加する必要があります。
以下に”miLabel”追加スクリプトのサンプル。
追加したいオブジェクトを選んで実行。Extra Attributesに追加されます。
MEL
addAttr -at short -longName miLabel -defaultValue <数値>;
Python
import maya.cmds as cmds cmds.addAttr( longName='miLabel', attributeType='short', defaultValue=<数値> )
Around render tesselation
Front vs. back face contours
表と裏の間にラインを描く。
Draw By Sample Contrast
Enable Color Contrast
閾値を上回るカラー差のピクセル間にラインを描く。
Color Contrast
Enable Depth Contrast
閾値を上回るデプス差のピクセル間にラインを描く。
Depth Contrast
Enable Distance Contrast
閾値を上回る距離差のピクセル間にラインを描く。
Distance Contrast
距離の閾値
Enable Normal Contrast
閾値を上回る法線差のピクセル間にラインを描く。
Normal Contrast
法線の閾値
Enable UV Contours
UVベースでのラインを描くる
UV Contours
以上RenderSettingsのContour設定項目についてでした。
次回はCustom ShadersとContourノードを使ってラインを描く方法についてやります。
Mayaは2012の英語版を使用しています。
最新のバージョンとは異なる可能性がありますのであしからず。
コメント