Skip to content

Visual: replace spike clumps with luminous meadow grass#66

Closed
ael-dev3 wants to merge 1 commit into
mainfrom
agent/luminous-broad-grass-v3
Closed

Visual: replace spike clumps with luminous meadow grass#66
ael-dev3 wants to merge 1 commit into
mainfrom
agent/luminous-broad-grass-v3

Conversation

@ael-dev3

Copy link
Copy Markdown
Owner

Summary

This draft PR replaces the old sparse black spike clumps with bright, distributed meadow grass. It stays presentation-only and keeps the existing camera-local cache, shared ambient scheduler, interaction uniforms, and raycast/lifecycle boundaries intact.

Base and scope

  • Base: f23643c0d07e91847cadd5445a294d965ad76e1c (current main, Alpha 0.3.11)
  • Head: fc95959d3c2128c267e535a6e6cffec5aaa692ff
  • No gameplay, terrain membership, passability, resource, route, economy, or SpacetimeDB changes.
  • No deployment or merge performed.

Defect diagnosis

The previous 5/4/3 crossed-ribbon crowns shared one local root, used tall/narrow biome ranges, multiplied muted tints by a dark material base, and scaled complete geometry to zero at the active-window edge. The result read as sparse black “nose hair” instead of ground cover.

Geometry and hard budgets

Quality Blades/patch Variants Max patches Triangles/patch Max triangles Draw calls
High 9 3 7,000 27 189,000 3
Balanced 7 2 4,000 21 84,000 2
Reduced 5 1 1,200 15 18,000 1

Patch roots are deterministic, distributed in the 0.08–0.46 local disk, planted away from the exact origin, and use independent blade yaw, lean, phase, stiffness, and height.

Density and colour

  • Meadow/Lowland candidate and retention policy remains deterministic but uses broader patch radii and shorter blades.
  • Authored palettes use the requested sRGB hex values and are converted once through THREE.Color into linear storage.
  • Root/tip lift is bounded in the shader. Grass stays brighter than terrain while Heath/Ridge/Ancient Stone remain restrained.
  • Active-window edges fade fragment coverage through alpha-hash inputs; X/Z footprint is not collapsed.

Material and wind contract

  • MeshStandardMaterial, opaque depth-writing material, DoubleSide, alpha hash, optional alpha-to-coverage only when the renderer reports MSAA.
  • Coverage is interior-heavy, fades at blade edges and tips, and preserves fog/tone mapping.
  • Roots stay planted. Upper vertices combine shared world wind, patch phase, blade phase, stiffness, gust, and reduced-motion caps.
  • No new RAF, per-frame matrix writes, or per-instance animation loop.

Validation

  • tsc -b
  • vite build
  • 9 focused Vitest files, 71 tests passed (geometry, palette/material, layer, active window, Genesis determinism, scene cleanup, and quality budgets).
  • Fixed-camera rendered before/after capture is intentionally not committed; the existing rendered harness remains the follow-up visual QA surface. No private desktop paths are included.

Residual risks

Alpha-hash grain at low resolution, MSAA-dependent alpha coverage, extra variant draw calls, mobile thermal cost, Three r185 shader-hook drift, and no physical grass interaction remain explicit risks.

@ael-dev3

Copy link
Copy Markdown
Owner Author

Superseded by merged PR #72. The grass work was integrated with deterministic visual contracts and a constrained-WebGL repair that reduces active vertex attributes from 18 to 13.

@ael-dev3 ael-dev3 closed this Jul 19, 2026
@ael-dev3
ael-dev3 deleted the agent/luminous-broad-grass-v3 branch July 19, 2026 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant