diff options
| author | Valentin Popov <valentin@popov.link> | 2026-11-01 00:09:36 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-11-01 00:09:36 +0300 |
| commit | 5890416fd74f4868d16814bd87221370e34062db (patch) | |
| tree | e0cbc447d76907e423454b371ae735d1a4b70b47 /docs/tomes/05-render.md | |
| parent | 8fab4b44b8241ffc6450780c6590908f4406f4da (diff) | |
| download | fparkan-5890416fd74f4868d16814bd87221370e34062db.tar.xz fparkan-5890416fd74f4868d16814bd87221370e34062db.zip | |
perf(render): retain static mesh prefixes between frames
Diffstat (limited to 'docs/tomes/05-render.md')
| -rw-r--r-- | docs/tomes/05-render.md | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index 6512fef..8f9dd11 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -1151,6 +1151,21 @@ WEAR и MAT0 до объединения геометрии. Индексы GPU `u16`. Terrain передаёт в shader базовый, detail и overlay stages, lightmap и animation phase; object batches сохраняют их legacy blend/depth/alpha state. +Рельеф образует неизменяемое начало общего vertex buffer. Control-анимация, +FX и окружение обновляют следующие вершины, а новые индексы нужны только +геометрии проекционных теней в конце index buffer. Поэтому кадр записывает +лишь эти изменяемые части. При росте буфера новая память получает все данные, +включая неизменяемое начало; уменьшение числа теней не уменьшает выделенную +ёмкость. Это сохраняет номера вершин, диапазоны отрисовки и порядок проходов. + +Перед записью общих ресурсов renderer ждёт fences всех отправленных кадров. +Одного fence текущего кадрового слота недостаточно: другой кадр ещё может +читать ту же память. Ожидание всего устройства остаётся на пересоздании +swapchain, диагностическом readback и завершении работы. Загрузка изменённых +текстур пока использует отдельную синхронную transfer-команду. Строка +`render_geometry_upload` показывает записанные vertex/index bytes и объём, +который потребовался бы при полной перезаливке, без начальной загрузки. + После загрузки world path создаёт интерактивную free-flight камеру (`WASD`, `E/Q`, `Shift`, `Ctrl`, RMB relative-look), обновляет listener и на каждом кадре собирает environment frame. Для каждого отрисовываемого строения |
