feat: wire vertical exaggeration through the shell #13
@@ -13,7 +13,7 @@ This repository currently contains:
|
||||
- An implementation roadmap under `docs/plans/`.
|
||||
- Legal and reference-material hygiene notes under `docs/legal/` and `docs/research/`.
|
||||
- A clean-room terrain import boundary with project-owned `ovp-text` fixtures, a PNG heightmap script importer, an SRTM/HGT byte importer behind the `hgt` Cargo feature, an ESRI ASCII Grid parser behind the `ascii-grid-import` feature, and a deterministic terrain-generation module in `src/terrain_gen.rs` with `TerrainGenerationSpec` / `DeterministicTerrainGenerator` (see `cargo test terrain_gen` and its determinism/seed note).
|
||||
- A project-owned script parser + executor in `src/script.rs` / `src/script_exec.rs`, MakePath-inspired camera path generation in `src/path.rs`, explicit camera heading/pitch/bank plus lens/range and vertical-exaggeration controls in `src/scene.rs`, and an `app` feature shell with working import/script/path/project controls in `src/app_state.rs`, `src/app.rs`, and `src/ui_shell.rs`.
|
||||
- A project-owned script parser + executor in `src/script.rs` / `src/script_exec.rs`, MakePath-inspired camera path generation in `src/path.rs`, a project-owned color-map model with editable thresholds/bands in `src/scene.rs`, and an `app` feature shell with working import/script/path/project controls in `src/app_state.rs`, `src/app.rs`, and `src/ui_shell.rs`.
|
||||
|
||||
## Development
|
||||
|
||||
@@ -66,9 +66,9 @@ model.
|
||||
Scene files use the project-owned `.ovp.toml` format. Version 1 stores a
|
||||
top-level `schema = "openvistapro.scene"`, `version = 1`, and a serialized
|
||||
`Scene` payload containing camera position/target, camera heading-pitch-bank,
|
||||
lens/FOV/clip ranges, light, water, tree-line, snow-line, and haze settings.
|
||||
The format is intentionally human-readable while the data model is still
|
||||
evolving.
|
||||
lens/FOV/clip ranges, light, water, tree-line, snow-line, haze, and the
|
||||
color-map thresholds/bands. The format is intentionally human-readable while
|
||||
the data model is still evolving.
|
||||
|
||||
## Script language (MVP)
|
||||
|
||||
|
||||
+12
-3
@@ -334,9 +334,10 @@ impl AppData {
|
||||
import_path: self.import_path.clone(),
|
||||
path_target: self.path_target.clone(),
|
||||
status_line: format!(
|
||||
"CPU preview · {} · {} · exag {:.2} · {width}×{height}",
|
||||
"CPU preview · {} · {} · {} · exag {:.2} · {width}×{height}",
|
||||
self.terrain_preset.label(),
|
||||
self.renderer_mode.label(),
|
||||
self.render_quality.label(),
|
||||
self.scene.vertical_exaggeration,
|
||||
),
|
||||
script_preview: ScriptPreview::from_source(&self.script_source),
|
||||
@@ -351,8 +352,16 @@ impl AppData {
|
||||
let grid = self.build_preview_grid()?;
|
||||
let (width, height) = self.preview_size;
|
||||
let image = match self.renderer_mode {
|
||||
RendererMode::TopDown => render_top_down(&grid, &self.scene),
|
||||
RendererMode::Perspective => render_perspective(&grid, &self.scene, width, height),
|
||||
RendererMode::TopDown => {
|
||||
render_top_down_with_quality(&grid, &self.scene, self.render_quality.preset())
|
||||
}
|
||||
RendererMode::Perspective => render_perspective_with_quality(
|
||||
&grid,
|
||||
&self.scene,
|
||||
width,
|
||||
height,
|
||||
self.render_quality.preset(),
|
||||
),
|
||||
};
|
||||
Ok(image)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user