WIP: Camera transforms not working
This commit is contained in:
parent
50314f1ad8
commit
eba916fb81
@ -22,7 +22,6 @@ sky_material = SubResource("ProceduralSkyMaterial_t21k5")
|
|||||||
[sub_resource type="Environment" id="Environment_b88kk"]
|
[sub_resource type="Environment" id="Environment_b88kk"]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
sky = SubResource("Sky_eoaoo")
|
sky = SubResource("Sky_eoaoo")
|
||||||
tonemap_mode = 2
|
|
||||||
glow_enabled = true
|
glow_enabled = true
|
||||||
|
|
||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_7nftg"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_7nftg"]
|
||||||
@ -135,6 +134,7 @@ shape = SubResource("ConcavePolygonShape3D_7nftg")
|
|||||||
|
|
||||||
[node name="CSGBakedMeshInstance3D" type="MeshInstance3D" parent="Orange/Room/Wall"]
|
[node name="CSGBakedMeshInstance3D" type="MeshInstance3D" parent="Orange/Room/Wall"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
visible = false
|
||||||
material_override = ExtResource("1_v6nyh")
|
material_override = ExtResource("1_v6nyh")
|
||||||
mesh = SubResource("ArrayMesh_v6nyh")
|
mesh = SubResource("ArrayMesh_v6nyh")
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ mesh = SubResource("BoxMesh_pvdtj")
|
|||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="OrangePortal" type="MeshInstance3D" parent="Orange" node_paths=PackedStringArray("exit_portal")]
|
[node name="OrangePortal" type="MeshInstance3D" parent="Orange" node_paths=PackedStringArray("exit_portal")]
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2, 0)
|
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 0, 2, 0)
|
||||||
mesh = SubResource("ArrayMesh_pccqs")
|
mesh = SubResource("ArrayMesh_pccqs")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
script = ExtResource("7_pvdtj")
|
script = ExtResource("7_pvdtj")
|
||||||
@ -204,6 +204,7 @@ shape = SubResource("ConcavePolygonShape3D_7nftg")
|
|||||||
|
|
||||||
[node name="CSGBakedMeshInstance3D" type="MeshInstance3D" parent="Green/Room/Wall"]
|
[node name="CSGBakedMeshInstance3D" type="MeshInstance3D" parent="Green/Room/Wall"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
visible = false
|
||||||
material_override = ExtResource("1_v6nyh")
|
material_override = ExtResource("1_v6nyh")
|
||||||
mesh = SubResource("ArrayMesh_v6nyh")
|
mesh = SubResource("ArrayMesh_v6nyh")
|
||||||
|
|
||||||
@ -253,7 +254,7 @@ mesh = SubResource("SphereMesh_pccqs")
|
|||||||
skeleton = NodePath("../../../Orange")
|
skeleton = NodePath("../../../Orange")
|
||||||
|
|
||||||
[node name="GreenPortal" type="MeshInstance3D" parent="Green" node_paths=PackedStringArray("exit_portal")]
|
[node name="GreenPortal" type="MeshInstance3D" parent="Green" node_paths=PackedStringArray("exit_portal")]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 2, 0)
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2, 0)
|
||||||
mesh = SubResource("ArrayMesh_pvdtj")
|
mesh = SubResource("ArrayMesh_pvdtj")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
script = ExtResource("7_pvdtj")
|
script = ExtResource("7_pvdtj")
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
extends CharacterBody3D
|
extends CharacterBody3D
|
||||||
|
|
||||||
@onready var camera: Camera3D = $Camera3D
|
@onready var camera: Camera3D = $PlayerCamera
|
||||||
|
|
||||||
const SPEED = 5.0
|
const SPEED = 5.0
|
||||||
const JUMP_VELOCITY = 4.5
|
const JUMP_VELOCITY = 4.5
|
||||||
|
@ -17,7 +17,7 @@ height = 1.75
|
|||||||
script = ExtResource("1_4flbx")
|
script = ExtResource("1_4flbx")
|
||||||
metadata/teleportable = false
|
metadata/teleportable = false
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="."]
|
[node name="PlayerCamera" type="Camera3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.32153, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.32153, 0)
|
||||||
cull_mask = 1048571
|
cull_mask = 1048571
|
||||||
|
|
||||||
|
@ -17,6 +17,8 @@ var exit_scale: int = 1 # This is not really needed I think
|
|||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
assert(exit_portal != null)
|
assert(exit_portal != null)
|
||||||
|
|
||||||
|
# Update portals last
|
||||||
|
process_priority = 1000
|
||||||
_main_camera = get_viewport().get_camera_3d()
|
_main_camera = get_viewport().get_camera_3d()
|
||||||
|
|
||||||
# NOTE: In case the exit portal is in a different world, better put the viewport and camera
|
# NOTE: In case the exit portal is in a different world, better put the viewport and camera
|
||||||
@ -29,13 +31,24 @@ func _ready() -> void:
|
|||||||
_camera.name = name + "_ExitCamera"
|
_camera.name = name + "_ExitCamera"
|
||||||
_viewport.add_child(_camera)
|
_viewport.add_child(_camera)
|
||||||
|
|
||||||
|
# FIXME: Remove this - debug only
|
||||||
|
var debug = MeshInstance3D.new()
|
||||||
|
debug.rotate_z(PI / 2)
|
||||||
|
debug.material_override = StandardMaterial3D.new()
|
||||||
|
debug.material_override.albedo_color = Color.MAGENTA
|
||||||
|
debug.mesh = PrismMesh.new()
|
||||||
|
_camera.add_child(debug)
|
||||||
|
|
||||||
|
|
||||||
var mat: ShaderMaterial = MY_PORTAL_MATERIAL
|
var mat: ShaderMaterial = MY_PORTAL_MATERIAL
|
||||||
material_override = mat
|
material_override = mat
|
||||||
mat.set_shader_parameter("albedo", _viewport.get_texture())
|
mat.set_shader_parameter("albedo", _viewport.get_texture())
|
||||||
|
|
||||||
|
print(name, ": _ready")
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
_camera.global_transform = real_to_exit_transform(_main_camera.global_transform)
|
_camera.global_transform = real_to_exit_transform(_main_camera.global_transform)
|
||||||
|
|
||||||
# TODO: Adjust near clip plane to the portal
|
# TODO: Adjust near clip plane to the portal
|
||||||
_camera.near = _main_camera.near
|
_camera.near = _main_camera.near
|
||||||
_camera.far = _main_camera.far
|
_camera.far = _main_camera.far
|
||||||
|
Loading…
Reference in New Issue
Block a user