В предыдущей части мы рассмотрели простой пример использования подпрограмм и разобрались каким образом можно динамически подставлять разные подпрограммы для разных объектов. Сейчас я бы хотел разобрать более реальный пример, чтоб оценить жизнеспособность этого подхода для организации биндлесс рендера.
Разработка движка прекращена, исходные коды проекта доступны тут: http://code.google.com/p/glsnewton/
понедельник, 3 июля 2017 г.
Shader Subroutines. Часть 1. Основы.
В этот раз я бы хотел поговорить об относительно старой штуке, появившейся в далеком 2010 году, шейдерных подпрограммах (Shader Subroutines). Не смотря на то, что они в виде расширения были добавлены еще в OpenGL 3.2, о них в сети не так уж и много информации. Фактически я сумел найти всего 6 статей на эту тему и всего пару обсуждений использования этой "фичи". То ли все на столько ясно что не требуется пояснений, то ли люди не понимают/недооценивают возможности этого расширения. К слову, я относился ко второй группе людей. Не смотря на то, что я познакомился с этим расширением еще в момент его выхода, но до сегодняшнего дня я не понимал его места в проекте движка.
Давайте же вместе попробуем разобраться с этим.
Давайте же вместе попробуем разобраться с этим.
воскресенье, 17 апреля 2016 г.
Delphi и Vulkan, первое знакомство.
Не так давно мне в этом блоге напомнили о существовании давно забытой мной GLScene.
Как оказалось - все еще есть энтузиасты, пытающиеся вдохнуть жизнь в этот продукт, даже портировать ее на Vulkan. Могу только пожелать успеха ребятам в этом нелегком деле, надеюсь у них получится то, что не удалось когда-то нашей команде :)
Но история о другом, портирование GLScene на Vulkan началось с портирования заголовочных файлов, а это уже достаточно чтоб попробовать там что-то сделать, да и приятно было вернуться на Делфи, после нескольких лет разработки на С++. Вообщем вот что из этого получилось...
Как оказалось - все еще есть энтузиасты, пытающиеся вдохнуть жизнь в этот продукт, даже портировать ее на Vulkan. Могу только пожелать успеха ребятам в этом нелегком деле, надеюсь у них получится то, что не удалось когда-то нашей команде :)
Но история о другом, портирование GLScene на Vulkan началось с портирования заголовочных файлов, а это уже достаточно чтоб попробовать там что-то сделать, да и приятно было вернуться на Делфи, после нескольких лет разработки на С++. Вообщем вот что из этого получилось...
среда, 23 марта 2016 г.
Vulkan API, Framebuffers
Ну и предлагаю вам почитать превод последней части главы "Render Pass" спецификации, в которой рассказывается об еще одном фундаментальном понятии Вулкана - Framebuffers, они же буферы кадра или фреймбуферы.
понедельник, 21 марта 2016 г.
Vulkan API, Render Pass
Render Pass
Вот я и добрался до следующего болшого куска спецификации, так же имеющего важное значение для понимания фундаментальных основ Вулкана, к Render Pass и Subpass. В предыдущей статье я уже затрагивал тему Render Pass, теперь пришло время изучить спецификацию.
Ярлыки:
Render Pass,
Specification,
subpass,
Vulkan API
четверг, 17 марта 2016 г.
Vulkan, еще раз о синхронизации...
Наконец-то я закончил перевод этого здоровенного и не менее важного куска спецификации. О том, что я думаю об авторе этого раздела спецификации я уже писал много, потому я просто счастлив что это осталось позади (хотя кто знает что еще меня ждет впереди))
Написано там было очень много, о параметрах, и случаях использования, о вариантах, о тонкостях и прочем, но это тот случай, когда за деревьями леса не видно, потому я и решил собрать воедино всю эту информацию в одной короткой статье, так сказать для закрепления материала.
Ярлыки:
Barriers,
Events,
Fences,
Semaphores,
Vulkan API
Vulkan API. Memory Barriers and Implicit Ordering Guarantees.
Вот я и добрался до последней главы раздела "Synchronization and Cache Control", перевод этого раздела оказался достаточно "стремным", как вообщем-то и текст оригинала. После этой статьи я приведу еще одну итоговую, где постараюсь в сжатом виде пересказать содержание последних серий, ну а пока - Memory Barriers и Implicit Ordering Guarantees.
Ярлыки:
Barriers,
Buffer Memory Barriers,
Global Memory Barriers,
Image Memory Barriers,
Implicit Ordering Guarantees,
Specification,
Vulkan API
Подписаться на:
Комментарии (Atom)