Подтвердить что ты не робот

Изучение OpenGL ES 1.x

Какой самый быстрый способ достичь скорости в OpenGL ES 1.x?

Предположим, я ничего не знаю об OpenGL (что не совсем верно, но это было давно, так как я в последний раз использовал OpenGL). Меня больше всего интересует изучение этого для разработки, связанной с iPhone, но мне интересно узнать, как это работает и на других платформах.

Я нашел книгу OpenGL ES 2.0 Руководство по программированию, но меня беспокоит, что это может быть не лучшим подходом, потому что он ориентирован на 2.0, а не 1.x. Насколько я понимаю, 2.0 не имеет обратной совместимости с 1.x, поэтому я могу пропустить некоторые важные концепции.

Примечание. Ответы об изучении общего языка OpenGL см. По адресу https://stackoverflow.com/info/62540/learning-opengl.


Некоторые ресурсы, которые я нашел:

4b9b3361

Ответ 1

В iPhone SDK есть документация.

Кроме этого, просто возьмите то, что вы знаете о OpenGL (или узнаете, что с помощью других средств), и забудьте обо всех вещах, которые являются "старыми крутыми" (списки отображения, немедленный режим, вещи, которые находятся в OpenGL, но не напрямую связанные с рисованием треугольников). В принципе, откройте все, что было объявлено устаревшим в OpenGL 3.0.

GL ES 1.x - это довольно простые устройства. У вас есть способ рисовать геометрию (буферы вершин), управлять текстурами и настраивать состояние фиксированной функции (освещение, комбинаторы текстур). Это почти все, что есть.

Ответ 2

Если бы я мог подключить свою собственную работу, я бы направил вас на мой пост по адресу http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es. Это не лучшее общее введение в OpenGL ES, и оно довольно быстро становится довольно техническим, но это мой взгляд на эту тему из моего опыта написания Molecules. Кроме того, я только начал читать книгу "Мобильная 3D-графика: с OpenGL ES и M3G".

Я согласен с предположением, что лучший способ учиться - это делать. Я начал с того, что ничего не знал об OpenGL, а через три недели у меня были Молекулы для обзора в App Store. Когда у вас есть четкий набор целей ("ОК, мне нужно нарисовать трехмерную сферу", "Теперь мне нужно повернуть ее по требованию"), становится легко найти примеры или части документации, которые относятся только к задача, над которой вы работаете.

Существует множество примеров кода, хотя многие из них используют непосредственный режим и другие вызовы, которые не поддерживаются в OpenGL ES. Я хотел бы добавить к списку, выпустив источник для Molecules, но Apple NDA помешал этому до сих пор. Исходный код Molecules теперь доступен.

Видео для класса, который я преподавал на OpenGL ES 1.1, теперь доступно для загрузки как часть моего весеннего курса на iTunes U. Заметки для этой сессии можно найти здесь. И у видео осеннего семестра есть класс на OpenGL ES 2.0.

Тем временем Philip Rideout выпустил отличную книгу по разработке OpenGL ES 1.1 и 2.0 для iPhone под названием " iPhone 3D-программирование". Я очень рекомендую это.

Ответ 4

Я нашел их весьма полезными, когда начинал с OpenGL ES, просто чтобы посмотреть, какой подход следует использовать при работе с ES, в отличие от обычного GL.

http://www.zeuscmd.com/tutorials/opengles/index.php

Как уже упоминалось ранее, есть несколько примеров, доступных на сайте разработчиков iPhone:

Ответ 5

FYI, код Brad Larsons Molecules теперь доступен здесь.

Ответ 6

Возможно, вам стоит взглянуть на этот отличный учебник Jef LaMarches для OpenGL ES на iPhone.

Ответ 7

Проведя довольно много времени на разработку 3D, я понял, что в большинстве случаев лучший способ - учиться на примерах и продвигаться с ними по мере продвижения.

Начните с установки для себя цели достижения (например, внедрения системы частиц, в том числе использования режимов смешивания, текстур, цветов вершин, пакетной обработки и преобразования), а затем начинать с самого простого элемента - рисования и вращающийся квад. Оттуда продолжайте и добавляйте текстуры, добавляйте больше квадов и т.д.... При этом вам нужна информация о синтаксисе - это вы можете найти во многих книгах, но лучшим (очень скучным) источником является публикация комитета по спецификации, которую можно найти здесь: http://www.khronos.org/opengles/spec/

Даже с этим вы столкнетесь с множеством проблем, ну, как только у вас возникнет проблема, обратитесь к своему лучшему другу в таких ситуациях: демонстрации и примеры!
Вы можете найти множество источников источников для iPhone онлайн и на сайте Apple, чтобы загрузить их, скопировать вставку, что вам нужно, а затем изменить на ваши потребности.

Удачи.

Ответ 8

Если вы загрузили примеры iPhone SDK, проверьте файл EAGLview с посадкой при посадке. Это довольно простая реализация представления GLES, которое можно импортировать и использовать довольно чисто в другом проекте. Существует еще один класс в этом проекте под названием Texture2d (если я помню), что также довольно интересно, если вы используете GLES для 2D.

Ответ 9

Могу ли я также предложить Android - это легко получить, и у вас может быть рабочий симулятор очень быстро. Насколько мне известно, он использует v1.0.
Там может быть больше учебников, но даже APIDemos, предоставленные Google, представляет собой введение в OpenGL ES. Я определенно нашел это полезным.