• Интеграция QT в OpenGL приложение с использованием QPA

    Posted on by admin

    Долгое время использовать QT для построение интерфейса в играх было неудобно из-за невозможности интегрировать его в приложение и сильного падения производительности если строить приложение целиком на QT, однако с выходом QT5 с QPA запуск GUI на QT в отдельном потоке исполнения стал очень простым.


  • Новый интрузивный профайлер для GNU Linux и других платформ

    Posted on by admin

    В Linux имеется достаточно большое количество средств для профилирования приложений, наиболее распространенными из них являют valgrind, gprof и oprofile. В valgrind имеется инструмент callgrind, который позволяет собирать статистику по вызовам различных функций. Для анализа результатов есть замечательное приложение — kcachegrind, позволяющее достаточно удобно просматривать узкие места, находить пути, по которым код приходит в эти места.
    Это замечательный утилиты, которые позволяют найти узкие места в коде, однако у использования данных утилит есть несколько минусов:
    Valgrind значительно понижает скорость выполнения программы
    Во всех данных утилитах отсутствует возможность посмотреть изменение выполнения кусков кода во времени
    Нет возможности посмотреть не функцию целиком или отдельную строку, а логический модуль.

    Эти особенности общие для всех утилит профайлинга, не требующих изменения исходного кода приложения.


  • Генератор процедурных текстур v0.1.5

    Posted on by admin

    Завершена работа над новой версией генератора процедурных текстур. Это промежуточная версия, с некоторым nice-to-have функционалом, не вносящая ничего принципиально нового (0.1.5). Основной задачей, которая ставилась на эту версию была стабилизация работы на различных OpenCL платформах. Новая версия умеет работать как на Nvidia (основная платформа разработки) так и на AMD(и видеокарты и цпу) и Intel(цпу).


  • Генератор процедурных текстур

    Posted on by admin

    Около года назад я заинтересовался генерацией процедурных текстур, в частности для генерации поверхностей планет. Посмотрев на то что можно получить из простенького генератора, встроенного в Terragen я решил написать себе тулзу, в которой можно бы было настраивать параметры в более удобном виде с возможностью экспортировать описание шума в xml файл, с целью его последующей загрузки.

    Данный генератор текстур фактически является GUI приложением для библиотеки libnoise и предоставляет возможность построения схемы из большей части модулей этой библиотеки. Для обеспечения возможности использования схемы в других приложения можно произвести экспорт данных в xml файл. Пример его загрузки можно посмотреть в исходных кодах (Generation/noisexmlbuilder.{h,cpp})

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

    Выглядит программа примерно так: превью

    Бинарные сборки:

    Версия под win32 не тестировалась. Известно только что она запускается под wine.

    Исходники:

    Сразу хочу сказать что исходники ужасны 🙂


  • С наступающим или то чего уже не будет

    Posted on by admin

    Ну во первых всех с наступающим Новым Годом!

    А во вторых хочу поделиться проектом, который планировался к запуску в прошлом году, но так и небыл реализован и теперь уже врятли когда нибудь будет. Проект задумывался как забавный Tower Defence новогодней тематики, к нему уже есть проработанный документ, который впринципе был интересен компании, в которой я на тот момент работал, но оказалось что он слишком большой и запускать его не рискнули. Позже я подумывал начать этот проект в свободное время, но мой интерес перешел в область 3д графики и проект заглох.

    Дизайн документ: https://blog.nsws.ru/wp-upload/ssg.pdf

    Врятли этому проекту суждено увидеть свет, но вдруг кого-то заинтересует 🙂

    Всех с наступающим!


  • В космический праздник — космический релиз

    Posted on by admin

    Давным давно, когда самым мощным компьютером у нас дома был калькулятор, в далекие 90-е годы, моим братом (с небольшим моим участием) была придумана и реализована игра «Космос».


  • glfw и VirtualBox

    Posted on by admin

    Давным давно образовалась у меня проблема — игры не работают в VirtualBox. Проблема не решилась даже тогда, когда в VirtualBox появилась поддержка OpenGL. Единственным решением для разработки игр было использование Mesa в режиме программной эмуляции OpenGL. Наконец то я смог разобраться в причинах этой проблемы. Как оказалось разработчики VirtualBox уже долгое время не фиксят одну маленькую проблему. И, разумеется, glfw использует именно функцию glxGetFBConfigAttrib и не получает флага GLX_WINDOW_BIT после чего считает что не возможно создать окно.

    Для решения данной проблемки можно использовать небольшой патч:

    Данный патч можно применить не только к ветке 2.7 но и к 2.6 (данный код не претерпел значительных изменений). Возможно потребуется поправить вручную. После применения патча окно успешно создается.