Adopt the realism pass and refresh screenshots/docs
- add the v2 runtime picks: per-phase skyline panoramas, brick, sidewalk pavers, dry/wet asphalt, awning canvas, and their normal maps - add the realism tooling and evidence: tools/scene_concepts.py, capture_realism.gd, concept frames, reports/sheets, and tests - retune phase lighting/fog/exposure, add sun yaw, brighten the night glow, add the flashlight beam mesh, and rebuild the planter/tree assets - regenerate all eleven staged screenshots from the current build; compare is 11 good / 0 bad - finish the visual-alignment closeout in DONE/TODO, update architecture, blender-assets, PLAN, and ignore rules (editable Blender sources untracked) - keep the judge retry and document the verified default judge model Verification: headless 227/227; Python tooling 86/86; check_screenshots 11/11.
This commit is contained in:
1 parent
26ecb93fd4
commit
d7e523f63c
70 files changed
+4042
-101
No files matched your search
@@ -94,19 +94,28 @@ func test_steps_have_colliders() -> bool:
|
||||
return a and b and c
|
||||
|
||||
func test_skyline_backdrop_uses_alpha() -> bool:
|
||||
## The opaque skyline texture made the plane render as a black slab (TODO).
|
||||
## The old opaque skyline texture made the plane render as a black slab, and
|
||||
## the scene fog bleached the panorama into a white band. The backdrop is an
|
||||
## alpha-scissored, fog-free shader with a panorama per phase.
|
||||
var root := Node3D.new()
|
||||
var builder := WorldBuilder.new(root)
|
||||
builder.build()
|
||||
var backdrop := root.find_child("SkylineBackdrop", true, false)
|
||||
var a := TestUtils.check(backdrop != null, "SkylineBackdrop exists")
|
||||
var mat: StandardMaterial3D = builder._skyline_mat
|
||||
var b := TestUtils.check(mat != null, "skyline material captured")
|
||||
var c := TestUtils.check(
|
||||
mat != null and mat.transparency != BaseMaterial3D.TRANSPARENCY_DISABLED,
|
||||
"skyline material uses alpha, not an opaque slab")
|
||||
var mat: ShaderMaterial = builder._skyline_mat
|
||||
var b := TestUtils.check(mat != null and mat.shader != null, "skyline shader material captured")
|
||||
var code := mat.shader.code if mat != null and mat.shader != null else ""
|
||||
var c := TestUtils.check(code.contains("ALPHA") and code.contains("fog_disabled"),
|
||||
"backdrop shader is alpha-scissored and fog-free")
|
||||
var day: Texture2D = mat.get_shader_parameter("sky_texture")
|
||||
builder.set_phase(Rules.Phase.LATE)
|
||||
var night: Texture2D = mat.get_shader_parameter("sky_texture")
|
||||
var d := TestUtils.check(day != null and night != null and day != night,
|
||||
"the skyline panorama follows the shift phase")
|
||||
var e := TestUtils.check(builder._street_mat != null
|
||||
and builder._street_mat.roughness < 0.5, "the night street turns wet")
|
||||
root.free()
|
||||
return a and b and c
|
||||
return a and b and c and d and e
|
||||
|
||||
func test_door_indicator_built() -> bool:
|
||||
var root := Node3D.new()
|
||||
|
||||
Reference in new issue
Block a user