OberonCore
https://forum.oberoncore.ru/

OglLessons - Уроки по OpenGL
https://forum.oberoncore.ru/viewtopic.php?f=90&t=2879
Страница 1 из 1

Автор:  Иван Денисов [ Пятница, 01 Октябрь, 2010 06:02 ]
Заголовок сообщения:  OglLessons - Уроки по OpenGL

Использование OpenGL обсуждалось тут.
viewtopic.php?f=24&t=825

Разбираясь с одной задачей по 3d визуализации, нашел уроки по OpenGL на сайте
http://nehe.gamedev.net/lesson.asp?index=01

Там есть трансляция уроков на разные языки программирования, Оберона или Компонентного паскаля там естественно нет.

Сделана трансляция [2,4,5] урока на КП, используя пакеты из коллекции Цинна.
http://www.zinnamturm.eu/downloadsOS.htm#Ogl
http://www.zinnamturm.eu/downloadsOS.htm#OglGlut

Получаются независимые от ВВ приложения, неплохой пример использования ББ, как простого компилятора. Можно ведь и игры таким образом писать, Интересно на сколько хорошо может показать себя компилятор ББ при разработке игр, например!

Родилась идея перевести все уроки на КП, написать автору уроков, чтобы разместил эти трансляции на сайт. Буду потихоньку этим заниматься, но рад буду если кто-то еще захочет научится использовать OpenGL таким способом.

(модератор) 07.11.2010: уроки загружены в коллекцию: http://oberoncore.ru/bbcc/subs/ogl/lessons

Автор:  Info21 [ Пятница, 01 Октябрь, 2010 08:11 ]
Заголовок сообщения:  Re: Уроки по OpenGL

На всякий случай: для русифицированных версий в списке линкера нужно перед Kernel+ вписать National.

Если не трудно, в урок добавьте, пожалуйста, команду с пометкой "для русифицированных версий Блэкбокса".

Автор:  Илья Ермаков [ Пятница, 01 Октябрь, 2010 10:28 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Интересно, пригодится, спасибо. Хочу дать тему 3Д-графики студентам чуть попозже.

Автор:  Иван Денисов [ Пятница, 01 Октябрь, 2010 17:43 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Info21 писал(а):
На всякий случай: для русифицированных версий в списке линкера нужно перед Kernel+ вписать National.
Если не трудно, в урок добавьте, пожалуйста, команду с пометкой "для русифицированных версий Блэкбокса".

Добавил и проверил.

Автор:  Роман М. [ Пятница, 01 Октябрь, 2010 20:29 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Логичнее было бы издавать материал в формате HTML, так как его смогут найти веб-поисковиками.
Компонентный Паскаль мог бы показать свою мощь в таких уроках лишь в случае разработки компонентного ПО. А так разница неощутима. API то один и тот же. Только синтаксис другой (язык). Так что на примере игр и небольших проектов (допустим, лабораторные работы по физике, визуализация данных и тому подобное) могли бы оказать большую пользу.

P.S.
"руссифицированной" пишется через одну "с".

Автор:  Info21 [ Суббота, 02 Октябрь, 2010 07:40 ]
Заголовок сообщения:  Re: Уроки по OpenGL

divan писал(а):
Добавил и проверил.
Спасибо.

Надо понимать, теперь и русифицированная версия есть :)

Роман М. писал(а):
"руссифицированной" пишется через одну "с".
В смысле?

Автор:  Роман М. [ Суббота, 02 Октябрь, 2010 12:06 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Цитата:
Роман М. писал(а):
"руссифицированной" пишется через одну "с".
В смысле?
У divan в документе фигурирует слово "руссифицированной", т.е. с ошибкой.

Автор:  Иван Денисов [ Суббота, 02 Октябрь, 2010 13:35 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Исправил, вычистил файл от пробелов...

Возникли вопросы.
Как закрыть программу не используя Kernel.Quit(0) ?
Просто это, единственная команда в уроке для которой нужен Kernel. Без него готовая программа занимает 6кб.

Пробовал упаковать glut32.dll в .exe, но он ее внутри себя не видит почему-то. В чем может быть проблема?

Автор:  Александр Ильин [ Суббота, 02 Октябрь, 2010 15:47 ]
Заголовок сообщения:  Re: Уроки по OpenGL

divan писал(а):
Как закрыть программу не используя Kernel.Quit(0) ?
WinApi.PostQuitMessage(0);
Можно ещё HALT (0).
А что, нету штатных средств завершения GLUT.MainLoop?

Автор:  Madzi [ Суббота, 02 Октябрь, 2010 17:17 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Александр Ильин писал(а):
divan писал(а):
Как закрыть программу не используя Kernel.Quit(0) ?
WinApi.PostQuitMessage(0);
Можно ещё HALT (0).
А что, нету штатных средств завершения GLUT.MainLoop?


Для GLUT'а - нет.
Но GLUT - обвязка, GLU, а GLU - обвязка GL. Так что можно стремиться использовать только GL.

Автор:  Иван Денисов [ Суббота, 02 Октябрь, 2010 17:40 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Александр Ильин писал(а):
divan писал(а):
Как закрыть программу не используя Kernel.Quit(0) ?
WinApi.PostQuitMessage(0);
Можно ещё HALT (0).
А что, нету штатных средств завершения GLUT.MainLoop?
Спасибо!
Народ пишет про FreeGLUT, что мол, это более свежая обвязка.
Также нашел OpenGLUT http://openglut.sourceforge.net/group__mainloop.html
Тут есть прямо функция специальная glutLeaveMainLoop.
Попробую OpenGLUT посмотреть, так как для ББ вопрос отключения петли MainLoop актуален. Если окно вызвано с открытым ББ, то закрытие окна приводит к закрытию всего ББ.

Также с четвертым уроком пришлось повозится (третий пропустил), разобраться с Таймером GLUT. Хочу сказать, что мне в ББ такого таймера очень не хватает!!! Писал вопрос тут viewtopic.php?f=23&t=2667 проблему красиво так и не решил :( использовал LOOP, который хоть и увеличил fps до 70 но загрузил одно ядро на 100%

Также человек, который для BB писал заголовки для библиотеки glut32.dll разбирался в этой библиотеке хорошо, поскольку в ней присутствует недокументированная функция CreateWindowWithExit !
Очень полезная, поскольку после закрытия окна MainLoop не останавливается и приложение работает. Может есть другие способы убить приложение, отслеживая каким либо образом состояние окна, но пока не нашел.

Прикладываю 4 урок. 2 заменил в первом сообщении. Необходимость в Kernel и в National, соответственно, отпала.

Автор:  Иван Денисов [ Суббота, 16 Октябрь, 2010 05:37 ]
Заголовок сообщения:  Re: Уроки по OpenGL

Разобрался с пятым уроком и шестым пока без внешней картинки (текстура генерируется). Модули буду менять в первом сообщении, а в ленте комментировать изменения.
Замечание про текстуры: особенность ATI видеокарты вынуждает делать размер всех текстур равный степени 2.

Автор:  Евгений Темиргалеев [ Воскресенье, 24 Октябрь, 2010 09:48 ]
Заголовок сообщения:  Re: Уроки по OpenGL

divan писал(а):
Также человек, который для BB писал заголовки для библиотеки glut32.dll разбирался в этой библиотеке хорошо, поскольку в ней присутствует недокументированная функция CreateWindowWithExit !
Очень полезная, поскольку после закрытия окна MainLoop не останавливается и приложение работает. Может есть другие способы убить приложение, отслеживая каким либо образом состояние окна, но пока не нашел.
Точнее будет "разобрался, когда писал", т.к. по упомянутым Вами граблям тоже прошёлся. :)

Они описаны в документации OglGLUT, "Notes on Win32 GLUT implementation". Вы, наверное, внимания не обратили, когда читали...

Автор:  Иван Денисов [ Среда, 01 Май, 2013 21:18 ]
Заголовок сообщения:  Re: OglLessons - Уроки по OpenGL

Уроки переделаны под SDL + OpenGl. GLUT оказался на деле сильно устаревшим.

Выложил новые уроки сюда: http://oberon.molpit.com/pacs/OglLessons.txt. Евгений, огромная просьба обновить их в подсистемах на новую версию и также картинку просьба добавить, от этого сообщения, например.

Немного доведенную SDL (изменения), которая необходима для запуска уроков, выложил сюда : http://oberon.molpit.com/pacs/Sdl.txt

Вложения:
demo.jpg
demo.jpg [ 106.81 КБ | Просмотров: 13722 ]

Автор:  Евгений Темиргалеев [ Среда, 08 Май, 2013 20:54 ]
Заголовок сообщения:  Re: OglLessons - Уроки по OpenGL

Иван Денисов писал(а):
Выложил новые уроки сюда: http://oberon.molpit.com/pacs/OglLessons.txt. Евгений, огромная просьба обновить их в подсистемах на новую версию и также картинку просьба добавить, от этого сообщения, например.
Иван, огромная просьба обновить их в хранилище https://svn.oberoncore.ru/community/bbcc/

Автор:  Иван Денисов [ Среда, 08 Май, 2013 21:03 ]
Заголовок сообщения:  Re: OglLessons - Уроки по OpenGL

Евгений Темиргалеев писал(а):
Иван Денисов писал(а):
Выложил новые уроки сюда: http://oberon.molpit.com/pacs/OglLessons.txt. Евгений, огромная просьба обновить их в подсистемах на новую версию и также картинку просьба добавить, от этого сообщения, например.
Иван, огромная просьба обновить их в хранилище https://svn.oberoncore.ru/community/bbcc/
Сделал. Спасибо за обновление http://oberoncore.ru/bbcc/subs/ogl/lessons

Автор:  Jordan [ Понедельник, 17 Июнь, 2013 20:33 ]
Заголовок сообщения:  Re: OglLessons - Уроки по OpenGL

Объясните как подключить sdl к ББ.

Иван Денисов писал(а):
Немного доведенную SDL (изменения), которая необходима для запуска уроков, выложил сюда : http://oberon.molpit.com/pacs/Sdl.txt


Как это открыть и что с этим делать.

Автор:  Иван Денисов [ Понедельник, 17 Июнь, 2013 21:37 ]
Заголовок сообщения:  Re: OglLessons - Уроки по OpenGL

Jordan писал(а):
Объясните как подключить sdl к ББ.

Иван Денисов писал(а):
Немного доведенную SDL (изменения), которая необходима для запуска уроков, выложил сюда : http://oberon.molpit.com/pacs/Sdl.txt


Как это открыть и что с этим делать.

Скачать, открыть в ББ, выбрать Tools → Decode, согласиться создать пару папок, открыть документ Sdl/Docu/SDL-Quick-Start.odc

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/