今回は,トゥーンレンダリングをやってみました。
エフェクト(8) トゥーンレンダリング★ 1.はじめに…
今回は,トゥーンレンダリングをやってみました。
★ 2.アルゴリズムの概要
トゥーンレンダリング(セルシェーディング)は,2つの処理を行います。
まず1つ目はペイントと呼ばれる段階的な色分けをする処理です。この処理はライトベクトルと法線ベクトルの内積をとったものをピクセルの明るさとして,明るさの値をテクスチャ座標にして,テクスチャを参照します。こうすることによって,影をなめらかなグラデーションで表示するのではなく,段階的に表示するようにします。 もうひとつは,インクと呼ばれる処理です。一番手っ取り早いのは,モデルの裏側だけをレンダリングして,法線ベクトルの方向にちょっち引き伸ばしてやります。こうすることで黒いモデルが描画されるので,輪郭が浮かびあがります。実行してもらうとわかるのですが,元のモデルの頂点が同じでも,法線ベクトルの向きが違うため,引き伸ばしてやると隙間ができてしまいます。(目のあたりなんかはひどいのがわかっちゃいます) 要するに手抜きしています。 綺麗に表示するためには,それぞれの頂点について同じ法線ベクトルをもつデータを利用するか,輪郭線を作成するために専用の法線ベクトルを共有するデータを別個に用意する必要があるそうです。 ★ Download
本ソースコードおよびプログラムを使用したことによる如何なる損害も製作者は責任を負いません。
本ソースコードおよびプログラムは自己責任でご使用ください。 プログラムの作成にはMicrosoft Visual Studio 2005 Professional, Cg Toolkit 2.0 Decemberを用いています。 |