понедельник, 29 февраля 2016 г.

Vulkan, SDL и D

Частично переписал пример Vulkan/SDL на D. Исходники доступны в моем репозитории экспериментов с Vulkan:

https://github.com/gecko0307/vulkan-demos

Пример представляет собой минимальное приложение, создающее окно SDL, инициализирующее Vulkan и закрашивающее в цикле экран синим цветом. Больше ничего рисоваться не должно.

Функциональность, относящаяся с Vulkan, отделена от SDL и остальной логики приложения, вынесена в модуль vkctx.d. Используются Derelict 2, SDL 1.2 и модифицированный биндинг VulkanizeD. Линковалось и тестировалось на системе с Windows 8.1 и видеокартой NVIDIA GeForce GT 740 с драйвером версии 356.39.

воскресенье, 21 февраля 2016 г.

dlib.image и OpenCL

На сайте LightHouse Software вышла моя гостевая статья, посвященная обработке изображений на GPU средствами OpenCL и dlib. Рассматривается биндинг DerelictCL и реализация ядра для простейшего оконного фильтра (box blur), через который пропускается изображение dlib.image.

пятница, 19 февраля 2016 г.

Vulkan и SDL

Подключил рендеринг Vulkan к приложению SDL (все-таки писать под голый WinAPI не слишком удобно). Правда, пишу пока на C - с биндингами к Vulkan для D под Windows какая-то странная проблема, пока не удается загрузить функции расширений (проблема решена, скоро перепишу демку Vulkan/SDL на D).

Свои наработки решил выкладывать на GitHub - вдруг кому-нибудь еще понадобятся:

https://github.com/gecko0307/vulkan-demos

В репозитории - пример кубика из LunarG SDK, портированный на SDL2.

среда, 17 февраля 2016 г.

Vulkan + D

Буквально этим утром прочитал новость о выходе спецификации Vulkan (подробнее можно прочитать тут). Обновил драйвер Nvidia, сижу, любуюсь свежесобранным примером вращающегося кубика из LunarG SDK:



Кстати, на Гитхабе уже появились биндинги к Vulkan для D, так что можно понемногу начинать осваивать новинку. Мне уже удалось собрать простейшее приложение с использованием VulkanizeD, выводящее информацию о видеокарте, кубик теперь тоже не за горами.

пятница, 12 февраля 2016 г.

dlib 0.8.0

Встречайте новую версию коллекции библиотек dlib - 0.8.0. Это весьма значимый релиз, так как в нем дебютирует новый пакет dlib.audio - набор инструментов для обработки звука. Но - обо всем по порядку:
  • Исправлен серьезный баг в dlib.core.thread, связанный с удалением неинициализированного потока.
  • Новый пакет dlib.audio содержит абстрактные интерфейсы для аудиоданных (как потоковых, так и хранящихся в памяти), а также простейшие реализации этих интерфейсов. Пакет поддерживает 8 и 16-битные сэмплы, произвольные количества каналов и значения частоты дискретизации. Доступ к сэмплам и их обработка осуществляются числами с плавающей запятой. Есть сохранение и загрузка аудиофайлов формата WAV, в будущем планируется поддержка FLAC и, возможно, других форматов.
  • Сильно обновлен пакет dlib.image - все фильтры и операции над изображениями теперь поддерживают ручное управление памятью. Добавлен новый фильтр chroma key на основе евклидового расстояния, а также новый алгоритм выделения границ на основе морфологического градиента. Исправлено несколько критичных багов (в частности, в свертке изображений, бикубическом и lanczos-ресэмплинге).
  • В dlib.filesystem улучшен модуль stdfs (реализация FileSystem с ручным управлением памятью) - появилась поддержка создания и обхода каталогов, удаления каталогов и файлов.
  • В репозиторий dlib добавлены инструменты для автоматической подготовки HTML-документации из вики-страниц проекта.

среда, 3 февраля 2016 г.

Старая пушка

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


Также появился бамп на полах и стенах: