47 lines
2.1 KiB
Markdown
47 lines
2.1 KiB
Markdown
# OpenVistaPro
|
|
|
|
OpenVistaPro is an early-stage, open-source Rust project to build a modern landscape generator inspired by classic VistaPro.
|
|
|
|
The goal is not to redistribute or reuse proprietary VistaPro code/assets. The local `reference/` directory is intentionally ignored by git and is used only for historical/product research.
|
|
|
|
## Current status
|
|
|
|
This repository currently contains:
|
|
|
|
- A Rust binary crate scaffold.
|
|
- A first-pass knowledgebase under `docs/knowledgebase/`.
|
|
- An implementation roadmap under `docs/plans/`.
|
|
- Legal and reference-material hygiene notes under `docs/legal/` and `docs/research/`.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
cargo build
|
|
cargo test
|
|
cargo run -- info
|
|
cargo run -- scene export --output /tmp/openvistapro-default.ovp.toml
|
|
cargo run -- render --preset hill --width 256 --height 256 --output /tmp/openvistapro-hill.png
|
|
cargo run -- render --preset hill --scene /tmp/openvistapro-default.ovp.toml --width 256 --height 256 --output /tmp/openvistapro-hill-from-scene.png
|
|
cargo run -- render --preset hill --camera-demo --width 256 --height 192 --output /tmp/openvistapro-perspective.png
|
|
```
|
|
|
|
The default `render` mode writes a deterministic top-down elevation preview.
|
|
Passing `--camera-demo` switches to the current CPU perspective renderer spike:
|
|
a simple pinhole-camera raymarcher with bilinear height sampling, fixed step
|
|
size, sky gradient, and distance haze. It is intended as a readable reference
|
|
renderer for architecture validation, not a performance target or final visual
|
|
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, light, water, tree-line, snow-line, and haze
|
|
settings. The format is intentionally human-readable while the data model is
|
|
still evolving.
|
|
|
|
## Project principles
|
|
|
|
- Clean-room implementation: do not decompile, copy, or translate proprietary binaries.
|
|
- Use open data formats and openly licensed datasets.
|
|
- Preserve the spirit/workflow of VistaPro while designing a modern UX and renderer.
|
|
- Start with a small, testable terrain engine before building advanced rendering or UI.
|