<< RenderManシェーダーを使って金属質感を作る 戻る エラーメッセージ >>

MacRenderManのShaderを適用した結果

下記のShaderは3DJoy(Presenter3D)のサイトにあった高野薫氏作成のシェーダーです。申し訳ありません。勝手ながら実験させていただきました。
日本語のコメントが入ったままでも、MacRenderManのShaderAppは問題なくコンパイルしました。ありがとうございます。WindowsでのPRManでは、たくさん警告表示はしましたが、コンパイルはされています。

/*
* KTshinyMetal(): give a surface a metallic appearance
*/
surface
KTshinyMetal(
float Ka = 1;
float Kd = 1;
float Ks = 1;
float Kr = 1;
float roughness = .25;
color specularcolor=1;
string mapname = "carLenv.tex"; )
{
color ev;
point D, Nf, NI;
vector V;

/* N 面のシェーディング法線 I 面に当る光線の方向(カメラから) */
Nf = faceforward(normalize(N), I);
NI = normalize(I);

if( mapname != "" ) {
/* 環境マップの検索方向Dを計算する */
D = reflect(NI, Nf);
/* Dを環境マップの空間に変換する */
D = transform("world", point "world" (0,0,0) + D);
ev = color environment(mapname, D);
} else
ev = 0;

/* Oi面の不透明度(出力)Os面の不透明度(入力) */
Oi = Os;
/* Ci面からの色(出力)Cs面の色(入力) */
Ci = Os * Cs * (
Ka * ambient() + Kd * diffuse(Nf)
+ (specularcolor * Ks * ((Kr * ev) + specular(Nf,-NI,roughness)) )
) ;
}



Presenter3Dでは、ちょっと問題がありました。
Limit Number of Shaders

Presenter can't handle more than 350 shaders in the system folder. We had to cut our shaders down to 316.

ということで、シェーダの登録数を減らしてこのKTshinyMetalが使えるようになりました。
左上KTshinyMetal
右上Metal,Polished(VG Shaders)
右下Valis Group 社で販売されているVG Shaders Vol.6 のBrushed Metal, Turned
左下shinymetal
txdemo7.JPG

■■以下転用します。■■
より金属らしい質感をほしい場合、パラメーター調整かカスタムシェダーか販売されているシェダーを利用すると良いでしょう。

環境マップの方向性も考えてオブジェクトを分割し作成すると、よりリアルな反射表現を得ることもできます。

またディスプレイスメントを用いるとよりリアルな表面を得られます。

<< RenderManシェーダーを使って金属質感を作る 戻る エラーメッセージ >>

Comments

コメント一覧

投稿フォーム