Refine environment surfaces and skyline haze
This commit is contained in:
1 parent
d7220c1a0a
commit
fb3da52438
8 files changed
+91
-22
No files matched your search
@@ -62,6 +62,18 @@ const SHOTS_JOKE_DAY := [
|
||||
const SHOTS_STUDIO := [
|
||||
{"name": "studio_door", "pos": Vector3(0, 0.1, 6.2), "yaw": 0.0, "pitch": 2.0},
|
||||
]
|
||||
## Surface close-ups for the 0.9.5 texture audit; HUD is hidden for this stage.
|
||||
const SHOTS_SURFACES := [
|
||||
{"name": "surface_pavers", "pos": Vector3(0, 0.1, 10.5), "yaw": 0.0, "pitch": -55.0},
|
||||
{"name": "surface_asphalt", "pos": Vector3(0, 0.1, 14.0), "yaw": 180.0, "pitch": -42.0},
|
||||
{"name": "surface_limestone", "pos": Vector3(0, 0.1, 2.0), "yaw": 0.0, "pitch": 8.0},
|
||||
{"name": "surface_facade_wide", "pos": Vector3(-2.0, 0.1, 13.2), "yaw": 12.0, "pitch": 20.0},
|
||||
]
|
||||
const SHOTS_SURFACES_JOKE := [
|
||||
{"name": "surface_awning", "pos": Vector3(-22.6, 0.1, 2.6), "yaw": 0.0, "pitch": 14.0},
|
||||
{"name": "surface_canopy", "pos": Vector3(0, 0.1, 7.5), "yaw": 0.0, "pitch": 24.0},
|
||||
{"name": "surface_pavers_joke", "pos": Vector3(0, 0.1, 10.0), "yaw": 0.0, "pitch": -55.0},
|
||||
]
|
||||
## A face-on portrait: staged relative to a live NPC by `_stage_portrait()`.
|
||||
const SHOTS_PORTRAIT := [
|
||||
{"name": "npc_portrait", "pos": Vector3.ZERO, "yaw": 0.0, "pitch": 0.0,
|
||||
@@ -70,6 +82,8 @@ const SHOTS_PORTRAIT := [
|
||||
## Stage list: shift time selects the phase, `venue` switches the scenario first.
|
||||
const STAGES := [
|
||||
{"name": "day", "elapsed": 0.0, "venue": "", "shots": SHOTS_DAY, "night": false},
|
||||
{"name": "surfaces", "elapsed": 0.0, "venue": "", "shots": SHOTS_SURFACES, "night": false},
|
||||
{"name": "surfaces_joke", "elapsed": 0.0, "venue": "joke_shop", "shots": SHOTS_SURFACES_JOKE, "night": false},
|
||||
# Portrait next, while the day crowd is still on the street.
|
||||
{"name": "portrait", "elapsed": 0.0, "venue": "", "shots": SHOTS_PORTRAIT,
|
||||
"night": false},
|
||||
@@ -182,6 +196,7 @@ func _begin_stage() -> void:
|
||||
gm.hud.clear_log()
|
||||
gm.hud.set_target_label("")
|
||||
gm.hud.set_action_hint("")
|
||||
gm.hud.visible = not str(stage["name"]).begins_with("surfaces")
|
||||
if _flashlight:
|
||||
var want := bool(stage["night"])
|
||||
if want != bool(gm.flashlight_on):
|
||||
|
||||
@@ -113,8 +113,13 @@ func test_hollywood_uses_the_real_landmark_layout() -> bool:
|
||||
var banners := root.find_child("EventBanners", true, false)
|
||||
var d := TestUtils.check(banners != null and banners.get_child_count() >= 9,
|
||||
"three red event banners with their trim are present")
|
||||
var e := TestUtils.check(root.find_child("WalkOfFame", true, false) != null,
|
||||
"the Hollywood Walk of Fame strip is built")
|
||||
var walk := root.find_child("WalkOfFame", true, false)
|
||||
var walk_band := walk.get_child(0) as MeshInstance3D if walk != null else null
|
||||
var walk_material: Material = walk_band.mesh.surface_get_material(0) if walk_band != null else null
|
||||
var e := TestUtils.check(walk != null and walk_material != null
|
||||
and walk_material is StandardMaterial3D
|
||||
and (walk_material as StandardMaterial3D).albedo_texture != null,
|
||||
"the Hollywood Walk of Fame strip is built with the terrazzo texture")
|
||||
var f := TestUtils.check(root.get_node_or_null("NeighbourBlocks/ElCapitanTheatre") != null
|
||||
and root.get_node_or_null("NeighbourBlocks/EastRetailBlock") != null,
|
||||
"the El Capitan Theatre and east retail neighbours are built")
|
||||
@@ -260,8 +265,12 @@ func test_skyline_backdrop_uses_alpha() -> bool:
|
||||
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 c := TestUtils.check(code.contains("ALPHA") and code.contains("fog_disabled")
|
||||
and code.contains("haze_strength"),
|
||||
"backdrop shader is alpha-scissored, fog-free and haze-blended")
|
||||
var haze := float(mat.get_shader_parameter("haze_strength")) if mat != null else 0.0
|
||||
var c2 := TestUtils.check(haze > 0.0, "skyline haze is enabled")
|
||||
c = c and c2
|
||||
var day: Texture2D = mat.get_shader_parameter("sky_texture")
|
||||
builder.set_phase(Rules.Phase.LATE)
|
||||
var night: Texture2D = mat.get_shader_parameter("sky_texture")
|
||||
|
||||
Reference in new issue
Block a user