Итоги 2024 года

Декабрь – время традиционного подведения итогов за прошедший год:

  • Выпустил три версии Dagon – 0.16, 0.17 и 0.18. В движке появились подповерхностное рассеивание, зонды локального освещения среды, тональная компрессия AgX, улучшен встроенный контроллер персонажа. Добавлена поддержка Wayland под Linux и поддержка экранов с высокой частотой обновления. Наконец-то появились меш-группы в загрузчике OBJ, что позволяет рендерить загруженную модель по частям с различными материалами и настройками. Появился новый встроенный шейдер звездного неба для ночных сцен и игр с космической тематикой. Доступны новые примеры: веревка на основе интегрирования Верле и механика игры от третьего лица.
  • Dagon, в числе других примечательных проектов на языке D, был упомянут на конференции FOSDEM 2024 в Брюсселе, а позже на эту тему вышло интервью со мной в онлайн-издании “Вечерняя Казань”.
  • Выпустил dlib 1.3.0, где был проделан ряд улучшений в математическом пакете и добавлен новый модуль dlib.math.random. Спасибо Александру Перфильеву aka aperfilev за багфиксы и поддержку GNU D Compiler в dlib.math.sse. В марте этого года библиотека побила все рекорды по скачиваниям за все время существования проекта – 14000 в месяц!

Ну и, конечно, небольшой список интересных событий в мире D и графического СПО:

  • Функция тональной компрессии AgX стала новым де-факто стандартом индустрии;
  • В языке Slang добавлена поддержка WGSL, что позволяет с большим удобством писать шейдеры для WebGPU-приложений;
  • На FOSDEM ’24 был представлен ознакомительный доклад о языке D и его преимуществах для разработки приложений компьютерной графики.
  • Upd: у GitHub Copilot появился бесплатный ограниченный доступ!

Dagon 0.18

Выпустил новую версию Dagon. В загрузчике OBJ наконец-то появилась поддержка групп – если в файле присутствуют группы, они будут доступны через свойство OBJAsset.groupMesh, так что вы можете использовать их в качестве отдельных мешей вместо единого OBJAsset.mesh. Также загрузчик теперь не падает на моделях с N-гонами, а выводит предупреждение, что они не поддерживаются.

Добавлен новый экстра-шейдер dagon.extra.starfieldsky – ночное небо со звездами. Он представляет собой улучшенную версию шейдера звездного неба из демки с планетой. Основное нововведение – поддержка мерцания звезд.

Слегка переделан NewtonCharacterComponent: появился новый параметр радиуса. Логика теперь следующая: контроллер персонажа, как и прежде, представлен двумя Newton-сферами, но их радиус теперь задается пользователем, а не вычисляется автоматически. Сферы располагаются сверху и снизу от барицентра на расстояниях, которые вычисляются исходя из радиуса и роста персонажа.

В dagon:iqm появились новые свойства для анимированных моделей: Actor.looping (зацикленность), Actor.state.finished (индикатор завершения текущей анимации). Исправлен баг с фейсгруппами при загрузке некоторых IQM.

Обновления

Вышел bindbc-wgpu 0.22.0, соответствующий wgpu-native 22.1.0.1. Обновилось много чего по мелочи, из важного: теперь нужно удалять WGPURenderPassEncoder после отрисовки, иначе у вас wgpuQueueSubmit будет падать с ошибкой.

Соответственно, обновил и демонстрационное приложение wgpu-dlang, плюс избавился там от библиотеки STB для загрузки изображений.

Стеганография в dlib

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

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

(далее…)

Dagon на FOSDEM 2024

Классная новость: на прошедшей в феврале в Брюсселе FOSDEM ’24, европейской конференции по свободному программному обеспечению, американский профессор компьютерных наук Майк Шах (Mike Shah) представил доклад по языку D. В числе прочего, доклад включает информацию по Dagon. Отмечается, что это “существенный проект, который представляет интерес для графических разработчиков”. Также упоминаются Dash, Hipreme Engine, BindBC и некоторые коммерческие игры, созданные с использованием D.

Ссылка на презентацию

Доклад представляет собой общее ознакомление с языком, обзор основных его особенностей и преимуществ в плане разработки СПО, а также некоторых библиотек и примечательных проектов, написанных на D.

Майк Шах – ученый в области компьютерной графики и визуализации, Ph.D. компьютерных наук, преподаватель Колледжа компьютерных наук Хури Северо-Восточного университета (Массачусетс).