Материал статьи рассчитан, прежде всего, на людей, начинающих работать с текстурами. Не важно, где вы используете текстуры, будь то OpenGL или 3D редакторы, статья будет полезна всем. Итак, начнем.
Текстура
Как известно механизмы текстурирования в приложениях, использующих трехмерную графику, реализуют графические движки, такие как OpenGL, DirectX и прочие.
Что такое текстура в графическом движке? Это специальная структура данных, которая содержит битовую матрицу изображения текстуры (картинку).
Битовую матрицу текстуры получают, методом генерации либо загружют из графического файла.
Для наиболее оптимального использования в 3D приложениях (особенно в играх) размеры сторон загружаемой картинки текстуры и соответственно, битовой матрицы должны представлять собой степени двойки. Для тех, кто не знает, что такое степени двойки приведу пример: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024. То есть, , , , ,,,,,, и так далее. Следует помнить, что текстуры с большими разменами занимают много ресурсов, что приводит к медленному рендерингу сцены. Учитывайте это, если вы применяете слишком много больших текстур.
Текстурные координаты
Первое, что нужно, для распределения пикселей битовой матрицы или текселей текстуры, вдоль поверхности примитива, это текстурные координаты. Именно они сообщают графическому движку то, как должна лежать текстура на поверхности примитива.
В большинстве случае для представления текстурных координат достаточно двух измерений.
Чтобы задать текстурные координаты, например, для квадрата нам понадобятся 4 координаты.
Как видно из рисунка на квадрат мы наложили одну картинку.
Если нужно задать текстурные координаты для треугольника, то это будет выглядеть следующим образом.
Здесь у нас также используется одна картинка.
Если вам необходимо использовать фрагмент текстуры, то координаты можно задать следующим образом.
Если вам нужно наложить относительно большую текстуру изображающую, например, кирпичную стену, то вам понадобится много картинок, наложенных друг напротив друга.
Как видно из рисунка, чтобы получить такую поверхность мы умножили все текстурные координаты на 4. В результате у нас получилось одно большое изображение, составленное из 16 маленьких.
Итак, теперь вы знаете, что такое текстура и то, как задаются текстурные координаты. Если у вас возникли какие-то вопросы, то вы можете задать их в комментариях.
|