~■はじめに前回の「因数分解化BRDF」で放物変換を取り扱ったのですが、この方法は、今まで1次元テクスチャでテーブル引きしていて頂点ごとにかくかくしたたものを滑らかな変化に変えることができます。この表現で一番最初に思いつくのがトゥーンシェーディングで、トゥーンシェーディングは、下手にやるとグーローシェーディングの線形補間によってポリゴンの形が見えてしまうのですが、放物変換を使うと滑らかに変化させることができます。今回のプログラムは、次のものです。トゥーンシェーディング:DirectX9(ピクセルシェーダ1.1)まぁ、いつものように適当にファイルが入っています。出力されるフレームワークのファイルは紹介を省かせていただきます。アプリケーションのソースあと、実行ファイル、プロジェクトファイルが入っています。■何やってるの?今回は、前回より簡単になっています。2色に塗り分けられたトゥーンのテクスチャをライトベクトルを放物変換を使って計算したテクスチャ座標を使ったサンプリングによって、デカールの色に陰影をつけます。(Q(L))なお、今回は前回の放物変換をそのまま使いましたが、実際にやってみると白と黒の境界がテクスチャのふちぎりぎりになってしまったので、テクスチャ座標に変換するときの半径(前回の式のpv)をもう少し小さくしたほうが良いかも知れません。■プログラム頂点シェーダでは放物変換を使って、ライトベクトルからテクスチャ座標を計算します。}ピクセルシェーダでは先ほど求めたテクスチャ座標でトゥーンのテクスチャを読み込んでデカールテクスチャからの色に陰影をつけます。そのままでは色の変化が急すぎたので、環境光を0.5つけました(同時に読み込んだ陰影も0.5倍に調整しました)。}■最後に逆に放物変換に特有のクセが出てきますね。もどるimagire@gmail.com。