C#(Pythonから移植)で、単純なレイトレーシング割り当てを実行しようとしています。サンプル コードが正しい図を表示するように管理できましたが、それを自分の割り当てに適応させようとすると、何かがうまくいかなくなります。
何が問題なのか分かっていれば、役立つと思われるコードをいくつか投稿しますが、どこから始めればよいかわかりません。
基本的に、私の割り当ては次のようなものを出力します:
http://i56.tinypic.com/2vcdobq.png
スペキュラ ハイライトをオンにして、
http://i53.tinypic.com/2e1r38o.png
それをオフにして。次のようになります。
http://i56.tinypic.com/2m7sxlh.png
My Phong 照明の式は次のようになります。
Colour I = diffuse_colour;
Vector L = light.vector;
Vector N = normal; //FIXME!
Colour Is = diffuse_colour * light.intensity;
Colour Ia = new Colour(1,1,1) * light.ambient;
Colour Kd = specular_colour;
Colour Ka = Kd;
double Ks = sharpness ?? 0.4;
Vector H = Vector.unit(view + L);
//Phong Illumination
//I = KaIa + KdIs max(0,L.N) + KsIs (H.N)^n
I = Ka * Ia
+ Kd * Is * Math.Max(0, L.dot(N))
+ Ks * Is * Math.Pow(H.dot(N),200); //FIXME?
そして、動作するサンプル コードからコピーしたので、動作することがわかりました。
私は困惑しているので、どんな考えでも素晴らしいでしょう。