Обновления

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.

AgX в Dagon

Добавил в Dagon поддержку AgX – это новая функция tonemapping’а, намного превосходящая ACES и Filmic по качеству результата. В частности, AgX более адекватно отображает засвеченные области – например, поверхности, освещенные яркими цветными источниками света или самостоятельно светящиеся поверхности, как показано на скриншотах ниже. При этом картинка в целом становится менее контрастной и насыщенной – для решения этой проблемы есть режим Punchy, который дает эффектный кинематографичный контраст.

Для сохранения обратной совместимости функцией по умолчанию пока останется ACES.

Обратил внимание, что многие в сообществе компьютерной графики не совсем понимают суть AgX и вообще тональной компрессии. Иногда AgX неверно называют “цветовым пространством” – пространство там BT.2020 RGB, предложенное для стандартизации изображения в устройствах UHDTV, а AgX – это цветовое преобразование (color transform) в этом пространстве. Перед тем, как применять AgX, нужно перевести цвет из линейного RGB в линейный BT.2020 RGB (а после применения – обратно). Тональная компрессия – это не какой-то волшебный фильтр, который “делает красиво”, а просто функция, которая нелинейно сжимает яркость в ограниченный диапазон значений, сохраняя как можно больше информации с учетом особенностей человеческого зрения: в идеале должна сохраняться детализация и в темных, и в светлых участках картинки (не должно быть засветов и черных теней), а все цвета должны выглядеть правдоподобно на всем диапазоне яркости. Тема, опять-таки, довольно сложная, очень интересная и заслуживающая отдельной подробной статьи.

Как я перешел на фриланс и перестал выгорать

Согласно свежей статистике, 73% разработчиков испытывали симптомы выгорания. При этом 70% пишут код ради развлечения по выходным – я считаю, что это очень интересный момент, это говорит о важности хобби-проектов и о том, что программирование само по себе не является фактором психологических трудностей. Вспоминается хрестоматийный эпизод из “Приключений Тома Сойера”, где покраска забора была и наказанием, и развлечением – все зависит от настроя и мотивации.

Распространено мнение, что лучший отдых – это смена деятельности. Но в случае с IT эту смену парадоксальным образом можно осуществить, “не отходя от кассы”. Я работаю дома и часто отдыхаю на рабочем же месте, просто переключаясь на хобби-проекты и другие интересные мне задачи. При этом бывает, что я пишу для души примерно то же самое, что и для заработка! Осознав этот примечательный факт, я решил, что мой опыт заслуживает описания в виде статьи.

(далее…)

Обновления

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.

Статус по проектам

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

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

Dagon. Развивается, но медленно. В данный момент я работаю над версией 0.16, в которую войдут нововведения прошлого года: подповерхностное рассеивание и зонды освещения среды. Я планирую работать над движком и дальше, планы по нему довольно масштабные: так, я хочу сделать встроенный редактор на основе ImGUI – он будет генерировать исходники на D и вызывать DUB для сборки проектов, таким образом движок станет намного дружелюбнее для начинающих. Также в планах переписать стек постпроцессинга.

dlib. Понемногу развивается ветка 1.x, а вот 2.x пока заморожена. Исследую возможность поддержки прогрессивных JPEG.

Electronvolt (проект Atrium). Временно заморожен, но не исключено, что я к нему еще вернусь.

bindbc-wgpu, dusk и прочие наработки по WebGPU на D. Периодически обновляю, но для серьезного перехода на WebGPU пока нет мотивации и ресурса. Никаких особых планов на этот счет тоже нет.

dray. Новый проект – движок рейкастинга на основе dlib. Находится в разработке. Я в него переношу код из моего старого физ. движка dmech, а то пропадают даром хорошие алгоритмы) На сегодняшний день dray уже поддерживает пересечение луча с произвольной выпуклой геометрией, движок включает классы для таких стандартных тел, как сфера, параллелепипед, цилиндр, конус, эллипсоид. Тела могут быть произвольным образом трансформированы при помощи матриц 4×4.

Журнал FPS. Он жив-здоров, просто уже не имеет PDF-версии и существует в виде новостной странички. У меня есть идея окончательно объединить его с порталом Xtreme3D – думаю, это будет сайт или даже целая соцсеть по любительской разработке игр.

Этос Метамодерна. Telegram-канал для пространных философских рассуждений, которые по формату не подходят для других моих площадок.

Живопись и 3D-моделирование для стоков я окончательно забросил – коммерческий выхлоп там теперь уже нулевой, а времени работать для души совершенно перестало хватать.

Не упоминаю тут свои бизнес-процессы – это большая тема для отдельной статьи, и даже не одной.