Текстурный атлас в OpenGL ES 2.0 - PullRequest
3 голосов
/ 23 августа 2011

Я работаю над простым проектом с OpenGL ES 2.0.Все прошло довольно хорошо, но я, кажется, попал в точку, которая, похоже, плохо документирована для нас, новичков.Я пытаюсь использовать текстурный атлас.Я немного искал, но не могу найти полных примеров кода.Большинство результатов поиска приводят к тому, что люди дают самое общее представление о том, что они из себя представляют и как их использовать, но никогда не дают полного примера, который я действительно могу изучить.

В данный момент я просто пытаюсь загрузить набор.из четырех или пяти изображений из одного атласа изображений и применить их к одной полосе треугольника.Я могу вырезать определенную часть изображения по своему усмотрению, но я просто не могу найти примеров применения большего количества частей этого изображения к одной и той же полосе треугольника.

Мне не обязательно нужен полный учебник по этому вопросу (я бы не стал возражать!), Но если бы кто-нибудь мог указать мне на пример кода, который делает что-то подобное, я был бы весьма счастлив.Заранее большое спасибо!

1 Ответ

4 голосов
/ 11 октября 2011

Текстурный атлас ничем не отличается от любого другого изображения, которое вы загружаете и визуализируете с помощью OpenGL. Хитрость заключается в том, чтобы откорректировать координаты текстуры каждой вершины вашего полигона (ов), чтобы включить меньший треугольник / прямоугольник внутри этого изображения.

В OpenGL координаты изображения начинаются с (0,0) - левого нижнего угла и заканчиваются (1,1) - с правого верхнего угла. Если вы хотите отобразить только область изображения на полигоне, назначьте координаты текстуры, используя нормализованный размер (0,0 - 1,0). то есть средняя точка изображения будет в координатах (0,5, 0,5).

Чтобы отобразить полосу треугольника, которая визуализирует прямоугольник, используя только половину изображения, ваши координаты текстуры должны быть похожи на это:

  • (0,0, 0,0) вершина в левом нижнем углу прямоугольника
  • (0,0, 1,0) вершина в верхнем левом углу
  • (0,5, 0,0) вершина в нижнем правом углу
  • (0,5, 1,0) вершина в верхнем правом углу
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...