0001: ; Shadow.vsh
0002: ; c0-3   -- world + ビュー + 透視変換行列
0003: ; c4-7   -- world + ライトビュー + 透視変換行列
0004: ; c13    -- ライトのベクトル (w成分は環境光の強さ)
0005: ; c14    -- ライトの色(メッシュの色)
0006: ; c15    -- ライトの色(メッシュの色)
0007: ;
0008: ; v0    頂点の座標値
0009: ; v3    法線ベクトル (w成分は1.0f)
0010: ; v7    テクスチャ座標
0011: 
0012: vs.1.0
0013: 
0014: ;座標変換
0015: dp4 oPos.x, v0,   c0
0016: dp4 oPos.y, v0,   c1
0017: dp4 oPos.z, v0,   c2
0018: dp4 oPos.w, v0,   c3
0019: 
0020: ; ((l,n) + l.w)*c14 (平行光源のライティング)
0021: dp4 r0.w,   v3,   c13
0022: mul oD0,    r0.w, c14
0023: 
0024: ; デカールテクスチャー
0025: mov oT0,    v7
0026: 
0027: ; シャドウバッファ
0028: dp4 r0.x,   v0,   c4
0029: dp4 r0.y,  -v0,   c5
0030: dp4 r0.z,   v0,   c6
0031: dp4 r0.w,   v0,   c7
0032: rcp r0.w, r0.w
0033: mul r0.xy, r0, r0.w
0034: mad oT1.xy, r0, c12.y, c12.y
0035: 
0036: ; 深度を色のw成分に入れる
0037: mad oD0.w,  r0.z,   c15.x, c15.y
0038: