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: 0035: 0036: mov oD0, c14 0037: 0038: ; ワールド座標での法線ベクトル 0039: m3x3 oT0, v3, c4 0040: