75 lines
3.7 KiB
Markdown
75 lines
3.7 KiB
Markdown
# Feature Inventory
|
|
|
|
This is a first-pass inventory from the VistaPro 2/3 manuals, MakePath guide, screenshots, and public descriptions.
|
|
|
|
## Terrain sources
|
|
|
|
- VistaPro landscape files.
|
|
- USGS DEM elevation data.
|
|
- NASA/planetary or other gridded elevation datasets.
|
|
- Fractal landscape generation.
|
|
- User-supplied two-dimensional integer height arrays, up to historical limits around 1024x1024.
|
|
|
|
## Scene controls
|
|
|
|
- Camera and target X/Y/Z positioning.
|
|
- Lens/range controls.
|
|
- Bank, heading, and pitch.
|
|
- Sea level and water planes.
|
|
- Lake and river controls.
|
|
- Timber/tree line, tree drawing, and tree density.
|
|
- Snow line.
|
|
- Haze/fog distance.
|
|
- Sky/stars options.
|
|
- Light direction and custom lighting.
|
|
- Vertical exaggeration.
|
|
- Color maps/palettes.
|
|
- Texture image loading, including PCX in the Windows manual.
|
|
|
|
## Rendering and quality
|
|
|
|
- Wire/topographic preview workflow.
|
|
- Progressive/final render action.
|
|
- Quality menu/settings for smoothing/detail/performance tradeoffs.
|
|
- Save rendered images; historical formats included IFF/IFF24/RGB on Amiga and PC-era formats on Windows.
|
|
- 24-bit output was a differentiator in user examples.
|
|
|
|
## Scripting and animation
|
|
|
|
- Script files list camera/target positions and commands.
|
|
- Scripts are landscape-independent enough to rerun against different terrain/settings.
|
|
- Commands include camera coordinates, vertical scale, and render actions.
|
|
- VistaPro could generate simple linear camera-to-target paths.
|
|
- MakePath Flight Director created spline paths over a topographic map and exported VistaPro scripts.
|
|
- MakePath vehicle models included jet, glider, dune buggy, motorcycle, helicopter, cruise missile, and custom vehicles.
|
|
|
|
## UI surfaces observed in screenshots
|
|
|
|
- Main workspace with topographic map/preview on the left and dense control panels on the right.
|
|
- Pull-down menus: Project, Load, Save, Exp/Imp, Script, Image, Quality, and related dialogs.
|
|
- File dialogs and confirmation/progress dialogs.
|
|
- Numeric/text gadgets for direct value editing.
|
|
- Multiple lower control panels for color-map/palette editing, fractal settings, lighting, and scene/environment settings.
|
|
- Color-map editor with vertical channel/range sliders and palette swatches.
|
|
- Map/radar-like view for camera/target placement.
|
|
|
|
## Normalized UI panel map
|
|
|
|
- Viewport / preview: the central render surface. Today this is the egui `CentralPanel` preview in `src/app.rs`.
|
|
- Terrain / import: terrain source selection and generated-terrain presets. Today this is only a small preset selector; legacy import UI is still absent.
|
|
- Scene / camera: camera, target, water, tree line, snow line, haze, and related controls. Today the app has position/target plus the scene-band sliders.
|
|
- Render: preview vs final render and render-quality choices. Today only the top-down vs perspective switch exists.
|
|
- Scripts / paths: script menu, animation frames, and MakePath-style path generation. Today this is planned only.
|
|
- File / project actions: load/save/open/export and scene-file operations. Today this is planned only, with a loaded-scene path tracked internally.
|
|
- Status / feedback: live readouts, progress, and current file/scene state. Today this is planned only.
|
|
- Deferred features / legacy compatibility: menus, dialogs, palette editing, advanced lighting, hydrology, vertical exaggeration, and legacy export formats. Today these remain future work.
|
|
|
|
## Modernization opportunities
|
|
|
|
- Replace dense fixed control panels with an immediate-mode or dockable UI shell.
|
|
- Use modern terrain formats: GeoTIFF/COG, DEM, HGT/SRTM, PNG/RAW heightmaps.
|
|
- Use WGPU for cross-platform rendering.
|
|
- Add reproducible scene files in human-readable formats such as RON/TOML/JSON.
|
|
- Provide CLI rendering for tests and batch workflows.
|
|
- Keep compatibility import/export separate from the clean internal model.
|