58 lines
3.8 KiB
Markdown
58 lines
3.8 KiB
Markdown
# Editor Sample Regression Pack
|
|
|
|
The editor sample regression pack is the committed, deterministic first stop for content and native
|
|
viewport QA. Its source of truth is `assets/samples/editor_samples.ron`; manifest order is also the
|
|
order shown by **File > Open Sample** and by headless reports.
|
|
|
|
## Open And Exercise A Sample
|
|
|
|
1. Open **File > Open Sample** and choose the relevant area.
|
|
2. Confirm the scene opens in a normal scene tab and the viewport contains the expected anchors.
|
|
3. Perform the checks listed in the manifest and the table below.
|
|
4. Watch the status strip and Diagnostics panel for missing references, hydration failures, or
|
|
operator errors.
|
|
5. Use **Save As** before destructive experimentation. The committed samples are regular project
|
|
scenes, not disposable or read-only copies.
|
|
|
|
An invalid or unavailable manifest leaves an actionable disabled item in the menu. It must not
|
|
silently fall back to another scene.
|
|
|
|
## Pack Contents
|
|
|
|
| Area | Scene and visual composition | Representative checks |
|
|
|------|------------------------------|-----------------------|
|
|
| Brush | `brush_blockout.scn.ron`: broad concrete foundation, tall additive brush with a contrasting shared-material top face, red rotated subtractive marker | Select object and face targets; enter brush edit; exercise draw/clip/CSG preview and cancel; verify shared face material resolution |
|
|
| Material | `material_lab.scn.ron`: neutral floor, concrete cube, blue custom-surface sphere, rotated Material Instance block, cyan emissive backdrop | Inspect shared Material/Instance paths; target a primitive with a Material drop; compare standard, custom, and emissive hydration |
|
|
| Terrain | `terrain_authoring_showcase.scn.ron`: asymmetric 5x5 hill, four deterministic chunks, two painted shared-material layers | Sculpt and paint preview/cancel; inspect normalized weights and layer refs; verify generated selection and collider state |
|
|
| Physics Placement | `physics_placement_showcase.scn.ron`: cuboid, sphere, and tall capsule above a static floor | Multi-select all three props; settle; cancel and compare exact starting transforms; repeat, commit, undo, and redo as one group |
|
|
| Rendering | `rendering_showcase.scn.ron`: red sphere, cyan cube, amber block, emissive horizon, and three adjacent vignette/fog/exposure volumes | Move the camera through all zones; inspect active-volume ownership; verify profile/fullscreen-effect refs and visible transitions |
|
|
|
|
All authored sample actors have stable `ActorId` values. Generated hydration children are deliberately
|
|
absent from the committed scene documents.
|
|
|
|
## Headless Validation
|
|
|
|
Run both gates from the project root with Git LFS content hydrated:
|
|
|
|
```bash
|
|
cargo validate-levels --project .
|
|
cargo validate-samples --project .
|
|
```
|
|
|
|
`validate-levels` remains the authoritative project dependency/finding report. `validate-samples`
|
|
adds the pack contract: schema and safe paths, exactly one entry per required area, stable actor IDs,
|
|
authoring-only scene data, required area components, and nonempty operator checks. Either command
|
|
must exit nonzero on a blocking finding. Use `--json` when attaching machine-readable evidence.
|
|
|
|
## Maintenance Contract
|
|
|
|
- Keep exactly the five areas `Brush`, `Material`, `Terrain`, `PhysicsPlacement`, and `Rendering`.
|
|
- Treat manifest IDs as persistent automation keys; rename labels instead of IDs.
|
|
- Keep scene paths project-relative, inside `assets/levels/`, and free of symlink or traversal escapes.
|
|
- When a sample changes, update its manifest summary/checks and this visual-composition table in the
|
|
same change.
|
|
- Run the typed no-GPU scene test plus both validation commands before native QA.
|
|
- Record exact-commit native results under
|
|
[evaluations/sample-regression-pack/](evaluations/sample-regression-pack/). Implementation checks
|
|
from a dirty worktree do not satisfy release-candidate acceptance.
|