diff options
| author | Valentin Popov <valentin@popov.link> | 2026-11-01 01:13:31 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-11-01 01:13:31 +0300 |
| commit | 2de24962e01ee48dd11eaf64edb75ef3958e71d8 (patch) | |
| tree | dea4dbca8f6d5639a811afa78f330d2bf3129cc9 | |
| parent | 15aadf7f47b608d4990d2c981e451a7af3ae2cee (diff) | |
| download | fparkan-2de24962e01ee48dd11eaf64edb75ef3958e71d8.tar.xz fparkan-2de24962e01ee48dd11eaf64edb75ef3958e71d8.zip | |
chore(render): expose unverified special terrain passes
| -rw-r--r-- | apps/fparkan-game/src/main.rs | 6 | ||||
| -rw-r--r-- | docs/appendices/knowledge-boundaries.md | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/apps/fparkan-game/src/main.rs b/apps/fparkan-game/src/main.rs index bbf9ead..3432bda 100644 --- a/apps/fparkan-game/src/main.rs +++ b/apps/fparkan-game/src/main.rs @@ -8001,6 +8001,12 @@ fn static_preview_mesh_and_materials( let mut terrain_material_loader = StandaloneWearMaterialLoader::new(root); let source_terrain_component = project_land_msh_to_static_mesh_in_world_space(terrain_mesh) .map_err(|err| format!("project mission terrain for Vulkan: {err}"))?; + let unverified_special_faces = terrain_mesh + .faces + .iter() + .filter(|face| face.flags.0 & 8 != 0) + .count(); + eprintln!("render_coverage terrain_face8_pipeline_unverified={unverified_special_faces} (source faces across LODs use the ordinary terrain shader; native special pass and reflection/EMBM mapping pending)"); let footprint_sources = mission_basement_footprints(assets, roots)?; let foundation = if footprint_sources.is_empty() { None diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md index 0df1e5a..70f6259 100644 --- a/docs/appendices/knowledge-boundaries.md +++ b/docs/appendices/knowledge-boundaries.md @@ -73,6 +73,10 @@ MSH-запрос со свободной preview-камерой; это не пÐ среде, перехватить DirectDraw/Direct3D calls и surface flips, сохранить state log на минимальных сценах с одним типом материала. +Полигоны Land.msh с флагом `0x8` пока используют обычный terrain shader; их исходные записи во всех LOD считает `terrain_face8_pipeline_unverified`. +На водоёме «Конструктора» берег близок к оригиналу, а поверхность воды слишком светлая; точные special-pass, UV и combiner остаются открытыми. +В GOG Terrain.dll подтверждена отдельная камера `REFLECTION`/`REFLECTION_SHIFTED` (инициализация RVA `0x13CF0`, render RVA `0x4EFF0`); Vulkan-проход отражения пока отсутствует. + ## FXID field-level semantics Control Op1 пока использует цвет и радиус без случайных добавок команды; |
