Я пытаюсь вычислить пиксельные координаты 3d-точки (назовите это p) в мировом пространстве. Я понимаю, что я должен преобразовать p из мирового пространства в пространство камеры, умножив его на обратную матрицу камеры в мир. Затем найдите координаты точки на холсте, используя перспективную проекцию, затем преобразуйте ее в пиксельные координаты. Я думаю, что это правильно?
В настоящее время я застрял в поиске матрицы 4x4, которая позволила бы мне преобразовать p из мирового пространства в пространство камеры. Если у меня есть векторы положения и направления моей камеры, как я могу рассчитать эту матрицу 4x4?
vec3 cameraPos = vec3(0.f, 0.f, -5.f);
vec3 cameraDir = vec3(0.f, 0.f, 1.f);
Нужен ли мне вектор подъема камеры и что это представляет?
I использую glm.