Помогите мне начать с OpenGL - PullRequest
3 голосов
/ 01 июня 2009

До сегодняшнего дня я работаю с приложением Basic UIKIT, но теперь мне нужно работать в OpenGL.

Проблема в том, что я не имею ни малейшего представления об OpenGL, и меня сильно смущает вопрос о том, как начать и с чего начать.

Мне нужно создать приложение, аналогичное iBeer (см. Фильм на YouTube).

Так что у меня много недоразумений по поводу того, как я могу создать графику пива, которую вы видели в приложении, и какую библиотеку следует предпочесть?

Ответы [ 5 ]

7 голосов
/ 01 июня 2009

Создание приложений opengl отнимает много времени, требуется время, чтобы изучить синтаксис и освоиться с ним. Нелегко просто волшебным образом написать приложение «ibeer», даже если это не самое передовое приложение, когда-либо написанное.
Я не думаю, что есть какие-либо ярлыки, вам придется изучить opengl и его синтаксис.
iphone также использует Opengl | Es, синтаксис которого не слишком далек от обычного opengl, но все же отличается настолько, что вы не можете использовать обычные opengl-движки.

Два лучших ресурса opengl, с которыми я столкнулся:

Есть также несколько хороших учебных пособий специально для opengl | es и разработки для iphone

Однако я предполагаю, что вы больше заинтересованы в создании приложения, чем в изучении синтаксиса opengl, поэтому вам также следует взглянуть на некоторые opengl-движки

В Интернете, вероятно, есть еще миллион ресурсов, но вам стоит начать.

3 голосов
/ 01 июня 2009

У Джеффа Ламарша есть хороший учебник на его блоге . Вот оглавление:

  1. Основные понятия. Взгляд на простое
  2. Рисование видовых экранов в перспективе
  3. Да будет свет.
  4. Жизнь в материальном мире
  5. Текстуры и наложение текстур
1 голос
/ 05 июня 2009

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

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

Наконец, когда вы пробуете разные вещи, такие как влияние переводов, масштабирование и т. Д., Вы часто оказываетесь в цикле компиляции, настройки, компиляции. Гораздо эффективнее иметь приложение, которое позволяет настраивать параметры во время выполнения: но написать такую ​​вещь во время обучения - это немного крутой вопрос. У Нейта Робинса есть несколько превосходных демонстрационных программ, которые позволяют вам настраивать параметры для вызовов opengl и показывать вам влияние прямо в приложении. Они рекомендованы самой красной книгой opengl: http://www.xmission.com/~nate/opengl.html

1 голос
/ 01 июня 2009

Изучение OpenGL и / или OpenGL ES лучше всего достигается благодаря изучению необходимой предпосылки Компьютерная графика в целом, а также изучению математики. В частности, линейная алгебра, векторные пространства и способы использования матриц для представления систем координации. OpenGL - это простой в использовании API, , если вы понимаете, что делаете . Если ты боишься математики, не теряй времени.

Для абсолютных новичков я рекомендую книгу "3D Math Primer" с ошибками и примерами на gamemath.com и онлайн-статью "Часто задаваемые вопросы по матрице и кватернионам", доступную здесь: www .j3d.org / matrix_faq / matrfaq_latest.html

И спецификация OpenGL ES 1.x для реализации, используемая на iPhone: http://www.khronos.org/opengles/1_X И последнее, но не менее важное: спецификация для OpenGL 2.1 и первой версии языка шейдинга OpenGL, GLSL: http://www.opengl.org/registry/doc/glspec21.20061201.pdf http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.10.59.pdf

Многие люди, с которыми я говорил, не считают, что спецификация считается документацией для пользователей библиотеки, но, по моему мнению, это так; просто потому, что он точен, у него есть авторитет, и любые другие публикации все равно будут его цитировать. Если вы понимаете требуемую математику и общие понятия компьютерной графики, чтение стандарта должно быть быстрым.

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

Я рекомендую сосредоточиться на программируемом конвейере OpenGL (шейдеры) вместо конвейера с фиксированными функциями, если вы хотите использовать OpenGL на компьютере. (OpenGL ES 1.x не имеет шейдеров) Шейдерные языки, такие как Cg, GLSL и HLSL, останутся здесь. Доказательством этому является новейший стандарт OpenGL 3.1, в котором единственный способ добиться успеха - использовать шейдеры. Просто мудрое предупреждение, так как The RedBook и другие книги «Tech your OpenGL за 10 дней», как правило, фокусируются на последних.

0 голосов
/ 01 июня 2009

Я нашел эту книгу весьма полезной для изучения OpenGL ES 1.1 (версия, поддерживаемая iphone): http://www.amazon.co.uk/Mobile-3D-Graphics-Kaufmann-Computer/dp/0123737273/ref=sr_1_3?ie=UTF8&s=books

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

Другие люди, похоже, любят "Redbook", бесплатная онлайн-версия доступна здесь: http://www.opengl.org/documentation/red_book/ Это может быть полезно для изучения основных принципов, но оно охватывает стандартную настольную OpenGL, и между ними и что доступно на Iphone.

Есть также несколько примеров, которые идут с Iphone SDK, которые я нашел очень полезными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...