У меня были проблемы с поиском информации о наклейках, поэтому, возможно, этот вопрос поможет другим. Реализация для прямого рендера.
Может ли кто-нибудь подтвердить, правильно ли я реализовал наклейку?
- Вы определяете куб любого измерения, который будет определять объем проекции в общем пространстве. Вы проверяете пересечение треугольника с определенным кубом, чтобы получить треугольники, на которые влияет проекция.
- Вы обрезаете эти треугольники и сохраняете их.
- Затем вы используете хитрости матрицы для вычисления UV-координат для сохраненных треугольников, которые будут ссылаться на текстуру, которую вы проецируете.
- Для этого вы берете векторы, представляющие высоту, ширину и глубину куба в общем пространстве, так что нижний левый угол является источником.
- Вы помещаете это в матрицу как векторы единиц i, j, k, устанавливаете перевод для куба, а затем инвертируете эту матрицу.
- Вы умножаете вершины сохраненных треугольников на эту матрицу, таким образом, вы получаете их координаты внутри куба размером от 0 до 1, который вы используете в качестве UV-координат.
- Таким образом, у вас есть исходные треугольники, на которые вы проецируете, и у вас есть UV-координаты для них (UV-координаты ссылаются на текстуру, которую вы проецируете).
- Затем вы визуализируете сохраненные треугольники на сцену, и они перезаписывают область проекции проецируемым изображением.
Теперь вопросы, на которые я не смог найти ответы. Последний пункт прав? Я никогда не занимался программным отсечением, но кажется достаточно подверженным ошибкам из-за ограниченной точности, что произойдет некоторая битва за проецируемую текстуру. Также правильный способ получения УФ-координат?