Нахождение координат плоскости изображения OpenGL

Я пытаюсь реализовать трассировщик лучей, который использует произвольное положение камеры и перспективную проекцию. У меня есть положение камеры, положение взгляда, угол поля зрения, но я не могу понять, в каком направлении я должен снимать лучи, чтобы каждый луч соответствовал пикселю. Если бы я мог найти способ найти координаты плоскости изображения или векторы направления, которые должны иметь лучи, это было бы далеко не так. Любая помощь приветствуется.


person kusmukator    schedule 28.12.2010    source источник


Ответы (1)


Я бы сделал следующее: представьте, что прямо перед вашим глазом находится прямоугольная сетка. Сетка определяется одной точкой (точка (0;0) сетки) и двумя (трехмерными) базовыми векторами (x,y); с этим вы можете рассчитать луч как (начало + координата X * x + координата Y * y) - глаз. Регулируя расстояние между точкой вашего взгляда и исходной точкой; или, регулируя длину базовых векторов, вы могли бы получить желаемый угол обзора.

person WebMonster    schedule 28.12.2010
comment
Спасибо за ответ, который действительно имеет смысл. Но я думаю, что нашел решение, которое проще реализовать: opengl.org/ resources/faq/technical/selection.htm (луч выбора) Конечно, я буду использовать пиксельные координаты вместо координат мыши. - person kusmukator; 29.12.2010