Я пытаюсь немного больше узнать о векторе, написав простой трассировщик лучей, и я немного читал о нем, но я не смог найти, как определить направление первичной лучей. Это звучит как простая проблема и, вероятно, есть, но с моими текущими знаниями я не смог понять это.
Я подумал, что мне нужна камера (не что иное, как местоположение и направление как векторы), и из камеры я запускаю первичные лучи на экран перед камерой, который представляет окончательное изображение. Что я не могу понять, так это угловые координаты экрана. Если я знаю экран, найти направление первичных лучей легко.
Я надеюсь, что экран можно понять, используя только простую математику, которая не требует матриц вращения. Мое лучшее предположение следующее:
У меня есть направление камеры в виде вектора, это направление равно нормали плоскости проекционного экрана. Таким образом, у меня есть нормаль экрана, и оттуда я могу легко вычислить центр экрана, который является:
camera_location + (normal * distance)
Где расстояние - это расстояние между экраном и камерой. Однако здесь я теряюсь и не могу найти способ определить угловые координаты плоскости для любого произвольного направления камеры.
Кто-нибудь из вас может помочь мне здесь? И если мой метод не может работать, что делает?