TGViewer
GameDev: разработка игр GameDev: разработка игр @make_game · 7.64K subscribers
Post #2098 356
Как один раз объявить ресурсы шейдера для C++ и пяти графических API

В движке SETech интерфейс ресурсов задают в общем заголовке, который обрабатывают и компилятор шейдеров, и C++. Это заменяет три синхронизируемых вручную сущности: объявление в шейдере, его копию в C++ и таблицу отражения. Если переименовать ресурс и не исправить обращение к нему, C++ перестанет собираться. Тихо получить непривязанную текстуру уже не выйдет.

Макросы превращаются в обычные объявления HLSL на стороне шейдера и в структуру с описателями на стороне C++. Препроцессор назначает регистры и пространства отдельно для D3D11, D3D12, Vulkan, Metal и WebGPU.

Ресурсы делятся на Fixed, PerFrame, PerBatch и PerDraw по частоте обновления. Благодаря этому движок повторно привязывает только изменившиеся группы. В техническом разборе схемы SETech есть код генерации раскладок и ограничения D3D11.
More from @make_game
  1. Sep 29, 2026Как тетраэдральные оболочки разгружают BVH у анимированной растительности В демо AMD 25 ты…
  2. Sep 29, 2026Как найти причину пропавших столкновений в Godot 4 Если CharacterBody проходит сквозь мир,…
  3. Sep 28, 2026Как выбрать хитбокс для bullet hell и отладить столкновения Спрайт и область попадания не…
  4. Sep 28, 2026Как адаптировать собственный SRP к Unity 6.5 После обновления учебного конвейера рендеринг…
  5. Sep 28, 2026Как превратить Gaussian Splat в уровень для браузерного FPS Gaussian Splat создаёт фотореа…
  6. Sep 27, 2026Как найти узкое место CPU или GPU в Unreal Engine 5.8 При 60 кадрах в секунду на кадр оста…
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 →