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: m3x3 r1, v3, c4 0020: mov oT1, r1 0021: 0022: ; 視線ベクトル 0023: m4x4 r0, v0, c4 0024: add r0, c15, -r0 0025: mov oT2, r0 0026: 0027: dp3 r0.w, r0, r0 ; 正規化 0028: rsq r0.w, r0.w 0029: mul r0, r0, r0.w 0030: 0031: dp3 r0.w, r0, r1 0032: mul r0.w, r0.w, c12.w 0033: mad oT0.xyz, r0.w, r1, -r0 ; r=2(N・E)N-E 0034: