aboutsummaryrefslogtreecommitdiff
path: root/docs/rendering
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-09-06 04:22:12 +0300
committerValentin Popov <valentin@popov.link>2026-09-06 04:22:12 +0300
commitaa51f3574d3d4d4e0fa59653eedd718fceb5d1bd (patch)
tree9a43f6a3f3c86767e4e2b7316051562d96789f06 /docs/rendering
parentda03e77f53bb33b2fe203ac45578289953a1b524 (diff)
downloadfparkan-aa51f3574d3d4d4e0fa59653eedd718fceb5d1bd.tar.xz
fparkan-aa51f3574d3d4d4e0fa59653eedd718fceb5d1bd.zip
chore: simplify project to engine docs and tests
Remove planning and acceptance scaffolding while retaining the native Vulkan mission preview, format readers, runtime algorithms, and ordinary Rust tests. Keep the book aligned with the runnable project and validate checked-in shaders without generated tool metadata.
Diffstat (limited to 'docs/rendering')
-rw-r--r--docs/rendering/renderer_truth_table.md51
1 files changed, 0 insertions, 51 deletions
diff --git a/docs/rendering/renderer_truth_table.md b/docs/rendering/renderer_truth_table.md
deleted file mode 100644
index 2687bd4..0000000
--- a/docs/rendering/renderer_truth_table.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# Renderer Truth Table
-
-Эта страница нужна для одной вещи: не позволять путям smoke, planning и capture
-выглядеть как «почти готовый renderer». Каждый путь доказывает разный класс
-свойств, и acceptance не должен смешивать их.
-
-## Краткая матрица
-
-| Path | Native window / swapchain | Draws pixels | Uses original assets | Acceptance class | Что доказывает | Чего не доказывает |
-| --- | --- | --- | --- | --- | --- | --- |
-| `fparkan-vulkan-smoke` / `VulkanSmokeRenderer` | Yes | Yes | Static MSH plus sampled TEXM | `covered-gpu` for Stage 0 smoke and explicit MSH/TEXM/descriptor bridge IDs | Loader, instance, surface, swapchain, submit/present, validation-clean triangle path; original MSH indexed draw; TEXM RGBA8 staging upload; per-batch WEAR/MAT0 diffuse descriptors and fragment sampling | MAT0 phase animation, lightmaps, legacy blend/depth/cull states, terrain, camera/node transforms, gameplay rendering |
-| `VulkanPlanningBackend` | No | No | Optional CPU-side IDs only | `covered-planning` | Deterministic command validation, canonical capture, frame submission planning | Любой live GPU draw, pixel parity, validation-clean asset frame |
-| `RecordingBackend` | No | No | Optional CPU-side IDs only | `covered-planning` | Stable command capture for backend-neutral tests | Native window, Vulkan, GPU resource lifetime, pixels |
-| `NullBackend` | No | No | Optional CPU-side IDs only | Usually `covered` for validation-only rows | Command stream framing and bounds validation | Capture stability, GPU execution, pixels |
-| `VulkanAssetRenderer` | Yes | Yes | Yes | `covered-gpu` | Static original asset rendering: MSH/Texm/WEAR/MAT0/terrain through Vulkan | Animation/FX parity unless explicitly wired |
-| `fparkan-game --backend static-vulkan` | Yes, GOG `Autodemo.00` | Yes, full static AutoDemo preview | Eight mission objects, 66 MSH components, original diffuse TEXM and Land2 terrain base layer | `covered-gpu` for the bounded static-scene bridge | Diagnostic XY framing with recovered translation/scale/Z Euler placement, fallback node hierarchy, optional captured legacy camera, 32-bit GPU indices, diffuse descriptors, terrain base draws and synchronized teardown telemetry | Material phases, Land1 blend/microtexture/lightmaps, animated keys, FX, camera control and gameplay parity |
-| Future rendered `fparkan-game` mode | Yes | Yes | Yes | `covered-gpu` plus original-evidence IDs | Mission-driven render snapshot execution and pixel capture | Original-runtime parity for animation/FX/x87 without dedicated captures |
-
-## Rules
-
-1. IDs со смыслом `VK`, `GPU`, `DRAW`, `PIXEL`, `VALIDATION` или `RENDERED`
- на Stage 3+ не могут закрываться через `NullBackend`, `RecordingBackend`
- или `VulkanPlanningBackend`.
-2. `covered-planning` означает command planning/capture evidence. Этот статус
- никогда не считается доказательством draw пикселей.
-3. `covered-stub` зарезервирован для явно помеченных `STUB` acceptance rows и
- не считается compatibility closure для FX lifecycle.
-4. `covered-gpu` требует live native handles, реальный draw path и связанный
- renderer artifact: report, capture или approved pixel.
-
-## Current repository status
-
-- Реальный Vulkan в репозитории имеет smoke triangle path и узкий static asset bridge. `VulkanStaticDrawRange` сохраняет исходный `Batch20.material_index`; когда smoke запускается с `--wear-root`, `--wear-archive`, `--wear-name` без override, он дедуплицирует selectors, проходит каждый через `WEAR → MAT0 → Textures.lib`, создаёт по одному image/descriptor set и бинит set непосредственно перед соответствующим indexed draw. Direct TEXM и `--material-index` — намеренно однотекстурные compatibility modes. Fresh GOG `fortif.rlb::FR_L_MTP.msh` подтверждает 237 batch draws, но его selectors все `0`, поэтому live report содержит один binding `MTP_01.0`; unit contract подтверждает точное сопоставление двух разных selectors с разными descriptor sets. Это не доказывает material phase animation, lightmaps, alpha/depth/cull state, terrain, camera/node transforms или pixel approval.
-- Lightmap остаётся отдельным, не реализованным contract: оригинальный `World3D.dll` экспортирует самостоятельный `SetLightMapLib` наряду с `SetTexturesLib` и `SetMaterialLib`; WEAR содержит независимый блок `LIGHTMAPS`. Текущая документация не подтверждает связь этих slots с `Batch20.material_index` или их UV/channel semantics, поэтому viewer не подменяет lightmap diffuse texture и не добавляет недоказанное binding.
-- `apps/fparkan-game` по умолчанию выдаёт `render-planning` JSON report поверх
- synthetic window descriptor и `VulkanPlanningBackend`. Opt-in `--backend static-vulkan`
- создаёт native `winit` window. Для GOG `MISSIONS/Autodemo.00/data.tma` он уже
- рендерит весь статический набор из восьми mission objects и 66 MSH components с
- diagnostic XY camera (or an optional captured legacy camera), доказанным `Rz * Ry * Rx` placement transform,
- fallback node hierarchy и Land2 base terrain. Последний validation-clean
- текущий трёхкадровый запуск после применения placement transform в XY path
- имел 71 material descriptor, `clip_visible_vertices=75543` и readback hash
- `5444013368935681345`. Это `covered-gpu` для ограниченного
- static-scene bridge, но не pixel parity и не доказательство material phase,
- Land1 blend, microtexture, lightmap, dynamic animation, FX, live camera
- selection или gameplay rendering.
-- `apps/fparkan-viewer` сейчас inspection-only CLI и не открывает live Vulkan
- asset viewer.
-- Следующий реальный milestone для rendered acceptance: `VulkanAssetRenderer`
- с upload/draw/capture path для хотя бы одной оригинальной модели и одного
- terrain slice.