Начало в более новом OpenGL - PullRequest
       6

Начало в более новом OpenGL

9 голосов
/ 03 декабря 2010

Несколько лет назад я много играл с OpenGL2.1, создавая множество демо-версий, в которых использовались базовые функции (в основном немедленный режим), не обращая внимания на весь шейдерный подход.

Теперь мне снова нужен OpenGL для личного проекта, из того, что я читаю, изменился весь подход к этому виду API, поскольку теперь почти все делается напрямую с помощью графического процессора через вершинные / пиксельные шейдеры.

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

Существует ли какой-нибудь учебник для тех, кто исходит из старого подхода к OGL? Должен ли я отказаться от своих старых идей применения преобразований вручную, рисования объектов с помощью glBegin..glEnd и т. Д.?

Поскольку я работаю с Java и хотел бы использовать хорошую библиотеку, есть ли у вас какие-либо предложения? Я нашел LWJGL, который выглядит неплохо, даже если все уже управляется, поэтому мне было интересно, стоит ли его использовать или просто придерживаться каких-то более важных компонентов для записи по мере необходимости (например, объектов, связанных с математикой).

Ответы [ 2 ]

6 голосов
/ 03 декабря 2010

Различия между старым непосредственным режимом и новым способом ведения дел довольно велики.Как ни удивительно, там не так много хорошего контента, вы можете игнорировать 99% учебных пособий по OpenGL по всему Интернету.

Положительным моментом в LWJGL является то, что когда вы понимаете разницу между LWJGL и обычными вызовами OpenGL, вы обычно можетеиспользуйте учебники на других языках.

Единственные 3 хороших ресурса, которые я когда-либо мог найти, были:

  • "Введение в современный OpenGL" http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html (этоэто отличное вступление, но, к сожалению, долгое время не было нового учебного пособия)

  • Пятое издание OpenGL Superbible (это единственная книга, которая описывает новый способ ведения дел,и это действительно необходимо для любого, кто возвращается в OpenGL) http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321712617

  • Java Monkey Engine использует LWJGL, поскольку это только полностью поддерживаемый рендерер (последний раз, когда я проверял), просмотр его источника - это обучение движкудизайн для LWJGL http://www.jmonkeyengine.com/

Кроме того, LWJGL великолепен.Это не даст вам более высокого уровня абстракции, так как это всего лишь тонкая оболочка для вызовов C (но это также означает, что она не будет выполнять посредственную работу при попытке сделать OpenGL OO), плюс она довольно производительная.LWJGL не предоставляет много (даже для математики), поэтому вам, скорее всего, придется приобретать (или, в крайнем случае, писать) математические библиотеки для чего-то сложного.

3 голосов
/ 03 декабря 2010

На Durian Software есть несколько постов в блоге о современном программировании OpenGL. Он написан на C, но широко использует шейдеры (написанные на GLSL), поэтому объем кода на C не так уж велик.

Согласно Википедии, есть привязки GLSL к Java, так что вы можете захотеть посмотреть на это.

Судя по всему, LWJGL поддерживает шейдеры: http://lwjgl.org/wiki/index.php?title=GLSL_Shaders_with_LWJGL

Вот ссылка на первое сообщение в блоге, о котором я упоминал ранее:

http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-The-Graphics-Pipeline.html

Надеюсь, это поможет!

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