0001: ; c0-3   -- world + ビュー 行列
0002: ; c12    -- {0.0, 0.5, 1.0, 2.0}
0003: ; c13    -- ライトのベクトル (w成分は環境光の強さ)
0004: ; c14    -- モデルの色
0005: ; c15    -- 深度調整
0006: ;
0007: ; v0    頂点の座標値
0008: ; v7    テクスチャ座標
0009: 
0010: vs.1.0
0011: 
0012: ;座標変換
0013: m4x4 r0,  v0,   c0
0014: 
0015: dp3 r0.w, r0, r0
0016: rsq r1.w, r0.w
0017: mul r0.w, r0.w, r1.w
0018: mov oPos.w, r0.w                ; oPos.w = r0.w = ||v0||
0019: 
0020: mad oPos.z,  c15.x, r0.w, c15.y ; oPos.z = z_max*(||v0||-z_min)/(z_max-z_min)
0021: 
0022: add r1.w, r0.w, -r0.z           
0023: dp4 r1.z, r0.xxyy, r0.xxyy
0024: rcp r1.z, r1.z
0025: mul r0, r0, r0.w
0026: mul r0, r0, r1.w
0027: mul r0, r0, c12.w
0028: mul oPos.xy, r0, r1.z           ; oPos.xy = r0.xy*||v0||*(||v0||-r0.z)/(v0.x^2+v0.y^2)
0029: 
0030: ; 通常レンダリング(比較用)
0031: ;m4x4   r0,  v0,   c0
0032: ;m4x4 oPos,  r0,   c4
0033: 
0034: ; ((L・N) + L.w)*c14 (平行光源のライティング)
0035: dp4 r0.w,   v3,   c13
0036: mul oD0,    r0.w, c14
0037: 
0038: ; テクスチャーを張る
0039: mov oT0,    v7
0040: