Rename vg-csg to CultGeometry CSG
This commit is contained in:
parent
a3197f4139
commit
b476a05eb5
15 changed files with 155 additions and 49 deletions
|
|
@ -8,7 +8,7 @@ Run our current kernel:
|
|||
.\tools\run_csg_perf.ps1
|
||||
```
|
||||
|
||||
The script builds `vg_csg` in release mode and writes JSONL to
|
||||
The script builds `gamecult-geometry-csg` in release mode and writes JSONL to
|
||||
`experiments/generated/csg-perf-latest.jsonl`. Each record carries:
|
||||
|
||||
- `kernel`
|
||||
|
|
@ -19,7 +19,7 @@ The script builds `vg_csg` in release mode and writes JSONL to
|
|||
- emitted triangle, fragment, and warning counts
|
||||
- demand-frontier `candidate_pairs` and `rejected_pairs`
|
||||
|
||||
The `vg_csg` fixture measures:
|
||||
The CultGeometry CSG fixture measures:
|
||||
|
||||
- `stable`: cached output after warmup
|
||||
- `dirty`: full rebuild through the current ordered assembler
|
||||
|
|
@ -47,7 +47,7 @@ still rebuild.
|
|||
The same wrapper can append reference timings:
|
||||
|
||||
```powershell
|
||||
$env:VIBEGEOMETRY_REFERENCE_CSG_PERF = "path\to\reference-perf.exe"
|
||||
$env:GAMECULT_GEOMETRY_CSG_REFERENCE_PERF = "path\to\reference-perf.exe"
|
||||
.\tools\run_csg_perf.ps1
|
||||
```
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ inside/outside/aligned/reverse-aligned categories, crossing polygon splits, and
|
|||
logical routing tables. Use it as readable doctrine. Use the native bridge as
|
||||
the performance target.
|
||||
|
||||
`vg_csg` now reports the first demand-frontier counters. These are not yet a
|
||||
CultGeometry CSG reports the first demand-frontier counters. These are not yet a
|
||||
new kernel path; they expose the ordered brush stream as affected source/operator
|
||||
pairs and rejected bounds pairs so future router/index work can prove it is
|
||||
refusing real work rather than merely rearranging it.
|
||||
|
|
|
|||
|
|
@ -41,14 +41,14 @@ to Bevy render assets.
|
|||
|
||||
## Current Port Shape
|
||||
|
||||
`vg-csg` is the first lean Rust organ.
|
||||
CultGeometry CSG is the lean Rust CSG organ.
|
||||
|
||||
It uses `bevy_math` for `Vec3`, `Vec2`, and Bevy-compatible spatial types while
|
||||
keeping output as simple arrays:
|
||||
|
||||
```rust
|
||||
use bevy_math::Vec3;
|
||||
use vg_csg::{LevelDsl, MaterialId};
|
||||
use gamecult_geometry_csg::{LevelDsl, MaterialId};
|
||||
|
||||
let mut level = LevelDsl::new();
|
||||
level.solid_box(
|
||||
|
|
@ -109,7 +109,7 @@ level script can mix hard architectural cuts with habitat-specific forms:
|
|||
```rust
|
||||
level.dome_cap_z(
|
||||
"city dome",
|
||||
vg_csg::DomeCapZSpec {
|
||||
gamecult_geometry_csg::DomeCapZSpec {
|
||||
center: Vec3::ZERO,
|
||||
radius: 20.0,
|
||||
height: 8.0,
|
||||
|
|
@ -120,7 +120,7 @@ level.dome_cap_z(
|
|||
);
|
||||
level.floret_arm(
|
||||
"radiator petal",
|
||||
vg_csg::FloretArmSpec {
|
||||
gamecult_geometry_csg::FloretArmSpec {
|
||||
anchor: Vec3::new(20.0, 0.0, 0.2),
|
||||
direction: Vec3::X,
|
||||
length: 120.0,
|
||||
|
|
@ -188,7 +188,7 @@ slot for a public-demo/reference harness when one is available.
|
|||
|
||||
## Limits
|
||||
|
||||
`vg_csg` is not yet a full RealtimeCSG replacement.
|
||||
CultGeometry CSG is not yet a full RealtimeCSG replacement.
|
||||
|
||||
- subtractive convex support currently covers axis-aligned and oriented boxes
|
||||
- non-box subtractors are reported and ignored
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ CSG tree, and emits the pieces that remain visible. It does not treat the final
|
|||
mesh as the authority. The brush tree is the authority; the mesh is cache and
|
||||
evidence.
|
||||
|
||||
The highest-value shift for `vg_csg` is therefore:
|
||||
The highest-value shift for CultGeometry CSG is therefore:
|
||||
|
||||
```text
|
||||
from: subtract cutter -> produce new convex fragments -> triangulate fragments
|
||||
|
|
@ -63,7 +63,7 @@ A brush should be authored and cached as a set of planes, not merely as a
|
|||
triangle soup. Brush mesh creation is the act of finding valid intersections
|
||||
between those planes and linking the resulting topology.
|
||||
|
||||
Implication for `vg_csg`: add a `ConvexBrush` authored by planes, then derive
|
||||
Implication for CultGeometry CSG: add a `ConvexBrush` authored by planes, then derive
|
||||
polygons, half-edges, bounds, and render buffers from that. Boxes, cylinders,
|
||||
wedges, stairs, panels, and dome approximations should become constructors for
|
||||
plane sets where possible.
|
||||
|
|
@ -120,7 +120,7 @@ Top-level output policy:
|
|||
- overlapping coplanar surfaces are resolved by tree/order policy so duplicate
|
||||
faces do not z-fight
|
||||
|
||||
Implication for `vg_csg`: material propagation should be natural if source
|
||||
Implication for CultGeometry CSG: material propagation should be natural if source
|
||||
polygons remain source polygons. Generated cut faces need explicit policy:
|
||||
inherit cutter material, source material, or a domain material such as "raw
|
||||
concrete cut." Do not leave that as accidental array order.
|
||||
|
|
@ -138,7 +138,7 @@ allow early-outs before cutting:
|
|||
The optimization post reports a major speedup from branch-specific bounds
|
||||
checks alone. This is not a garnish. Bounds are semantic gates.
|
||||
|
||||
Implication for `vg_csg`: every brush, polygon batch, and branch needs cheap
|
||||
Implication for CultGeometry CSG: every brush, polygon batch, and branch needs cheap
|
||||
bounds. Later BVH, hashed grid, or sweep-and-prune should be measured against
|
||||
the built-in tree culling instead of assumed superior by vibes in a lab coat.
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ sampled many times. Dreams' prototype refined frustum cells, shortened object
|
|||
lists as cells split, then switched to per-pixel sorted lists that could truncate
|
||||
at the first solid hit.
|
||||
|
||||
For `vg_csg`, that translates to consumer-shaped query frontiers:
|
||||
For CultGeometry CSG, that translates to consumer-shaped query frontiers:
|
||||
|
||||
- dirty brush movement asks for affected brush pairs, not a world rebuild;
|
||||
- branch evaluation asks for left/right bounds gates before polygon tests;
|
||||
|
|
@ -242,7 +242,7 @@ Use procedural fields and meshes for:
|
|||
The level DSL should let these coexist. Boolean nodes cut space; procedural
|
||||
nodes grow matter and detail around that space.
|
||||
|
||||
## Implementation Target For `vg_csg`
|
||||
## Implementation Target For CultGeometry CSG
|
||||
|
||||
Near-term kernel shape:
|
||||
|
||||
|
|
@ -269,7 +269,7 @@ Process brush:
|
|||
emit visible pieces into render mesh
|
||||
```
|
||||
|
||||
`vg_csg` now exposes the first version of that public tree surface:
|
||||
CultGeometry CSG exposes the first version of that public tree surface:
|
||||
|
||||
- `CsgOperationType::{Additive, Subtractive, Intersecting}` with parity-tested
|
||||
ordinals matching the public API
|
||||
|
|
@ -285,7 +285,7 @@ backend grows into the category router.
|
|||
|
||||
Algorithm migration steps:
|
||||
|
||||
1. Add polygon categories and visible/reversed flags to `vg_csg`.
|
||||
1. Add polygon categories and visible/reversed flags to CultGeometry CSG.
|
||||
2. Add plane-set brush construction independent of `Aabb`.
|
||||
3. Add a topology arena with vertices, directed edges, polygons, and polygon
|
||||
plane/material ids.
|
||||
|
|
@ -303,7 +303,7 @@ Algorithm migration steps:
|
|||
|
||||
## Acceptance Tests To Add
|
||||
|
||||
- Where `vg_csg` exposes the same behavior as public RealtimeCSG/demo APIs,
|
||||
- Where CultGeometry CSG exposes the same behavior as public RealtimeCSG/demo APIs,
|
||||
maintain exact observable parity fixtures. These should compare public
|
||||
behavior such as category vocabulary, brush plane/polygon counts, split
|
||||
counts, visible/reversed semantics, bounds early-outs, and mesh output
|
||||
|
|
|
|||
Loading…
Reference in a new issue