TGViewer
Meshgun Meshgun @meshgun_gd · 169 subscribers
Post #435 449
Чтобы нарисовать меш в традиционном-пайплайне, нужно привязать вершинный буфер. Если двум объектам нужны разные меши, придётся дважды вызвать bind + draw. На сложных сценах для минимизации дроуколлов приходится городить батчинг.


Указатели в шейдерах открывают более эффективные способы работать с вершинами.

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

Теперь самое интересное: помимо матрицы в каждый инстанс нужно записать указатель (DeviceAddress: u64) на соответствующий буфер вершин. Указатель на буфер с инстансами можно передать через пуш константы.

Это позволит нарисовать любое количество патчей за один cmdDrawIndexed. А если террейн не просто огромный, а условно-бесконечный, можно легко организовать стриминг (с диска или генерить на лету), ведь патчи лежат в независимых друг от друга буферах.

Никаких дескрипторов, меньше вызовов в драйвер и CPU-процессинга.
  • 🔥 7
  • ❤ 1
  • 🍓 1
  • 🤓 1
More from @meshgun_gd
  1. Sep 21, 2026Все выходные играл в The Legend of California. Не знал, что именно такой игры мне сильно н…
  2. Sep 12, 2026В последнее время делаю все диздоки в одностраничном формате. Структуру позаимствовал у ар…
  3. Aug 12, 2026RTX On API для сетапа конечно более многословный, чем хотелось бы. AccelerationStructureGe…
  4. Aug 7, 2026Блендер на выживание 👀 Жду, когда появится "напиши шейдер за минуту, чтобы спрятаться".
  5. Aug 6, 2026Убийца DaVinci ☠️🪦
  6. Jul 24, 2026Я вспомнил пароль от ютуба. Зачем нужны атомики, что такое барьеры и как собирать замеры с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →