Я пытаюсь реализовать наложение для конкретной экранной заставки, в которую я ввожу свое приложение. Эта заставка использует 3D-объекты и динамическую камеру.
У меня есть положение и направление камеры, а также позиции 3D-объекта и значение fov, и я бы хотел создать наложенную на аудио наложение, которая добавляет значки в объекты.
У меня есть 2d-оверлей на месте и вы можете успешно перебирать объекты, однако я не могу понять, как рассчитать усечение с данными, которые у меня есть.
В принципе: как создать фруст из направления камеры? Является ли мир экранирующей матрицей, необходимой для создания усеченного конуса? У меня нет матрицы w2s, так что это сделает проблему невозможной?
Существует отличный ресурс по адресу http://web.archive.org/web/20120531231005/http://crazyjoke.free.fr/doc/3D/plane%20extraction.pdf, который должен объяснить все, что вам нужно, и изложить, как извлечь вид усечения с использованием представлений и модельных матриц.
Что касается матрицы экрана для экрана (W2S), вы можете рассчитать ее на лету, используя следующий вариант:
ScreenPosition = (ProjectionMatrix* (ViewMatrix * WorldPosition))
Thast способом вы можете рассчитать его на лету, как требуется.
Кроме того, в Lighthouse есть укороченный учебник, предназначенный для отвлечения кукурузы, но объясняющий реализацию довольно красиво.