0001: ; c0-3   -- world + ビュー + 透視変換行列
0002: ; c12    -- {0.0, 0.5, 1.0, 2.0}
0003: ; c13    -- ライトのベクトル (w成分は環境光の強さ)
0004: ; c14    -- 視点の位置
0005: ; c15    -- ライトの色(平行光源の色*メッシュの色)
0006: ; c18    -- ライトの色(上半球の色)
0007: ; c19    -- ライトの色(下半球の色)
0008: ; c20    -- 半球の軸
0009: ;
0010: ; v0    頂点の座標値
0011: ; v3    法線ベクトル (w成分は1.0f)
0012: ; v7    テクスチャ座標0
0013: 
0014: vs.1.0
0015: 
0016: ;座標変換
0017: dp4 oPos.x, v0,   c0
0018: dp4 oPos.y, v0,   c1
0019: dp4 oPos.z, v0,   c2
0020: dp4 oPos.w, v0,   c3
0021: 
0022: ; N・L (平行光源)
0023: dp4 r0.w,   v3,    c13
0024: mul oD0,    r0.w,  c15
0025: 
0026: ; テクスチャー
0027: mov oT0,    v7
0028: 
0029: ; 視点から頂点の方向 E
0030: add r1,     c14,  -v0
0031: dp3 r1.w,   r1,    r1
0032: rsq r1.w,   r1.w
0033: mul r1,     r1,    r1.w         ; r1 = E = 正規化(視点 - 頂点)
0034: 
0035: add r1,     r1,    c13          
0036: mul r1,     r1,    c12.y        ; r1 = H = (E+L)/2
0037: dp3 oT1.xy, v3,    r1           ; V = N・H
0038: