2010-08-09 3 views
38

Я знаю, что есть некоторые вопросы об обучении OpenGL. Вот что я знаю:OpenGL 4.x учебные ресурсы

  • математике для 3D
  • 3D теории

Вот что я хочу знать: - OpenGL 4.0 Основной профиль (или последний) - Shader Language 400 (или последний) - каждая часть выше (если она не работает между поставщиками, то она меня все равно не беспокоит)

Вот что я НЕ хочу знать - фиксированная функция трубопровода (не будет использовать его когда-либо!) - старше OpenGL в - профиль Совместимость

Я предпочитаю большую часть информации, как учебные пособия, серия статей , книги.

PS Если вы знаете ресурсы на OPENGL основной 3.x профиль, размещать их слишком

+0

У меня есть вопрос. Как вы знаете, как новичок, что статьи NeHe устарели? Кто тебе это сказал ? – Calvin1602

+5

@ Статьи Калвина Нехе не «устарели», но они полны плохих практик, и они очень древние, используя отвратительные практики и/или библиотеки, которые давно умерли. –

+0

@Matias: Я знаю (даже если я думаю, что они устарели), но большинство новичков все равно используют его, потому что это самая видимая страница в Интернете. Мне было любопытно, как OP знал, что это уже не так хорошо. – Calvin1602

ответ

4

Отличный вопрос, на самом деле. На самом деле документация разрежена.

Существует хорошее введение здесь: http://sites.google.com/site/opengltutorialsbyaks/

Вы можете также, как ogl4 образцы groovounet в пакет: http://www.g-truc.net/post-0310.html

, но я боюсь, что это в значительной степени это. Lurk на дискуссионных досках opengl для получения дополнительной информации ...

EDIT: нашел несколько секунд назад. Прямо из SIGGRAPH http://nvidia.fullviewmedia.com/siggraph2010/02-dev-barthold-lichtenbelt-mark-kilgard.html

3

http://www.opengl.org/sdk/docs/man4/

Там в человеко-страниц для OpenGL 4.1, они окажутся полезными при разработке.

+7

Хотя он очень полезен в качестве ссылки, он вроде как изучает язык, читая словарь. – EnabrenTane

+0

Да, они есть, но они не предоставляют «большую картину», это больше похоже на: «Хмммм, как работает эта функция? Хорошо, я посмотрю на страницы руководства!» Но они тоже идут на GLSL! –

11

5th edition of OpenGL SuperBible был недавно выпущен. Это издание отражает OpenGL 3.3, который был выпущен одновременно с OpenGL 4.0, книга охватывает только основной профиль и не предполагает никаких предварительных знаний OpenGL.

Это все, что я получил от описания книги. У меня есть четвертое издание, и это отличный ресурс для OpenGL 2.0, поэтому я предполагаю, что новая версия вместе с последней версией OpenGL Shading Language будет именно тем, что вы ищете.

Durian Software имеет постоянную серию учебников, охватывающих современный OpenGL. Они нацелены на OpenGL 2.0, но избегают использования устаревших функций в более поздних версиях.

+3

Будет новый SuperBile, но мне не нравится 5-е издание, для него (мы спрячем вещи от вас, пока вы не приготовьтесь == 90% книги) aproach. Кроме того, это больше для 2.1 человек, поскольку он охватывает переход, и что использовать из нового материала, чтобы имитировать старый. –

+2

Durian шов, чтобы быть мертвым: (и крышка слишком мало, чтобы быть очень полезной для тех, кто хочет подготовиться к переходу :( –

2

Я думаю, что одна из лучших надежд у вас есть Joe's Blog. В нем есть несколько хороших вводных статей о современном OpenGL, с большим количеством (предположительно) в пути.

+0

Я читал этот блог, и мне нравятся сообщения об особенностях OGL 4.0 и 3.3 –

+1

То есть о OpenGL 2.1 !!! Я не хочу его изучать (хорошо, я читал об этом 2 или 3 книги), я хочу, чтобы что-то полностью фокусировалось на таких вещах, как шейдеры, память gpu и т. Д. –

2

Swiftless обновляет учебные пособия, чтобы включить новый контекст.Хороший начальный учебник, который был более прямым в отношении быстрого и простого VAO, VBO и рендеринга, находится at swiftless.com

+0

Они хорошие, но все же opengl2.1, не полный 4.1. Как и шейдерный раздел, содержащий только вершинные и фрагментарные шейдеры. –

+0

У них есть раздел opengl4. Этот раздел только начинается, и это будет некоторое время, прежде чем покрыть весь gl4. получая этот первый фрагмент. :) –

+0

Существует один факт, который вы можете упускать из виду: GL4 - это не то, чему могут научиться новички. Основная особенность GL 4.0 - тесселяция. Тесселяция чего? вы можете узнать, как тесселировать примитивы, вы должны сначала научиться их рендерить. И это материал GL 2.1/3.0. Поэтому, даже если какой-то материал обернется тесселяцией, он должен * начать с базового рендеринга 101. И базовый рендеринг не включает функции GL 4.0. –

31

Мне сердечно не нравятся отрицательные ответы, но я боюсь, что я должен дать один на этот вопрос.

Вы в конечном счете просите материал для начинающих, который использует функции уникальный для OpenGL версии 4.0 и выше. Ну, давайте посмотрим на некоторые из уникальных особенностей 4.x.

Возможно, самой большой особенностью является тесселяция. Что это значит? Это означает тесселлирующие примитивы, чтобы генерировать больше примитивов. Прежде чем можно даже понять, что это значит, нужно сначала понять, как примитивы получаются вообще. Это использует функции уровня до 4.x.

Но даже с четким пониманием того, как работает рендеринг, все еще существует проблема. Чтобы иметь какое-либо осмысленное обсуждение тесселяционных шейдеров, нужно сначала иметь сильное понимание алгоритмов тосселяции . И это не простой вопрос. Чтобы учебник научил пользователя использовать тесселяционные шейдеры, вначале учебник должен ввести кривые сплайнов, патчи или поверхности разбиения. И те, и другие - это длинные темы, посвященные им. Только после подробного описания алгоритмов пользователь будет готов увидеть, как эти алгоритмы реализованы в тесселяционном шейдере.

Или, другими словами, тесселяционные шейдеры не являются материалом для начинающих. Я бы даже не квалифицировал их как материал промежуточного уровня.

Другой большой особенностью аппаратного обеспечения 4.x является shader image load store (и его компаньон, atomic counters), ядро ​​в 4.2. Это позволяет использовать некоторые очень интересные вещи, в том числе независимую от заказа прозрачность. Однако для того, чтобы пользователь мог даже понять все причуды вокруг него, пользователь должен быть глубоко знаком с глубокими разработками современного шейдерного оборудования. Поэтому любой учебник должен сначала объяснить, как работает современное оборудование на основе VLIW/SIMD, а также как шейдеры используются с таким оборудованием. Опять же, это не тривиальный материал.

Другой большой особенностью оборудования 4.x является косвенный рендеринг. То есть, включение параметров в вызов glDraw в самом объекте буфера. Проблема в том, что есть только одна причина использовать эту функциональность: поскольку GPU генерирует данные непосредственно в один или несколько буферов для последующего рендеринга. И это обычно связано с какой-то формой GPGPU-операции, которая не очень важна для новичков.

Все эти функции полезны и имеют настоящую цель. Но ни один из них не должен использоваться новичками; в некоторых случаях даже программисты на промежуточном уровне не должны прикасаться к ним.

Теперь, чтобы быть полностью справедливым, есть некоторые 4.2 функции, которые не являются аппаратно-ориентированными (поэтому они часто реализуются в версиях с 3,3 и более) и весьма полезны. Например, отдельные объекты программы. Эти функции ударили, когда я писал мои учебные пособия на основе 3.3, и я подумал о том, чтобы вернуться к ним и включить эту функциональность. Единственная причина, по которой я этого не делал, заключается в том, что реализации (драйверы) по-прежнему не совсем стабильны в отношении этой функциональности. Но было бы полезно сделать это.

Главное, с чем я сталкиваюсь, заключается в следующем: если вы находитесь на этапе ваших графических знаний, где вы готовы воспользоваться уникальными функциями аппаратного обеспечения GL 4.x, то у вас также будет достаточно возможностей для работы с графикой что вам не нужен явный пошаговый учебный материал для реализации функций графического оборудования. Вы были бы тем человеком, который мог бы прочитать спецификацию расширения GL_ARB_tessellation_shader и понять, как заставить их делать то, что вам нужно.

Если вы заинтересованы в материале, который учит OpenGL Core 3.0 или выше, у OpenGL Wiki есть хорошая коллекция таких ссылок. В интересах полного раскрытия я написал один из них.

+1

Мне нравится ваш учебник по перенапряжению. Но у него есть один ОГРОМНЫЙ недостаток, вы пишете его медленно, но). Но что касается вашего ответа, я не согласен в полноте. Если ядро ​​OGL 4.1 является расширенной темой, то пусть это будет. В любом случае напишите эти проклятые документы. OGL 4.1 не имеют согласованных документов. Период. Так что представьте dev, которые хотят узнать OGL, но все в порядке с 4.1. У него/нее нет выбора, кроме как сначала изучить 2.1. Это похоже на то, что для того, чтобы узнать DX11, вы должны научиться 9.c, затем 10, и он/она может учиться 11. Болен. –

+3

@przemo_li: API D3D радикально изменился между DX9.x и DX10. API OpenGL радикально не изменился с 2,1 до 3,3. О, произошли изменения, но самые большие были в шейдерах, и большинство из них - синтаксис (атрибуты и перемены становятся «в» и «вне»). glVertexAttribPointer восходит к расширениям, выпущенным во время GL 1.4, и его значение не изменилось. glUseProgram датируется до 2.0, и это не изменилось. Действительно, в зависимости от того, как вы изучаете 2.1, вы можете переключиться на 3.3 с * минимальными * изменениями кода; просто избегайте встроенного материала. Это невозможно с DX9 до DX10. –

+0

Позвольте мне подумать! Шейдеры и программируемые материалы, память gpu, тени в реальном времени, отсроченный рендеринг, ... Вообще, в OGL2.1 есть мало материала для современного 3d-программирования, в основном вы получаете фиксированную функцию, клиентскую память, методы oldschool. И я даю Dx9-> 10-> 11 путь обучения, чтобы подчеркнуть глупость требовать изучения основ OpenGL 2.1. OpenGL 4.1 достаточно прост для обучения основам (кривая обучения может быть больше, но при внимательном рассмотрении это не проблема) –

5

Недавно я наткнулся на эту книгу онлайн: OpenGLBook.com

Я не читал, но описание говорит, что это свободный OpenGL ресурс +4,0 программирования в онлайн-формате книги.

+1

Хорошая книга, но на длинной дороге, чтобы закончить. Я думаю, что новый SuperBible может быть первым:/Но я его прочитал и получаю в своем rss-канале. И очень хорошо для новичков (да, я говорю это вам @Nicol Bolas) –

+0

Но его мертвый прямо сейчас :( –

+0

Мне действительно не нравился OpenGL супербиблик, дидактически, и я подозреваю, что изменения в структуре между старым и новая версия будет минимальной. Книга начинается с использования фреймворка, написанного автором, что является очень плохим способом учить эти вещи, imo. – TravisG

10

Существует очень мало различий между OpenGL 3.0 и 4.1. Если вы придерживаетесь 3.0 или более позднего основного профиля, вы не можете использовать конвейер фиксированной функции. То, что вы действительно просите, - это учебник OpenGL, который не использует конвейер фиксированной функции.

Отличный учебник Jason L. McKesson «Изучение современного 3D-графического программирования» начинается с использования шейдеров для самых ранних основ и никогда не касается контура фиксированной функции.

http://www.arcsynthesis.org/gltut/index.html

Я очень рекомендую его.

+0

НЕТ! НЕТ! НЕТ! НЕТ! Я спрашиваю о учебнике об OGL 4.1 (теперь 4.2) Я не знаю, почему так много ppl настаивают на изучении OGL 3.3 ... (BTW-учебник очень хорош!) –

+0

Я на самом деле дал вам -1 для этого! Мне особенно нужны материалы OGL 4.0, поскольку я предвидел такие повторы («Мы знаем лучше, что вы думаете»). Я согласен с тем, что при отсутствии ресурсов Ogl4.x 3.3 основные профильные ресурсы так же хороши, как вы можете получить, но это не отвечает на мой вопрос. –

1

Основная точка OpenGL 4, тесселяция, поэтому я хотел бы рекомендовать, чтобы начать с автономным учебником по OpenGL 4 тесселяции, а именно: http://prideout.net/blog/?p=48

После руководства и учебники хорошая последующий должен принять вид в двигателях с открытым исходным кодом, которые основаны на вершине «нового» OpenGL 3/4. Как один из разработчиков, я бы указал на Linderdaum Engine.

+1

Видел, что tutoril, и отлично! –

1

свободный ресурс:

http://www.arcsynthesis.org/gltut/index.html

+0

Это было мено ned ранее :) Его единственное - это: Ch V и Ch VI не закончены: P и для полного воспроизведения его lact OGL4 объясняет функции. –

Смежные вопросы