Войти
ПрограммированиеФорумГрафика

Наиболее эффективный путь освоения OpenGL

Страницы: 1 2 317 18 Следующая »
#0
9:47, 4 авг. 2014

Привет!

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

OpenGL используется для решения множества задач, возникающих в различных сферах - от архитектурных и инженерных приложений до программ моделирования, используемых для создания компьютерных монстров в фильмах со спецэффектами. Введение трехмерного программного интерфейса приложений, являющегося промышленным стандартом, в такие операционные системы, как Microsoft Windows и Macintosh OS X, имело впечатляющие последствия С распространением аппаратного ускорения и быстродействующих микропроцессоров для персональных компьютеров трёхмерная графика стала типичной составляющей пользовательских и коммерческих приложений, а не только игр и научных приложений, как было раньше.

В связи с этим у меня возникло желание использовать во всех своих приложениях (или в большинстве из них). Но есть трудности в том, как наиболее эффективно осваивать OpenGL. Покажите, пожалуйста, этот путь с самого начала. Как ребёнок бы начал его осваивать? :)

Для разработки приложений применяю Qt и Java.

Заранее спасибо за ответы!


#1
10:11, 4 авг. 2014

8Observer8
> возникло желание использовать во всех своих приложениях
Три стадии развития любого умения:
1. Не умею использовать
2. Умею использовать
3. Умею не использовать

#2
10:21, 4 авг. 2014

-Eugene-
> Три стадии развития любого умения:

Есть ещё и четвёртая стадия - понимаю, что ничего не умею :)

#3
10:23, 4 авг. 2014

Я хочу стремиться ко второму варианту. Третью стадию я уже освоил :)

Может есть какие-то простые туториалы? Напишите, пожалуйста, последовательность туториалов, после которых я бы уверенно использовал OpenGL.

#4
10:27, 4 авг. 2014

8Observer8
> Я хочу стремиться ко второму варианту. Третью стадию я уже освоил :)
Если ты хочешь стремиться ко второму, ты еще не дошел до третьей стадии.

> Может есть какие-то простые туториалы?
NeHe

#5
10:27, 4 авг. 2014

8Observer8
> Может есть какие-то простые туториалы?

http://pmg.org.ru/nehe/

#6
10:35, 4 авг. 2014

8Observer8
Наиболее эффективный путь освоения OpenGL - не осваивать OpenGL. Говорю тебе по своему опыту. Возьми лучше DX11 - там даже документацию не надо будет читать - все интуитивно.

А в этом дурацком OGL есть больше 5 вариантов инициализации VBO (это только я знаю, может быть и больше) и никто тебе не объяснит, каким из них лучше пользоваться и почему, а куча подводных камней заставит тебя сутками сидеть на OpenGl.org вычитывая простыни текста. Ну и совершенно невразумительные сообщения об ошибках порадуют тебя часами веселого дебага - серьезно, когда на все ошибки будет приходить только GL_INVALID_OPERATION, тебе это не сильно поможет понять в чем проблема. Вот например список кодов ошибок glUniform c которым придется работать довольно плотно

+ Показать

То есть эта команда возвращает всего два кода ошибки (GL_INVALID_OPERATION и GL_INVALID_VALUE), а ты гадай и включай телепатию чтобы понять какие именно ошибки ты сделал

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

OpenGL совершенно не предназначен для новичков.

Поэтому делай как я, бери DirectX SDK, ковыряй примеры, гугли другие уроки, разбирай... Короче осваивай теорию работы с 3D. А когда осилишь, можешь вовращаться в OGL - столько проблем сразу уберешь

Ну а если ты джедай, и все еще хочешь идти по сложному пути, то ищи новое издание Супербиблии (у меня 6 редакция, она на английском есно), там хорошо разжовано именно 4.4 (а не устаревшие 3.3 или еще хуже 2.0 у других)

А вот Red book восьмого издания не вздумай брать - это полное разочарование - неработающий код примеров, статьи как-то в разнообой - полстатьи в одном месте, продолжение через пару глав - ужас короче

#7
10:39, 4 авг. 2014

-Eugene-
> NeHe
innuendo
> http://pmg.org.ru/nehe/
Вы тролите?

8Observer8
не вздумай читать nehe - это устаревшее уг уже совершенно не актуально, засоряет мозги ненужным мусором и сложными костылями от которых потом все одно избавились

И специально для innuendo - я кстати тоже начинал с nehe (хотя у меня на то была причина, моя первая видеокарта держала только OGL 1.4). Вот после него я и стал ненавидеть OGL. С OGL 4 (даже не 3 - там все еще мусор), все намного интереснее - наконец-то появились интуитивные вещи

#8
10:39, 4 авг. 2014

war_zes

</hate_post>

Зря ты так. Я использую оба для разных целей и не никогда жалел об этом.
#9
10:48, 4 авг. 2014

war_zes
> А в этом дурацком OGL есть больше 5 вариантов инициализации VBO (это только я
> знаю, может быть и больше)

Давайте начнём с этого - напишите хотя бы первые три :)

> И специально для innuendo - я кстати тоже начинал с nehe (хотя у меня на то
> была причина, моя первая видеокарта держала только OGL 1.4). Вот после него я и
> стал ненавидеть OGL. С OGL 4 (даже не 3 - там все еще мусор), все намного
> интереснее - наконец-то появились интуитивные вещи

Троллишь ? Если ТК нужна простенькая графика аля верктесное - ему нужно учить DX11 с тесселяцией и CS ?


> а ты гадай и включай телепатию чтобы понять какие именно ошибки ты сделал

Вы точно понимаете, что пишите и как должно работать ? Или копипаста ?

#10
10:49, 4 авг. 2014

8Observer8
Ну и наконец кулстори.

Когда я решил заняться 3D, я тоже начитался "умных" советов про то что OGL легкий для новичков и все такое. Ну вот, я начал с ним работать. Прошел месяц, прошел год - а я сам без копипаста даже кубик не смог вывести на экран. О каком еще 3D могла быть речь, что я даже со спрайтами залез в кучу проблем.

И за этот год я вообще не получил никаких знаний (некоторые люди наверное вспомнят мои фейлы с математикой - это ведь тоже виноват OGL)

Вообщем я сильно разочаровался и подумал что 3D - не мое.

Ну вот, а потом что-то дернуло меня попробовать DX 11. Через неделю я уже в с закрытыми глазами писал код вывода кучи кубиков. Через месяц я уже строил сложные сцены с ландшафтами, освещением, динамическим небом, тенями (скрины у меня разделе из того периода). И при этом я ни одной книги не прочел, да собственно и DirectX SDK я только открывал пару раз, посмотреть как работает то или иное. Все интуитивно.

Кстати, почему в моих проблемах с математикой (я имею ввиду ту, которая юзается в играх) тоже оказалась виновата OGL? А потому что она мне совершенно не показала цель использования этой математики. После DX я стал лучше в ней разбираться.


Так что думай - один без полезно потраченный год в OGL и всего один месяц в DX (после которого я автоматически разобрался и с OGL (последний скрин в моем разделе - это уже OGL))

#11
10:51, 4 авг. 2014

war_zes
> Когда я решил заняться 3D, я тоже начитался "умных" советов про то что OGL
> легкий для новичков и все такое. Ну вот, я начал с ним работать. Прошел месяц,
> прошел год - а я сам без копипаста даже кубик не смог вывести на экран. О каком
> еще 3D могла быть речь, что я даже со спрайтами залез в кучу проблем.

Тяжёлый случай ? Почему у других не так ?

#12
10:55, 4 авг. 2014

war_zes
> Возьми лучше DX11 - там даже документацию не надо будет читать

Это такой жизненный подход ? :)

#13
10:58, 4 авг. 2014

war_zes, надеюсь, ты не обманываешь :)

Вот смотри. Есть такой фреймворк Qt для C++ разработчиков. У него есть богатый набор классов-оболочек для OpenGL. C Qt можно переносить приложения с помощью простой перекомпиляции. OpenGL - кроссплатформенный, а DirectX. Но я работаю сейчас только в Windows и, судя по твоей логике, можно освоить (более или менее) DirectX и вернуться к современной версии OpenGL (к новой версии супер книги). Кроме Qt я работаю и с Java. Главный вопрос: могу ли я использовать DirectX в этих средах? Или для осваивания DirectX лучше выбрать что-то другое? C#?

#14
11:02, 4 авг. 2014

8Observer8
DX + Java - ИМХО полный бред. Жаба имеет изначальную концепцию полной платформонезависимости, и впиливать в нее DX нет никакого смысла.

Что DX, что GL я использовал в С++ без каких-то проблем, но стоит понимать, когда лучше использовать одно, а когда - другое.

Страницы: 1 2 317 18 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.