ピクセル単位でのライティング計算。

プロジェクトダウンロード

ピクセルシェーダを使用して、ピクセル単位のライティングを行います。
頂点シェーダ・ピクセルシェーダともに、プロジェクト内のmakepsh.bat バッチファイルでビルドして、shdata.c に書き込まれます。

それぞれのシェーダは以下のソースファイルに記述されています。

ファイル名解説
PixelSpecular.vsh頂点シェーダ
PixelSpacular.pshピクセルシェーダ


頂点シェーダは、ディフューズ色としてそれぞれの頂点の法線を出力し、 スペキュラ色として、ハーフベクトルを出力します。
ピクセルシェーダは、その二つのベクトルの内積をピクセル毎に計算し、 スペキュラ光の強さとして使用します。また、ディフューズ色として 受け取った法線と光源ベクトルとの内積をディフューズ光の強さとして 使用します。