Environment adapter uses portal group

This commit is contained in:
Vojtěch Struhár 2025-02-13 20:54:03 +01:00
parent cbb4b51a94
commit b67f0d9263
3 changed files with 9 additions and 5 deletions

View File

@ -63,6 +63,9 @@ var _exit_camera:Camera3D
# The number of seconds until the viewport updates its size # The number of seconds until the viewport updates its size
var _seconds_until_resize:float var _seconds_until_resize:float
func _enter_tree() -> void:
add_to_group("portals")
func _ready() -> void: func _ready() -> void:
if not is_inside_tree(): if not is_inside_tree():
push_error("The portal \"%s\" is not inside a SceneTree." % name) push_error("The portal \"%s\" is not inside a SceneTree." % name)

View File

@ -101,7 +101,6 @@ light_color = Color(0.887552, 0.489512, 0.22965, 1)
light_energy = 3.0 light_energy = 3.0
omni_range = 4.0 omni_range = 4.0
[node name="PortalEnvironmentAdapter" type="Node" parent="." node_paths=PackedStringArray("base", "portals")] [node name="PortalEnvironmentAdapter" type="Node" parent="." node_paths=PackedStringArray("base")]
script = ExtResource("7_2gewm") script = ExtResource("7_2gewm")
base = NodePath("../WorldEnvironment") base = NodePath("../WorldEnvironment")
portals = [NodePath("../Portal_red"), NodePath("../Portal_orange")]

View File

@ -6,12 +6,14 @@ extends Node
## tonemapping (linear with exposure 1). ## tonemapping (linear with exposure 1).
@export var base: WorldEnvironment @export var base: WorldEnvironment
@export var portals: Array[Portal] = []
func _ready() -> void: func _ready() -> void:
var adapted_env: Environment = base.environment.duplicate(false) var adapted_env: Environment = base.environment.duplicate(false)
adapted_env.tonemap_mode = Environment.TONE_MAPPER_LINEAR adapted_env.tonemap_mode = Environment.TONE_MAPPER_LINEAR
# exposure is the only thing the linear tonemapper takes into account
adapted_env.tonemap_exposure = 1 adapted_env.tonemap_exposure = 1
for p in portals: for p in get_tree().get_nodes_in_group("portals"):
print(p.name)
if p is Portal:
p.exit_environment = adapted_env p.exit_environment = adapted_env