Миграция Android с Opengles 1.0 на Opengles 2.0, текстуры? - PullRequest
1 голос
/ 28 сентября 2011

У меня в настоящее время есть движок OpenGLES 1.0 с очень большой базой кода, и я нахожусь в процессе перехода на OpenGLES 2.0

Благодаря this я смогПреодолеть препятствие из-за отсутствия матриц, но прежде чем я продолжу изменять тысячи строк кода, мне хотелось бы узнать несколько вещей, которые я не смог найти в Google.

Сначала, процесс нанесения текстур изменился вообще?Я знаю, что старый фиксированный конвейер сделал для вас большую грязную работу, но я не знаю, были ли текстуры частью этого.Придется ли мне создавать шейдеры для этого?(подумайте, glTexEnvf, glTexParameter, glBindTexture и т. д.)

Секунда , были ли какие-либо изменения в режимах наложения или понадобятся ли пользовательские шейдеры?

Третий , были ли какие-либо важные изменения в glDrawElements?(Другими словами, будут ли мои существующие вызовы работать без изменений)

Четвертый , кто-нибудь может порекомендовать несколько хороших книг или учебных пособий для изучения того, как создавать шейдеры и как они работают?Я многому научился из большого количества учебников по iPhone в Интернете и из учебника, на который я ссылался выше, но последний не содержит подробных объяснений, а первый не содержит кода Android, и яплохо знаком с шейдерами> _ <</p>

1 Ответ

0 голосов
/ 28 сентября 2011
  1. Такие вещи, как связывание текстур и glTexParameter s (например, режимы фильтрации или обтекания) работают как раньше.Но теперь вы должны сами сделать текстурное приложение внутри фрагментного шейдера.Поэтому теперь вы в основном реализуете glTexEnv самостоятельно.

  2. Смешивание работает как раньше.Эти операции выполняются после фрагментного шейдера таким же образом, как в ES 1.

  3. Не для glDrawElements.Но теперь вы должны использовать собственные атрибуты вершин и соответствующие вершинные шейдеры для их обработки, вместо встроенных атрибутов (таких как вершина, нормаль, цвет, ...) из ES 1.

...