下図のような反射視線Rを求めるプログラムをAGALで書いてみましたが、
プログラムが間違っていた場合レジスタの中身を見ないと
どこに間違いがあるのかよく分かりません。
////////////////// // R = I-2(N・I)N ////////////////// // ベクトルIを求める "sub ft0, v0, fc18\n" + // fc18 == eye(0,0,-1) // (N・I)を求める "dp3 ft1, v1, ft0\n" + // (N・I)・Nを求める "mul ft1, ft1, v1\n" + // -2(N・I)・Nを求める "add ft1, ft1, ft1\n" + "neg ft1, ft1\n" + // R = I-2(N・I)・Nを求める "add ft0, ft0, ft1\n" + "nrm ft0.xyz, ft0.xyz\n" + "mov ft1, ft0" |
しかし前回に”スラtmpさん”のサイトで発見したDirectXの描画をデバッグするためのツール
「PIX for Windows」を使うとAGALのデバッグが可能となります。
■ スラtmpさんのサイト
http://slatmp.blog102.fc2.com/blog-entry-56.htmlそして下の画像のようにレジスタの中身を見ることができ計算結果を確認することができました。