0001: ; c0-3   -- world + ビュー + 透視変換行列
0002: ; c4-7   -- world
0003: ; c12    -- (0.0, 0.5, 1.0, 2.0)
0004: ; c13    -- ライトのベクトル (w成分は環境光の強さ)
0005: ; c14    -- ライトの色(メッシュの色)
0006: ; c15    -- 視点
0007: ; c16    -- (-1/(far-near), far/(far-near), 0,0) 
0008: ;
0009: ; v0    頂点の座標値
0010: ; v3    法線ベクトル (w成分は1.0f)
0011: ; v7    テクスチャ座標
0012: 
0013: vs.1.0
0014: 
0015: ;座標変換
0016: dp4 oPos.x, v0, c0
0017: dp4 oPos.y, v0, c1
0018: dp4 oPos.z, v0, c2
0019: dp4 oPos.w, v0, c3
0020: 
0021: ; ランバート diffuse
0022: dp4 r0.w,   v3,  c13            ; l・n
0023: mul oD0,    c14,  r0.w          ; ライトの色(メッシュの色付き)をつける
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: 
0032: dp3 r1.x, r0, r0
0033: rsq r1.y, r1.x
0034: mul r1.z, r1.x, r1.y            ; r1 = (|x|^2, 1/|x|, |x|)
0035: 
0036: mad oFog.x, r1.z, c16.x, c16.y  ; fog = (far-z)/(far-near)
0037: