こんばんは。
3DCG理論なので、ストレートに本を読むという方法をおすすめします。
その上でMayaのシェーダーのパラメータを触ってみると「あーはいはいあれね」となります。
Unityでシェーダを書くという手段もありますが、C言語のようなプログラムを書くので、少し学習コストが高いような気がします。
パラメータの数は膨大なので、一つ一つの要素をいじって試すというよりは、「複数のパラメータはどういう関係にあるのか」という理論を体系的に知っておけば、UnityとMayaいずれの方向に進もうが、ツールがBlenderになろうが、対応できます。
例えば、一般的なカメラのパラメーターだけでもざっと思いつくだけでも、被写界深度、広角望遠、F値、ISO感度、シャッタースピード、アパーチャー、透視投影平行投影とか、色々あります。カメラってこういう構造になっているんだなーと理解しておけばソフトがなんであろうが対応できます。(カメラの構造はCG理論の本に書いてあります)
なので、本で抑えたほうが応用が効くのかなと思います。
さて、ざっくりとレンダリングとシェーティングの構造関係について説明すると
レンダリングは
①透視投影=>②隠面消去=>③陰影付与(シャドウイングとシェーディング)=>④効果付与(マッピング)
という流れで行います。この一連の流れをレンダリングパイプラインといいます。
(GPUレンダリングのパイプラインはまた別にあったりする。)
なので、レンダリングの一つの工程としてシェーディングがあります。
それぞれ説明します。
①透視投影
遠近感を効かせた投影方法です。
②隠面消去
カメラから見てオブジェクトが重なるとき、手前のオブジェクトを映して、奥のオブジェクトを如何に隠すかという方法を指し、アルゴリズムが何種類かあります。有名なのか以下の4つです。
- 奥行きソート
- スキャンライン
- Zバッファ
- レイトレーシング
③陰影付け
陰影は読み方はともに「かげ」と「かげ」ですが、ニュアンスが違います。
影と陰らへんがわかりやすいです。
それで、シェーディング(陰)を構成する基本的な三要素は鏡面反射、拡散反射、環境光があります。
=> ex) ブリン クックトランス フォン
=> ex) ランバート
それぞれ計算式があります。シェーダーのパラメータはこの計算式の変数をもとに作られています。
例えば、フォンシェーダーだったら
みたいな計算式があります。参考
このcos^nの部分に該当するCosine powerというパラメータがMayaにはあります。
Phong シェーダ(Phong)
シャドウイング(影)
光源の種類によって、影の境界がぼんやりになるかどうかが決まります。
ぼんやりしている部分の影を半影っていいます。
くっきりしている部分の影を本影っていいます。
光源の種類によって計算式があります。(ややこしいので略)
④効果付与(マッピング)
パンプマップとかテクスチャマッピングとかをかける工程です。
以上ざっくりレンダリングとシェーダーの説明をしましたが、ここらへんの原理に関しては、
CGと画像合成の基礎 浅井紀久夫
コンピューターグラフィックス CG-ARTS
とかが詳しいです。
ご参考までに。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/30 14:25