Я пытаюсь выполнить простое задание трассировки лучей в c # (перенесено из python).Мне удалось заставить пример кода показать правильную картинку, но когда я пытаюсь адаптировать его к своему назначению, что-то идет не так.
Если бы я знал, что идет не так, я бы опубликовал какой-то код, который, как я думал, могпомогите, но я понятия не имею, с чего начать.
В основном, мое назначение выдает что-то вроде этого:
http://i56.tinypic.com/2vcdobq.png
С включенным зеркальным выделением и
http://i53.tinypic.com/2e1r38o.png
С выключенным.Предположим, он выглядит примерно так:
http://i56.tinypic.com/2m7sxlh.png
Моя формула освещения 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?
И я скопировал ее из рабочего примера кода, поэтому язнаю, что это работает.
Любые мысли были бы великолепны, потому что я в тупике.