ラピュタエフェクト3

http://i-saint.skr.jp/flv/20070821.flv
gl_ModelViewMatrixは既にカメラ変換かけた後の行列なので(これに気付くのに時間がかかった…)、ホストプログラムからカメラ変換の逆行列を渡すことでシェーダ側でも3次元の位置情報を扱えるようだ。
pixel shaderでフラグメントの位置情報を利用してみた図。