2010年9月27日月曜日

トゥーンシェードとテクスチャカラーのブレンド

Toon_tex01



 
Maya標準のトゥーンシェーダは、プリセットされたランプシェーダ。
そのランプシェーダは、カラー設定を"Color"アトリビュートに対して
行うので、そのままではテクスチャーを接続する場所がなくなり、
「トゥーンシェード+テクスチャ」という表現はできない。
 
これを実現する為には以下の方法を用いる。
 
 
 
1.Hypershadeを開き、以下のノードを用意する。
 括弧内はHypershadeウィンドウ左側の"Create"タブ内の場所。
 ・RampShader(Maya→Surface)
 ・SurfaceShader(Maya→Surface)
 ・File(Maya→2DTexture)
 
 
2.作成したRampShaderにグレースケールでトゥーンのカラー設定を行う。
 
Toon_tex02
 
 
3.作成したFileノードにテクスチャ画像を接続する
 
Toon_tex03
 
 
4.1で作成した全ノードを[Work Area]にドラッグし表示
 
 
5.MultuplyDivide
ノード(Maya→Utilities)を作成(直接Work Areaに出来る)
 
 
6.
Work Areaに4つのノードが表示された状態で、以下のように接続を行う。
 ・FilemulitiplyDivideinput1に接続
 ・RampShadermulitiplyDivideinput2に接続
 ・MulitiplyDivideの"output"をsurfaceShaderの"outColor"に接続
 
Toon_tex04
 
  
出来上がったsurfaceShaderをモデルにアサインすれば完成。
 
 
リアルタイム表示では正しく結果が出ないので注意。
レンダリングすると正しく描画される。
もっと簡単な方法がありそうな気もするので、今後も要調査。



2010年9月21日火曜日

バーテックスカラーの焼付け

Verc_01
 
 
レンダリングで作成した陰影の結果をバーテックスカラー(Color Set)に格納する方法。
バーテックスカラーを用いると光源計算を行わなくても事前に計算された
陰影を表現できる為、処理負荷を軽くすることが出来る。
リアルタイム(ゲームなど)の背景表現では定番の手法。
 
 
 
バーテックスカラーは当然ディティールの精度が頂点数に比例するため、
大きな面などはある程度分割する必要がある。
サンプルデータの板は20×20に分割している。
 
 
Verc_02
            【シーン設定】
 
ライティングはmentalrayでのレンダリングで意図した結果が出るように調整する。
サンプルでは赤と青のポイントライトを1つずつ配置し、
FGを用いるため、BGカラーをグレーに変更している。
Render Settingsは「Preview:Final Gather」のデフォルト設定。
 
Verc_03
     【mentalrayでのレンダリング結果】
 
ここまでの準備が出来たら、カラー焼付けの作業を行う。
 
 
 
1.レンダーセッティングを開き[render using]を[mentalray]に変更。
 
2.モデルを選択し、[Lighting/Shading]→[BatchBake(mentalray)■]を選択。
 
3.開いたオプションウインドウの左上[Edit]→[Reset Settings]で初期設定に戻す。
 
4.初期状態から以下の項目を変更する。
 
Verc_04
 
 ・[Bake to:]を[Vertices]に
 ・[Use bake set override]にチェック
 ・[Color mode]を[Light and color]に
 ・[Convert and Close]か[Convert]をクリック(その後に多少時間が掛かる)
 
 
モデルにColor Setが設定されていない場合は新たにColor Setが作成される。
事前にColor Setが存在し、選択されている場合はそれに上書きされる。
 
 
レンダリングにシャドウを用いている場合、
[Bake shadow]にチェックを入れると影も考慮したカラーが作成される。
ただし影の形状を正確に焼き付けようとすると相当なポリゴン分割が必要になるので注意。
 
Verc_05
        【影の焼付けを行った結果】