薄膜シェーダー~NVIDIAのサンプルの奴です~■はじめにトゥーンシェーダーをやったので、似たようなものが無いか探してみました。言うのがあったのでこれを紹介します。扱っている膜が透明らしいので、ここでは、薄膜シェーダーと呼びます。加算半透明で、モデルを表示するです。トゥーンの場合には、光源の方向と法線の内積でした。それは、照明と同じ効果を出します。今回の場合は、正面を向いているかどうかを表現するので、輪郭抽出のような用途に使えます。以下のファイルをダウンロードしてください。いうファイルがエフェクト用に入っています。今回のテクスチャーは、前回と異なり、内積の値が小さな場合に明るく、大きな場合に暗くなります。結果的に、外側がぼおっとした表示になります。トラでも表示してみました。■バーテックスシェーダー(vs.vsh)バーテックスシェーダープログラムを見ます。視線(カメラ)の位置は、ワールド座標での位置なので、各頂点をワールド座標の行列で変換します。その後に、カメラの位置との差を取って、カメラの方向を算出します。後は、法線との内積をとって、法線がどれだけ正面を向いているかを計算し、その値をテクスチャーの座標にします。後は、元のテクスチャーを張ります。サンプルでは、元のテクスチャーは張らなかったのですが、さびしかったので、こうしました。サンプルでは、テクスチャーを流していたのですが、切れ目が汚かったので、流すのをやめました。元の色で塗ると、その色がつよすぎるので、こうしました。■初期化では、初期化です。トゥーンシェーダーとの違いは、加算合成を行うために、Zバッファを切っていることです。S_OK;■表示では、描画部分です。後は、加算合成になるように、α合成の設定をしました。一応、使い終わったら、α合成をしないように、元に戻しておきます。FALSE);}■X線レンダリング後から、CG雑誌を読んだときに、レントゲン撮影をしたような画像をみました。『新しく、シェーダーを書こうか』と思ったのですが、よく考えたら、薄膜シェーダーでいいかなぁと思いました。内積の小さな成分を明いテクスチャーを使いました。法線が横を向いている方が明るくなります。これで輪郭が抽出でき、X線で照らされたように見えると思いました。ポリゴンが多くないと、それらしくみえないですかねぇ。■最後に今回は、トゥーンから、少しの変更で、幻想的な表示のレンダリングを行うことができました。サンプルには、他にもテクスチャーがありました。それらの一つの、のテクスチャーを使えば、下のような表示になります。金属的な表現か?こんなきれいな画像がお手軽に表示できるなんて、すごい時代になりましたね。もどるimagire@gmail.com。