0001: ; c0-3   -- world + ビュー + 透視変換行列
0002: ; c4-7   -- world
0003: ; c12    -- {0.0, 0.5, 1.0, 2.0}
0004: ;
0005: ; v0    頂点の座標値
0006: ; v3    法線ベクトル (w成分は1.0f)
0007: 
0008: vs.1.0
0009: 
0010: ;座標変換
0011: m4x4 oPos,  v0,   c0
0012: 
0013: ; Lambert 拡散
0014: dp4 r0, v3, c13
0015: max r0, r0, c13.w
0016: mul oD0, r0, c14
0017: 
0018: ; 視線ベクトル
0019: m4x4 r0,  v0,   c4
0020: add r0, c15, -r0
0021: dp3 r0.w, r0, r0    ; 正規化
0022: rsq r0.w, r0.w
0023: mul r0, r0, r0.w
0024: 
0025: ; Half ベクトル
0026: add oT1, r0, c11
0027: 
0028: ; ワールド座標での法線ベクトル
0029: m3x3 oT0,  v3,   c4
0030: