Вопрос

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

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

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

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


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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

Кроме того, Филип Райдаут выпустил отличную книгу о разработке OpenGL ES 1.1 и 2.0 для iPhone под названием 3D-программирование iPhone.Я настоятельно рекомендую это сделать.

К вашему сведению, код молекул Брэда Ларсонса теперь доступен здесь.

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

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

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

Возможно, вы захотите взглянуть на это отличный туториал Джефа Ламарша по OpenGL ES на iPhone.

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

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

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

Получайте удовольствие.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top