Nick Sabalausky aka Abscissa, один из разработчиков DMD/Phobos, хостит на своем сайте автогенерируемую таблицу со всеми компиляторами, которые на данный момент поддерживаются Travis CI – очень удобно, можно периодически заглядывать и обновлять свой .travis.yml:
Итоги 2016 года
Близится конец года – и, значит, настало время для подведения итогов. К сожалению, в последнее время у меня было мало времени для работы над Atrium, но какой-то прогресс все-таки есть.
- Графический движок DGL был значительно отрефакторен и улучшен, был создан более эффективный формат для хранения сцен и реализованы различные новые техники рендеринга, самой интересной из которых является PBR. Движок стал работать намного быстрее, а картинка стала заметно современнее.
- Вышли подряд две новые версии коллекции библиотек dlib – 0.8 и 0.9.
- Вышло 6 номеров электронного журнала “FPS” (№№ 40, 41, 42, 43, 44, 45). В 2017 году журналу исполняется 9 лет.
- На сайте LightHouse Software вышли две мои статьи по D – “Стеганография в dlib” и “dlib.image и OpenCL”. Также Atrium и сопутствующие проекты привлекли внимание авторов Блога D, где был опубликован соответствующий отчет на английском.
- Я довел до ума и выложил трассировщик лучей и программный растеризатор, написанные на D, а, кроме того, все-таки доделал свой старый проект – Xtreme3D 3.0.
Чем для меня был интересен прошедший 2016 год? Вот самые, на мой скромный взгляд, значимые события в мире CG, СПО и геймдева:
- Выход LunarG SDK, комплекта разработки под Vulkan. Одновременно появились и Vulkan-биндинги для разных языков, в числе которых и D. Поддержкой нового API постепенно обрастают и ведущие игровые движки.
- Открытие исходников CryEngine 5.
- Выход Krita 3.0 с поддержкой анимации.
- Переход Blender на OpenGL 2.1 для отрисовки интерфейса. Запускать последние версии Blender на своих старых ноутбуках я теперь не могу – а жаль…
- Появление Armory3D, альтернативного игрового движка для Blender – очень перспективный проект, картинкой и списком поддерживаемых платформ оставляет BGE далеко позади.
- Выход Doom 4. Покупать, правда, не стал, скачал на Steam бесплатную демо-версию. Чтобы запустить, пришлось немного пошаманить с настройками, но, в целом, остался доволен. Особенно порадовала пасхалка в виде комнаты с текстурами из классического Дума =)
Инкрементальная сборка в LDC
Любопытная статья по компилятору LDC от Johan Engelen – подробно разбирается инкрементальная сборка и кэширование объектных файлов в LDC 1.1.0.
https://johanengelen.github.io/ldc/2016/09/17/LDC-object-file-caching.html
Atrium в Блоге D
Atrium, dlib и другие мои главные проекты привлекли внимание авторов Блога D, где сегодня был опубликован соответствующий пост от Майка Паркера, автора Derelict. Это первый основательный отчет об Atrium на английском языке, если не считать анонса в ньюсгруппе.
http://dlang.org/blog/2016/09/16/project-highlight-timur-gafarov
Трассировщик лучей на D
Решил выложить свой трассировщик лучей, написанный для соответствующего цикла статей в “FPS” – может, кому-нибудь пригодится. Он умеет рендерить плоскости и сферы, поддерживает текстуры, отражения (в том числе размытые), туман, мягкие тени, Ambient Occlusion и антиалиасинг.
Рендерит не очень быстро, код не слишком оптимизирован (упор делался, в основном, на простоту и наглядность исходников). Основная оптимизация заключается в распараллеливании трассировки на несколько потоков, что дает заметный прирост производительности на многоядерных процессорах.
Проект написан на D, для работы с изображениями и математических вычислений использует библиотеку dlib. Исходники умещаются в 400 строк. Лицензия – public domain или CC0, на ваш выбор.