Обновления

Обновил битые ссылки на статьи по dlib в блоге LHS – у блога сменился домен на blog.lhs.su. Также решил постепенно выложить здесь все свои гостевые статьи оттуда.

Обновил сайты Dagon и dlib: https://gecko0307.github.io/dagon/, https://gecko0307.github.io/dlib/. Также все примеры Dagon теперь используют версию 0.16.0.

dlib бьет очередной рекорд по скачиваниям – 3400 в месяц, что выводит библиотеку на 6 место в каталоге DUB с рейтингом 5.0.

В Dagon появилась функция для управления кадровой частотой – Cadencer.setFrequency, а также хелперы для автоматической адаптации кадровой частоты к частоте обновления экрана: Application.displayRefreshRate, Application.frequencyToRefreshRate.

Музыкальный D: синтезатор в 100 строк

Моя статья 2018 года, изначально написанная для блога LightHouse Software. Приведенный код актуален и сегодня, статья служит неплохим вводным руководством к dlib.audio.

Библиотека dlib предоставляет базовые инструменты для работы с аудиоданными, которые позволяют написать синтезатор с сохранением полученных звуков в WAV. В этой статье я покажу, как с их помощью сгенерировать знаменитую мелодию «Popcorn» Гершона Кингсли, используя для этого всего три функции, умещающиеся в 100 строк кода.

(далее…)

Dagon 0.16.0

Выпустил новую версию Dagon. Главная особенность релиза – поддержка подповерхностного рассеивания (subsurface scattering) методом, аналогичным тому, который используется в Disney BRDF. Добавлено новое свойство материала subsurfaceScattering – это значение от 0 до 1, обозначающее долю излучения, которое рассеивается в толще материала: чем больше это значение, тем больше света проникает вглубь и меньше отражается от поверхности.

Также появилась поддержка зондов локального освещения среды (environment light probes). Это отложенный эффект наподобие точечных источников света, но для освещения среды: параллелепипед, внутри которого все объекты используют индивидуально заданную карту окружения вместо глобальной. Это позволяет, например, отделить освещение интерьера комнаты от уличного.

Добавлена ноддержка тональной компрессии AgX – и, соответственно, новые константы Tonemapper.AgX_Base и Tonemapper.AgX_Punchy.

Добавлена функция снятия скриншотов игры – метод Application.takeScreenshot.

Исправлен баг с некорректной передачей параметров в шейдер цветокоррекции (LUT). Исправлен прыжок в контроллере персонажа в расширении dagon:newton – прыжок плохо срабатывал на плоских поверхностях.

Dagon теперь использует dlib 1.3.0. Расширение dagon:imgui теперь использует bindbc-imgui 0.7.0.

Обновления

dlib 1.3.0

Вышла новая версия dlib. В библиотеке появился новый пакет dlib.math.random с реализацией генератора псевдослучайных чисел на основе C-функции rand. Проделан ряд улучшений в математическом пакете: добавлена поддержка компилятора GDC в модуль dlib.math.sse, появилась новая функция интерполяции bezierQuadratic.

Количество скачиваний dlib в реестре DUB достигло 1400 в месяц – рекордный показатель за все время существования проекта!

Подготовка к релизу Dagon 0.16

Новая версия Dagon планируется к выпуску совсем скоро – на днях внес ряд багфиксов и улучшений в физику Newton (в частности, исправлен прыжок контроллера персонажа на плоских поверхностях), а также добавил встроенную функцию создания скриншотов – Application.takeScreenshot.

Обновления

bindbc-wgpu 0.19.0, соответствующий wgpu-native 0.19.x. Каких-то существенных изменений в этой версии нет, кроме того, что структуры и функции опроса статистики конвейера вынесены в платформоспецифичную часть API (bindbc.wgpu.types2).

Также рад сообщить, что bindbc-wgpu теперь успешно собирается и работает под Linux – как и демо-приложение с моделью Cerberus. Тестировал на Mint 21.2 с wgpu-native 0.19.1.1.

Работа над новым релизом Dagon продолжается: на днях внес множество исправлений, связанных с поддержкой Linux. В частности, теперь расширения dagon:newton и dagon:imgui загружают библиотеки из папки проекта, если не находят их в /usr/lib. При сборке под 64-битный Linux нужные библиотеки теперь копируются в папку с проектом – это должно упростить работу с расширениями, пользователи неоднократно жаловались на неинтуитивность подключения Newton. Также обновлен биндинг ImGui.