понедельник, 3 июля 2017 г.

Shader Subroutines. Часть 2. Материалы на подпрограммах.

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

Shader Subroutines. Часть 1. Основы.

В этот раз я бы хотел поговорить об относительно старой штуке, появившейся в далеком 2010 году, шейдерных подпрограммах (Shader Subroutines). Не смотря на то, что они в виде расширения были добавлены еще в OpenGL 3.2, о них в сети не так уж и много информации. Фактически я сумел найти всего 6 статей на эту тему и всего пару обсуждений использования этой "фичи". То ли все на столько ясно что не требуется пояснений, то ли люди не понимают/недооценивают возможности этого расширения. К слову, я относился ко второй группе людей. Не смотря на то, что я познакомился с этим расширением еще в момент его выхода, но до сегодняшнего дня я не понимал его места в проекте движка.

Давайте же вместе попробуем разобраться с этим.

воскресенье, 17 апреля 2016 г.

Delphi и Vulkan, первое знакомство.

Не так давно мне в этом блоге напомнили о существовании давно забытой мной GLScene.
Как оказалось - все еще есть энтузиасты, пытающиеся вдохнуть жизнь в этот продукт, даже портировать ее на Vulkan. Могу только пожелать успеха ребятам в этом нелегком деле, надеюсь у них получится то, что не удалось когда-то нашей команде :)

Но история о другом, портирование GLScene на Vulkan началось с портирования заголовочных файлов, а это уже достаточно чтоб попробовать там что-то сделать, да и приятно было вернуться на Делфи, после нескольких лет разработки на С++. Вообщем вот что из этого получилось...

среда, 23 марта 2016 г.

Vulkan API, Framebuffers

Ну и предлагаю вам почитать превод последней части главы "Render Pass" спецификации, в которой рассказывается об еще одном фундаментальном понятии Вулкана - Framebuffers, они же буферы кадра или фреймбуферы. 

понедельник, 21 марта 2016 г.

Vulkan API, Render Pass

Render Pass

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

четверг, 17 марта 2016 г.

Vulkan, еще раз о синхронизации...

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


Написано там было очень много, о параметрах, и случаях использования, о вариантах, о тонкостях и прочем, но это тот случай, когда за деревьями леса не видно, потому я и решил собрать воедино всю эту информацию в одной короткой статье, так сказать для закрепления материала.

Vulkan API. Memory Barriers and Implicit Ordering Guarantees.

Вот я и добрался до последней главы раздела "Synchronization and Cache Control", перевод этого раздела оказался достаточно "стремным", как вообщем-то и текст оригинала. После этой статьи я приведу еще одну итоговую, где постараюсь в сжатом виде пересказать содержание последних серий, ну а пока - Memory Barriers и Implicit Ordering Guarantees.