ЛЕНТА СОБЫТИЙ

Allegro

2018-10-14 12:26:08 +0000

Занялся поиском библиотеки виджетов для настройки графического интерфейса. Пересмотрел несколько библиотек и неожиданно вышел на библиотеку Allegro. Довольно интересная разработка, своего рода "Швейцарский нож" - мультиплатформенная, есть поддержка нативных диалоговых окон, загрузки файлов, мультимедиа и даже OpenGL. Не верилось, но выходило, что можно исключить из проекта сразу несколько библиотек заменив все одним Allegro.

Увы, ожидания не подтвердились. Тестовые сборки показали, что текущая версия библиотеки ориентирована на устаревший интерфейс OpenGL - новые функции частично поддерживаются только через... [ продолжение ]


 

Продолжение работы

2018-09-21 23:45:00 +0000

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

Первое, что стало очевидным, это то, что пытаться “с нуля” писать свой собственный графический движок в одиночку неразумно. На это уйдет слишком много времени. Если я хочу когда-нибудь дойти до реализации, то надо брать готовый открытый проект графического движка и работать с ним. Вот сейчас разработаю систему... [ продолжение ]


 

лето 2018

2018-06-28 00:31:54 +0000

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


 

Графический движок

2018-02-03 00:41:20 +0000

Это конечно круто и увлекательно - писать собственый графический движок. Но чем дольше я этим занимаюсь, тем больше возникает ощущение, что “изобретаешь велосипед”. Надо поработать с популярными графическими движками - изучить их устройство и работу. Сейчас, когда уже понятны принципы работы c OpenGL, самое время посмотреть - “а как там у них?”.

Как показала практика писать весь код одному тяжеловато. В качестве обоснования возможности в одиночку создать интересное и популярное приложение я опирался на пример Перссона с Minecraft. Но теперь... [ продолжение ]


 

Работа с Clang

2017-12-02 02:32:29 +0000

Поработал немного с Clang. Впечатление неоднозначное - есть моменты, которые не до конца понятны. Несомненный плюс Clang - это удобная интеграция со средствами разработки для анализа кода. Я даже сделал попытку перейти от использования среды Vim+GCC на Emacs+Clang.

Небольшое отступление: дело в том, что и за три года активной работы в Vim я так и не избавился от дискомфорта, вызываемого необходимостью переключаться между его Режимами. Для меня так и остались невостребованными большинство возможностей вимовского Нормального режима. В попытке изменить ситуацию... [ продолжение ]


 

Рендер во фреймбуфер

2017-09-13 02:45:17 +0000

Преодолена еще одна ступенька в процессе развития проекта - реализован рендер во фреймбуфер. Теперь стало понятно, как сравнительно простыми средствами реализовать курсор и HUD в 3D окне.

Достаточно просто решилась задача написания обертки к библиотеке Freetype для работы с текстом. Теперь можно рендерить надписи на экране в произвольном месте почти без снижения быстродействия.

С выходом нового релиза LLVM/Clang, в сборке cmake/MinGW-w64 которой я пользуюсь для разработки, наконец-то успешно собрался из исходников clang/clan++ c необходимыми библиотеками. Сборка моего проекта при помощи... [ продолжение ]


 

3D движок

2017-07-14 13:52:32 +0000

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

На видео youtube представлен тест фрагмента трехмерной сцены, которая отображается динамически, переписывая содержимое одного управляющего буфера VBO с единственным VAO. Этот принцип будет положен в основу... [ продолжение ]


 

Геометрические шейдеры

2017-06-09 02:00:47 +0000

В процессе поисков увеличения быстродействия графического движка попробовал перенести все процедуры расчета элементов поверхности в GPU. Теперь программа занимает в оперативке меньше 20Мб. Чтобы иметь возможность изменять окружающее пространство, в оперативной памяти основной программы хранится только массив опорных точек, которые используются для расчета и построения поверхностей. Планировалось, что если идея обеспечит нужный эффект, то в дальнейшем координаты опорных точек можно в виде потока передавать из базы данных.

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


 

Подписаться по RSS