Я уверен, что уже есть куча вопросов, подобных этому, но постоянное обновление библиотеки OpenGL отбрасывает их все, и через месяц или два ответы здесь снова будут бесполезны.
Я готов начать программирование в OpenGL с использованием C ++. У меня есть работающий компилятор (DevCpp; НЕ просите меня перейти на VC ++ и не спрашивайте меня, почему). Сейчас я просто ищу солидное руководство по программированию с OpenGL. Мой помощник нашел учебное пособие, предоставленное NeHe Productions, но, как я выяснил, это УСТАРЕЛО! (хотя я собрал основное окно для поддержки холста OpenGL)
Затем я вышел в интернет и нашел OpenGL SuperBible, который, очевидно, использует freeglut? Но что я хотел бы знать, так это то, обновлено ли 5-е издание SuperBible. В предложении freeglut я обнаружил, что последняя версия была 2.6.0, но теперь это 2.8.0!
- Является ли OpenGL SuperBible все еще хорошим и достаточно современным местом для старта?
- Есть ли лучшее место для изучения OpenGL?
- Могу ли я просто хранить freeglut в каталоге включения DevCpp (может быть, в GL), или есть какая-то важная процедура?
- Есть ли какие-либо комментарии или предложения, о которых я не думал спрашивать, так как я только начинаю?
@dreta прояснил некоторые вещи для меня, так что теперь у меня есть лучшее представление о том, что спросить:
Я думаю, что я хотел бы начать с OpenGL, используя библиотеку-обертку вместо прямого доступа к OpenGL.
Я просто думаю, что для начинающего мне было бы легче программировать и получать хорошие результаты, в то время как мне еще не нужно понимать все грязные детали (как упомянул @stephelton).
Проблема в том, что я не могу найти библиотеку, в которой нет неопределенных ссылок на более не поддерживаемые функции. Freeglut звучит оперативно, но все еще использует GLU.
Кто-нибудь знает, что я могу сделать?
Кроме того, я попытался скомпилировать исходный код первой SuperBible, но получил ошибки, поскольку GLAPI не определяется как тип, ошибка, возникающая в библиотеке GLU.
Я хотел бы использовать SuperBible, но я не знаю, как это исправить.
Ответы:
Наш житель Никол Болас ведет онлайн-книгу о современном графическом программировании . Он использует современный OpenGL, все вводится в удобном для пользователя темпе, это хорошее место для начала. Я использовал его, чтобы изучить современный OpenGL, и он делал мне чудеса в последние 2 месяца.
Кроме того, есть кое-какие знания здесь и там. Вики OpenGL довольно хорошо поддерживается. Код не является «наилучшей практикой», и иногда существует некоторая двусмысленность, когда речь идет о версии OpenGL, но за исключением этого редкого случая, это большой ресурс
Если вы хотите узнать о GLSL, есть учебное пособие по GLSL от lighthouse3D. Хотя это единственное основное знание, которому я бы «доверял» на сайте, отдых, как правило, устарел.
Как только вы начнете понимать, как работает современный OpenGL, вам будет легко искать конкретную информацию, отфильтровывать устаревший код и, самое главное, читать спецификацию. Вы просто должны начать где-нибудь.
Большинство, если не все, на самом деле доступных книг OpenGL устарели. Новый SuperBible какой-то урод, и я бы никому его не рекомендовал. Руководство по программированию OpenGL для OpenGL 4.1 выходит 16 сентября, к сожалению, 7-е издание использует устаревший код, так что вам просто нужно подождать, я уверен.
И конечно, вы всегда можете задать вопросы здесь.
источник
Прошло много времени с тех пор, как этот вопрос был задан, но я надеюсь, что это поможет людям, у которых такой же вопрос, как и у вас.
Я начал с OpenGL, прочитав мини-книгу
arcsynthesis.org
. Не уверен, кто это написал. Похоже, что регистрация на сайте истекла или что-то в этом роде, но вы можете найти ее здесь: http://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/ . Он использует OpenGL 3.3, поэтому вы будете использовать современный конвейер и все связанные с ним практики, но вы не будете подвержены тесселяции или вычислительным шейдерам.Еще один сайт стоит посмотреть https://open.gl/ . Кажется, что он ОЧЕНЬ ориентирован на новичка и не охватывает такие подробности, как описанный выше материал, но это может быть хорошей отправной точкой для людей, которые только начинают.
Не забудьте прочитать вики OpenGL и Google ваши имена функций, если вам нужна помощь. Некоторые страницы в вики совершенно бесполезны, но другие весьма полезны как в качестве справочного материала, так и в качестве учебного материала.
источник
Эти старые учебники по-прежнему очень актуальны для начинающих. На самом деле, я бы предложил начать там, а не с последних версий OpenGL. Более поздние версии отказались от некоторых более простых методов рисования геометрии (а именно рисование в непосредственном режиме).
В последних версиях вы должны подготовить и отправить массивы вершин и сообщить видеокарте, как ваши вершины расположены в массиве, который вы предоставляете. Эти вещи громоздки для отладки.
Некоторые версии (а именно OpenGL ES 2.x) требуют, чтобы вы предоставили свои собственные уравнения освещения (в виде фрагментированных шейдеров) и преобразовали свои собственные данные вершин, чтобы они оказались на экране там, где вы хотите (Vertex Shaders). Это еще сложнее для отладки и не место для новичка (по моему мнению).
Поэтому я бы предложил вам вернуться к этим учебным пособиям NeHe (и т. Д.) И начать с них. Они могут быть «устаревшими», но они все еще работают. Когда вы начнете понимать, что на самом деле происходит в конвейере рендеринга в OpenGL, и почувствуете некоторые математические концепции, которые заставляют эти вещи работать, тогда вы будете готовы рассмотреть некоторые из более современных методов рендеринг в OpenGL.
источник
Как уже говорили другие, большинство книг либо устарели, либо слишком продвинуты. Тем не менее, я бы порекомендовал 5-е издание SuperBible, но только для того, чтобы получить краткий обзор того, что можно сделать в OpenGL, и ознакомиться с такими вещами, как вид / проекция и т. Д.
Поначалу погружение в современный OpenGL может сначала ошеломить вас, поэтому подумайте о том, чтобы научиться делать некоторые базовые вещи в устаревших версиях.
Я также хотел бы добавить сайт с хорошими учебниками, которые я нашел в последнее время http://ogldev.atspace.co.uk/
источник
arcsynthesis.org (сайт, упомянутый в принятом ответе), к сожалению, не работает. (РЕДАКТИРОВАТЬ: это доступно по этой ссылке !).
Руководства Антона Герделана по OpenGL 4 очень читабельны и актуальны на середину 2014 года. Первые несколько бесплатны, остальные доступны на Amazon, где они имеют отличные отзывы, за небольшую цену. До сих пор я был доволен.
На сайте http://www.opengl-tutorial.org/ есть еще несколько бесплатных руководств по OpenGL 3.3+ . Они датируются 2012 годом, но могут быть хорошим дополнительным материалом для других источников.
источник