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: mov oT0,    v7
0016: 
0017: ;座標変換
0018: m4x4 oPos, v0, c0
0019: 
0020: ; ((l,n) + l.w)*c14 (平行光源のライティング)
0021: dp4 r0.w,   v3,   c13
0022: mul oD0.xyz,r0.w, c14
0023: 
0024: ; 深度を色のw成分に入れる
0025: dp4 r0,     v0,   c6
0026: mad oD0.w,  r0,   c15.x, c15.y
0027: 
0028: ; シャドウバッファ
0029: dp4 r0.x,   v0,   c4
0030: dp4 r0.y,  -v0,   c5
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: