0001: vs.1.0
0002: 
0003: ; c0-3   -- world + ビュー + 透視変換行列
0004: ; c4-7   -- world 行列
0005: ; c8-11  -- world の逆転置行列
0006: ; c12    -- {0.0, 0.5, 1.0, -1.0}
0007: ; c13    -- ライトのベクトル
0008: ; c14    -- カメラの位置
0009: ; c15    -- メッシュの色
0010: ;
0011: ; v0    頂点の座標値
0012: ; v3    法線ベクトル
0013: ; v7    テクスチャ座標0
0014: ; v8    テクスチャ座標1
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: ; ((l,n)+1)/2 (平行光源のライティングを0~1に範囲変更)
0023: dp3 r0.x,   v3,   c13
0024: add r0.x,   r0,   c12.z
0025: mul oT0.x,  r0.x, c12.y
0026: 
0027: ; スクリーン座標をテクスチャー座標に設定
0028: dp4 r0.x,   v0, c0
0029: dp4 r0.y,   v0, c1
0030: dp4 r0.w,   v0, c3
0031: rcp r0.w,   r0.w
0032: mul r0.xy,  r0, r0.w
0033: mul oT1.xy, r0, c12.ww
0034: 
0035: ; メッシュの色
0036: mov oD0, c15