Russian Qt Forum
Ноябрь 24, 2024, 16:09
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
[Решено] Наиболее эффективный путь изучения OpenGL
Страниц: [
1
]
2
3
...
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [Решено] Наиболее эффективный путь изучения OpenGL (Прочитано 34543 раз)
8Observer8
Гость
[Решено] Наиболее эффективный путь изучения OpenGL
«
:
Август 04, 2014, 08:40 »
Привет!
Судя по этой цитате из книги "OpenGL. Супер книга" "трёхмерная графика стала типичной составляющей пользовательских и коммерческих приложений, а не только игр и научных приложений":
Цитировать
OpenGL используется для решения множества задач, возникающих в различных сферах - от архитектурных и инженерных приложений до программ моделирования, используемых для создания компьютерных монстров в фильмах со спецэффектами. Введение трехмерного программного интерфейса приложений, являющегося промышленным стандартом, в такие операционные системы, как Microsoft Windows и Macintosh OS X, имело впечатляющие последствия С распространением аппаратного ускорения и быстродействующих микропроцессоров для персональных компьютеров трёхмерная графика стала типичной составляющей пользовательских и коммерческих приложений, а не только игр и научных приложений, как было раньше.
В связи с этим у меня возникло желание использовать его во всех своих приложениях (или в большинстве из них). Но есть трудности в том, как наиболее эффективно осваивать OpenGL. Покажите, пожалуйста, этот путь с самого начала. Как ребёнок бы начал его осваивать?
Заранее спасибо за ответы!
«
Последнее редактирование: Сентябрь 02, 2014, 12:28 от 8Observer8
»
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #1 :
Август 04, 2014, 09:14 »
Самый простой и верный способ?
Просто делайте что-нибудь с OpenGL, как можно чаще, тогда и научитесь. Других путей не бывает.
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
8Observer8
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #2 :
Август 04, 2014, 09:19 »
Да, тоже вариант
Надеюсь, ссылки накидуют, кто уже освоил.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #3 :
Август 04, 2014, 11:02 »
Я изучаю сейчас OpenGL по этой же книге.
Её пока вполне достаточно. Примеров там тоже хватает.
Были небольшие сложности с подсоединением glut и запуском GLTools (которые идут с книгой). Но всё это удалось победить.
У Шлее есть простой пример, что нужно переопределять в классе QGLWidget.
Ну, и справка с google тоже пригодились для создания двойного буфера и т.п.
«
Последнее редактирование: Август 04, 2014, 11:07 от __Heaven__
»
Записан
8Observer8
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #4 :
Август 04, 2014, 11:33 »
Вот такой ещё есть пример:
http://www.gamedev.ru/code/articles/OpenGL_Qt4
Примеры из Шлее я разобрал.
Научился загружать кубик из 3D-редактора Blender:
http://www.prog.org.ru/index.php?topic=26752.msg194255#msg194255
Физический движок Bullet смог подключить к Qt Creator'у:
http://www.prog.org.ru/index.php?topic=26838.msg194636#msg194636
Для меня NeHe и СуперКнига - очень сложные.
Эту тему я перенёс вот сюда:
http://www.gamedev.ru/code/forum/?id=191780
В результате обсуждения я решил, что начинать надо с DirectX 11 и C#. А потом постепенно внедрять OpenGL в Qt и Java.
Разработчику нужно расширять кругозор (но при этом не распыляться), чтобы для конкретной задачи выбирать подходящие инструменты!
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #5 :
Август 04, 2014, 12:02 »
Вот вам примеры 2 и 3 главы из суперкниги (см. аттач), которые я при изучении адаптировал под Qt.
Сама книга не сложная (NeHe, на сколько помню, тоже не особо). Сложной математики в ней нет.
Какой момент вам из суперкниги непонятен?
Записан
8Observer8
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #6 :
Август 04, 2014, 13:39 »
Есть несколько непоняток вначале. Потом напишу. За примеры спасибо! Ещё не смотрел.
Какое у вас издание? У меня 3-е, на русском. Говорят, что надо читать последнее на английском, потому что оно проще и там новая версия OpenGL
--- Update ---
Во-втором примере ошибка:
Цитировать
D:\Qt\QtOpenGL\_Downloaded\OpenGL_training\chapter2\bounce.cpp:12: error: no matching function for call to 'QString::arg()'
setWindowTitle(QString("Bounce (build %1)").arg(BUILD));
^
--- Update ---
Строку закомментил, пример интересный. Почитаю код. Потом отпишусь
«
Последнее редактирование: Август 04, 2014, 13:43 от 8Observer8
»
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #7 :
Август 04, 2014, 14:01 »
Да, извиняюсь. Пробовал некоторые штучки во второй главе. Ошибки просто нужно закомментить.
Книга у меня 2006г. на русском. Мне проще изучать на русском, чтобы понять концепцию. Естественно, на этой книге я не остановлюсь
Записан
8Observer8
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #8 :
Август 04, 2014, 16:14 »
Лекция 1:
http://www.gamedev.ru/code/articles/OpenGL_Qt4
Код (Qt5):
https://github.com/8Observer8/Icosahedron
Лекция 2:
http://www.gamedev.ru/code/articles/OpenGL_Qt4_part2
Код (Qt5):
https://github.com/8Observer8/Animation
Книга "SuperBible", самое свежее шестое издание:
http://rutracker.org/forum/viewtopic.php?t=4553108
Код к книге:
http://www.openglsuperbible.com/
P.S. Один только способ научиться - руками весь код набирать, до полного автоматизма (выпрямления)
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #9 :
Август 04, 2014, 16:28 »
Цитата: 8Observer8 от Август 04, 2014, 16:14
Один только способ научиться - руками весь код набирать, до полного автоматизма (выпрямления)
Куда ж без этого. Так просто не запомнишь
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #10 :
Август 06, 2014, 08:18 »
Почитал я начало шестого издания суперкниги.
Так понимаю, что там рассматривается работа с GLSL, что, как я понимаю, в нынешнее время ценится больше, чем голый OpenGL.
В книге 2006 года используются именно OpenGL как есть. Мне стартовать с неё было проще. Там информация на привычном русском и достаточно всё разжевано. Очень просто понять аспекты рисования. Там функции вызываются напрямую, без компиляции, компоновки и дополнительного изучения языка шейдеров, что, на мой взгляд, удобнее для восприятия. Конечно же, наверное, на практике лучше будет использовать именно GLSL.
Могу ошибаться.
Записан
8Observer8
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #11 :
Август 07, 2014, 06:39 »
__Heaven__, в 3-ем издании тоже GLSL есть (если не ошибаюсь) ближе к концу книги. Там про шейдеры было написано.
Хочу большой шаг сделать. А именно, освоить хождение по 3D миру. Просто плоскость без текстуры и плавное перемещение камеры вдоль плоскости (с поворотами и возможностью посмотреть вниз и вверх). Вот такой пример есть, но он очень древний:
http://pmg.org.ru/nehe/nehe10.htm
__Heaven__, какие у вас мысли по этому поводу?
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #12 :
Август 07, 2014, 07:52 »
На этот счет в суперкниге 3изд имеется хороший пример sphereworld, который начинается с 4 главы и наращивается до конца книги
Записан
8Observer8
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #13 :
Август 07, 2014, 08:13 »
Спасибо! Наверняка он и в 6-й есть
Я сейчас хочу запустить самый первый пример из 6-й суперкниги. Он на шейдерах. Попробую из книги его набрать. А вот среди файлов с книжными примерами я так и не смог найти его, так как в книге названий примеров нет. А в папках примеры не по главам.
--- Updata ---
Я разобрался. Примеры к книге можно открыть, как "Solution" к Visual C++ 2010 Express Edition. Только для каждого проекта надо открыть "Properties" и в разделе "Linker"->"General" выставить "Enable Incremental Linking" в значение "No (/INCREMENTAL:NO)"
Вот только проблемка есть, что программа быстро завершается и я не могу посмотреть результат. Enty point там: DECLARE_MAIN(alienrain_app)
Как сделать паузу в Visual C++ 2010? Понимаю, что это не касается Qt, но может кто знает. Я на Qt переделаю.
«
Последнее редактирование: Август 07, 2014, 09:08 от 8Observer8
»
Записан
Bepec
Гость
Re: Наиболее эффективный путь изучения OpenGL
«
Ответ #14 :
Август 07, 2014, 08:58 »
Ххы. Сделайте там бесконечный цикл типа QEventLoop.
PS а в VS2010 (Visual
STUDIO
) можно поставить брейкпоинт и это будет пауза выполнения программы.
Записан
Страниц: [
1
]
2
3
...
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...