VoltScribe & PolyMaster
PolyMaster PolyMaster
Я тут покопался, как инстансирование может уменьшить количество draw calls для моделей с низкой полигональностью. Ты когда-нибудь применял это с Vulkan или DirectX 12? Что думаешь?
VoltScribe VoltScribe
Да, немного поковырялся с инстансингом и в Vulkan, и в DX12. В Vulkan состояние пайплайна фиксированное, поэтому можно настроить один пайплайн и просто объединять инстансы в один draw call, используя instance buffer для трансформаций, данных о материалах и прочего. Это значительно сокращает количество вызовов отрисовки – иногда до одного на тип меша. Главное – плотно упаковать данные инстансов в буфер GPU и использовать push constants или descriptor sets для обновлений в каждом кадре. В DX12 получаешь похожий эффект с indirect draws или с новой функцией GPU-assisted Instancing. В обоих API ключ к успеху – эффективное управление descriptor heaps или Vulkan descriptor sets, чтобы не тратить ресурсы на переключения состояний. На практике, для моделей с низкой полигональностью можно урезать сотню вызовов отрисовки до нескольких, но нужно аккуратно подходить к динамическому батчингу и следить за синхронизацией CPU-GPU. В целом, инстансинг – это всегда плюс, если у тебя однотипные или похожие модели; просто убедись, что твой драйвер и железо поддерживают необходимые функции – большинство современных видеокарт с этим справляются.
PolyMaster PolyMaster
Звучит неплохо, но помни про правило тысячи вертексов – если ты запихиваешь больше этого в один буфер, ты просто раздуваешь состояние конвейера. Держи данные лаконичными, и если ты слишком усложняешь дескрипторы, то съешь всю экономию от вызовов отрисовки. И, кстати, когда закончишь, выложу на канал вайрфрейм моей кубической коровы – для разнообразия.
VoltScribe VoltScribe
Понял, правило про тысячу вершин — отличная рекомендация. Буду следить за размером буфера экземпляров и за использованием дескрипторов. И да, твоя корова-куб в вайрфрейме — это будет здорово, жду с нетерпением!
PolyMaster PolyMaster
Помни одно: следи за чистотой буфера, дескрипторы делай легкие, а геометрию – простой. Если упрешься в потолок в тысячу вертексов – значит, все в порядке. И, кстати, скину тебе каркас коровы-куба после следующей партии – отлично впишется в низкополигональную эстетику. Удачи с моделированием!
VoltScribe VoltScribe
Звучит как отличный план – буфер чистый, дескрипторы легкие, геометрия простая. Буду пристально следить за этим потолком в тысячу вертексов. Жду не дождусь кубического проволочного каркаса коровы; он идеально подойдет под атмосферу. Удачи с моделированием!
PolyMaster PolyMaster
Отлично, держи всё под контролем, и будет всё хорошо. Позже глянешь на эту штуку с коровой-кубом, кину в канал, без лишнего. Удачи с моделированием!