Я полностью застрял с камерой в трассировке лучей. Пожалуйста, взгляните на мои расчеты и укажите, где ошибка. Я использую левую систему координат.камера в трассировке лучей
х, у // диапазон [0..S) х [0..S) // пикселей координаты
Теперь давайте преобразования пикселей координаты параметрических координат плоскости камеры:
xp = x/S * 2 – 1;
yp = y/S * 2 – 1;
Xp, Yp // диапазон [-1..1] х [-1..1]
расчет основе камеры:
//eye - camera position
//up - camera up vector
//look_at - camera target point
vec3 w = normalize(look_at-eye);
vec3 u = cross(up,w);
vec3 v = cross(w,u);
так ра Направление у должен иметь следующие координаты:
vec3 dir = look_at – eye + xp*u + yp*v;
ray3 ray = {eye, normalize(dir)};
Я не понимаю. Почему так много расчетов? Разве луч не должен находиться между камерой и представляющей интерес точкой зрения на камеру? Просто вектор между двумя точками? –