JREGC

Главная | Регистрация | Вход Приветствую Вас Инопланетяне | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: wawe  
Форум » PROGRAMMING CATEGORY » Уроки LWJGL » Текстурный атлас.
Текстурный атлас.
waweДата: Понедельник, 17.06.2013, 21:59 | Сообщение # 1
Просто человек...
Группа: Администраторы
Сообщений: 50
Награды: 3
Статус: Offline
Текстурный атлас - это большое изображение, которое содержит много изображений меньшего размера, каждое из которых является
текстурой для какой-то части объекта.
Для чего его используют?
Текстурный атлас позволяет значительно сократить употребление ресурсов компьютером.
Пример текстурного атласа со шрифтом:

Как же использовать это чудо?
И так... Если нам известен размер текстурного атласа и размер отдельного изображения в нем, то мы можем узнать текстурные координаты для нашего отдельного объекта на сцене.
Например:
Размер текстурного атласа = 256 пикселей в длину и ширину.
Размер отдельного изображения в нем (Квадрат в котором буква A на рисунке сверху) = 32 пикселей в ширину и длину.
Тогда для того, чтобы найти текстурные координаты, нужно размер отдельного изображения поделить на размер атласа.
32 / 256 = 0.125. ==>

Код
float varX = 0.125F.
float varY = 0.0F;
GL11.glEnable(GL11.GL_TEXTURE_2D); // Включение 2D текстур.
GL11.glBindTexture(GL11.GL_TEXTURE_2D, TextureMap.getTextureID()); // Крепление текстуры на квадрат.
GL11.glBegin(GL11.GL_QUADS); // Мы рисуем квадрат.
GL11.glTexCoord2f(varX, varY); // Текстурные координаты.
GL11.glVertex2f(0.0F, 0.0F); // Это вершина x, y.
GL11.glTexCoord2f(varX + 0.125F, varY); // Текстурные координаты.
GL11.glVertex2f(100.0F, 0.0F); // Это вершина x, y.
GL11.glTexCoord2f(varX + 0.125F, varY + 0.125F); // Текстурные координаты.
GL11.glVertex2f(100.0F, 100.0F); // Это вершина x, y.
GL11.glTexCoord2f(varX, varY + 0.125F); // Текстурные координаты.
GL11.glVertex2f(0.0F, 100.0F); // Это вершина x, y.
GL11.glEnd(); // Заканчиваем рисовать квадрат.
GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); // Стираем текстуру.
GL11.glDisable(GL11.GL_TEXTURE_2D); // Отключение 2D текстуры.


После запуска программы, вы увидите "перевернутый" квадрат с текстурой серого квадрата в зеленой рамке с буквой B.
Вопрос новичков:
-А как же другие изображения в текстуре? Как их "загрузить"?
Ответ:
-Просто передвигайте координаты. Например:
varY -= 0.125F;
После опущения координаты y на 0.125F, вы увидите букву C.
Так со всеми координатами.
Я надеюсь, что вам все понятнос.
Если есть вопросы, задавайте их. diamond
 
Форум » PROGRAMMING CATEGORY » Уроки LWJGL » Текстурный атлас.
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Используются технологии uCoz