Я пытаюсь реализовать трассировщик лучей, который использует произвольное положение камеры и перспективную проекцию. У меня есть положение камеры, положение взгляда, угол поля зрения, но я не могу понять, в каком направлении я должен снимать лучи, чтобы каждый луч соответствовал пикселю. Если бы я мог найти способ найти координаты плоскости изображения или векторы направления, которые должны иметь лучи, это было бы далеко не так. Любая помощь приветствуется.
Нахождение координат плоскости изображения OpenGL
Ответы (1)
Я бы сделал следующее: представьте, что прямо перед вашим глазом находится прямоугольная сетка. Сетка определяется одной точкой (точка (0;0) сетки) и двумя (трехмерными) базовыми векторами (x,y); с этим вы можете рассчитать луч как (начало + координата X * x + координата Y * y) - глаз. Регулируя расстояние между точкой вашего взгляда и исходной точкой; или, регулируя длину базовых векторов, вы могли бы получить желаемый угол обзора.
person
WebMonster
schedule
28.12.2010
Спасибо за ответ, который действительно имеет смысл. Но я думаю, что нашел решение, которое проще реализовать: opengl.org/ resources/faq/technical/selection.htm (луч выбора) Конечно, я буду использовать пиксельные координаты вместо координат мыши.
- person kusmukator; 29.12.2010