Update cubic interpolate with test case to latest Godot Engine master.

Update Crosshair.png.import, FirstPersonFlyer.gd, and 6 more files...
This commit is contained in:
K. S. Ernest (iFire) Lee
2022-09-25 16:02:52 -07:00
parent e0ea792a9a
commit f220bbe745
8 changed files with 43 additions and 44 deletions

View File

@@ -29,5 +29,6 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -197,8 +197,8 @@ func aim(delta):
navMode = NavigationMode.NAVMODE_6DOF
else:
navMode = NavigationMode.NAVMODE_FPS
camera_angle_x_filtered = -rad2deg(asin(transform.basis.z.y))
camera_angle_y_filtered = rad2deg(atan2(transform.basis.z.x, transform.basis.z.z))
camera_angle_x_filtered = -rad_to_deg(asin(transform.basis.z.y))
camera_angle_y_filtered = rad_to_deg(atan2(transform.basis.z.x, transform.basis.z.z))
camera_angle_x_unfiltered = camera_angle_x_filtered
camera_angle_y_unfiltered = camera_angle_y_filtered
@@ -210,7 +210,7 @@ func aim(delta):
func aimFPS(delta):
if camera_change.length() > 0:
# $Head.rotate_y(deg2rad(-camera_change.x * mouse_sensitivity))
# $Head.rotate_y(deg_to_rad(-camera_change.x * mouse_sensitivity))
camera_angle_y_unfiltered -= camera_change.x * mouse_sensitivity
camera_angle_x_unfiltered -= camera_change.y * mouse_sensitivity
@@ -231,12 +231,12 @@ func aimFPS(delta):
last_camera_angle_x_filtered = camera_angle_x_filtered
last_camera_angle_y_filtered = camera_angle_y_filtered
rotate_x(deg2rad(camera_angle_x_filtered))
rotate_y(deg2rad(camera_angle_y_filtered))
rotate_x(deg_to_rad(camera_angle_x_filtered))
rotate_y(deg_to_rad(camera_angle_y_filtered))
func aim6DOF(delta):
if camera_change.length() > 0:
# $Head.rotate_y(deg2rad(-camera_change.x * mouse_sensitivity))
# $Head.rotate_y(deg_to_rad(-camera_change.x * mouse_sensitivity))
camera_angle_y_unfiltered -= camera_change.x * mouse_sensitivity
camera_angle_x_unfiltered -= camera_change.y * mouse_sensitivity
@@ -265,9 +265,9 @@ func aim6DOF(delta):
ZAxis6DOFTurningSpeed = ZAxis6DOFTurningSpeed * correctedCoeff + unFilteredZAxisTurningSpeed * (1 - correctedCoeff)
var tempBasis = transform.basis
tempBasis = tempBasis.rotated(tempBasis.x, deg2rad(camera_angle_x_filtered_change))
tempBasis = tempBasis.rotated(tempBasis.y, deg2rad(camera_angle_y_filtered_change))
tempBasis = tempBasis.rotated(tempBasis.z, deg2rad(ZAxis6DOFTurningSpeed * delta))
tempBasis = tempBasis.rotated(tempBasis.x, deg_to_rad(camera_angle_x_filtered_change))
tempBasis = tempBasis.rotated(tempBasis.y, deg_to_rad(camera_angle_y_filtered_change))
tempBasis = tempBasis.rotated(tempBasis.z, deg_to_rad(ZAxis6DOFTurningSpeed * delta))
transform.basis = tempBasis.orthonormalized()
func set_LocationOrientation(newTransform: Transform3D):
@@ -276,12 +276,12 @@ func set_LocationOrientation(newTransform: Transform3D):
transform = newTransform
transform.basis = Basis()
var newBasis = newTransform.basis
camera_angle_x_unfiltered = - rad2deg(asin(newBasis.z.y))
camera_angle_x_unfiltered = - rad_to_deg(asin(newBasis.z.y))
camera_angle_x_filtered = camera_angle_x_unfiltered
camera_angle_y_unfiltered = rad2deg(atan2(newBasis.z.x, newBasis.z.z))
camera_angle_y_unfiltered = rad_to_deg(atan2(newBasis.z.x, newBasis.z.z))
camera_angle_y_filtered = camera_angle_y_unfiltered
rotate_x(deg2rad(camera_angle_x_filtered))
rotate_y(deg2rad(camera_angle_y_filtered))
rotate_x(deg_to_rad(camera_angle_x_filtered))
rotate_y(deg_to_rad(camera_angle_y_filtered))
# firstPerson.camera_change = Vector2(0,0)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://b3ywvgurbetiy"]
[gd_scene load_steps=15 format=3 uid="uid://b3ywvgurbetiy"]
[ext_resource type="Script" path="res://FirstPersonFlyer.gd" id="1_0cyb0"]
[ext_resource type="Texture2D" uid="uid://bshkbofr21m3w" path="res://Crosshair.png" id="2_252at"]
@@ -7,6 +7,8 @@
[sub_resource type="CapsuleShape3D" id="1"]
radius = 0.6
[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_kgm63"]
[sub_resource type="ConvexPolygonShape3D" id="2"]
points = PackedVector3Array(0, 2, 0.05, 0.0353553, 2, 0.0353553, 0.05, 2, 3.06162e-18, 0.0353553, 2, -0.0353553, 6.12323e-18, 2, -0.05, -0.0353553, 2, -0.0353553, -0.05, 2, -9.18485e-18, -0.0353553, 2, 0.0353553, -1.22465e-17, 2, 0.05, 0, 0, 0.05, 0.0353553, 0, 0.0353553, 0.05, 0, 3.06162e-18, 0.0353553, 0, -0.0353553, 6.12323e-18, 0, -0.05, -0.0353553, 0, -0.0353553, -0.05, 0, -9.18485e-18, -0.0353553, 0, 0.0353553, -1.22465e-17, 0, 0.05, 0, -2, 0.05, 0.0353553, -2, 0.0353553, 0.05, -2, 3.06162e-18, 0.0353553, -2, -0.0353553, 6.12323e-18, -2, -0.05, -0.0353553, -2, -0.0353553, -0.05, -2, -9.18485e-18, -0.0353553, -2, 0.0353553, -1.22465e-17, -2, 0.05, 0, 2, 0, 0, 2, 0.05, 0.0353553, 2, 0.0353553, 0.05, 2, 3.06162e-18, 0.0353553, 2, -0.0353553, 6.12323e-18, 2, -0.05, -0.0353553, 2, -0.0353553, -0.05, 2, -9.18485e-18, -0.0353553, 2, 0.0353553, -1.22465e-17, 2, 0.05, 0, -2, 0, 0, -2, 0.05, 0.0353553, -2, 0.0353553, 0.05, -2, 3.06162e-18, 0.0353553, -2, -0.0353553, 6.12323e-18, -2, -0.05, -0.0353553, -2, -0.0353553, -0.05, -2, -9.18485e-18, -0.0353553, -2, 0.0353553, -1.22465e-17, -2, 0.05)
@@ -49,16 +51,13 @@ points = PackedVector3Array(-2.5, 0.1, 2.5, 2.5, 0.1, -2.5, 2.5, 0.1, 2.5, -2.5,
script = ExtResource("1_0cyb0")
[node name="Capsule" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
shape = SubResource("1")
[node name="Head" type="Node3D" parent="."]
[node name="FirstPersonCamera" type="Camera3D" parent="Head"]
attributes = SubResource("CameraAttributesPhysical_kgm63")
current = true
fov = 42.0
near = 0.01
far = 5000.0
[node name="OmniLight" type="OmniLight3D" parent="."]
visible = false

View File

@@ -31,5 +31,6 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -35,9 +35,8 @@ func loadFile(fileName):
loData.clear()
loDataKeys = []
var file = File.new()
#var metadata = {}
if file.open(fileName, File.READ) != OK:
var file : FileAccess = FileAccess.open(fileName, FileAccess.READ)
if file == null:
print("Can't open file " + fileName)
return
var line
@@ -201,7 +200,7 @@ func _process(_delta):
# quat = quat_a.cubic_interpolate(quat_b, quat_pre_a, quat_post_b, fraction)
# "Traditional" version:
quat = quat_a.cubic_slerp(quat_b, quat_pre_a, quat_post_b, fraction)
quat = quat_a.spherical_cubic_interpolate(quat_b, quat_pre_a, quat_post_b, fraction)
_:
quat = quat_a

View File

@@ -20,15 +20,12 @@ sky_material = SubResource("ProceduralSkyMaterial_eko38")
[sub_resource type="Environment" id="Environment_5bc8l"]
background_mode = 2
background_energy = 0.5
sky = SubResource("Sky_00uh5")
tonemap_mode = 2
sdfgi_enabled = true
sdfgi_use_occlusion = true
sdfgi_cascades = 1
sdfgi_min_cell_size = 31.25
sdfgi_cascade0_distance = 2000.0
sdfgi_max_distance = 4000.0
sdfgi_y_scale = 2
glow_enabled = true
@@ -202,6 +199,7 @@ quatInterpolationMethod = 3
[node name="DebugIndicator" parent="LOScriptReplayerGroup_cubic_slerp/LOSolver_PostB" instance=ExtResource("6_tilwc")]
[node name="Label_PlaybackPos" type="Label" parent="."]
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -23.0

View File

@@ -29,5 +29,6 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -12,7 +12,7 @@ config_version=5
config/name="Quat Cubic Slerp Issue"
run/main_scene="res://Main_only_script.tscn"
config/features=PackedStringArray("4.0", "Vulkan Clustered")
config/features=PackedStringArray("4.0")
config/icon="res://icon.png"
[display]
@@ -23,92 +23,92 @@ window/size/viewport_width=600
toggle_mouse={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777238,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777238,"unicode":0,"echo":false,"script":null)
]
}
mouse_left={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
]
}
mouse_right={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null)
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null)
]
}
move_forward={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null)
]
}
move_backward={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null)
]
}
move_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null)
]
}
move_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"unicode":0,"echo":false,"script":null)
]
}
move_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"unicode":0,"echo":false,"script":null)
]
}
6dof_rotate_z_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"unicode":0,"echo":false,"script":null)
]
}
6dof_rotate_z_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"unicode":0,"echo":false,"script":null)
]
}
movement_speed_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"unicode":0,"echo":false,"script":null)
]
}
movement_speed_down_mousewheel={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null)
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null)
]
}
movement_speed_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":84,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":84,"unicode":0,"echo":false,"script":null)
]
}
movement_speed_up_mousewheel={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"pressed":false,"double_click":false,"script":null)
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"pressed":false,"double_click":false,"script":null)
]
}
switch_navigation_mode={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777218,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777218,"unicode":0,"echo":false,"script":null)
]
}
replay_backward={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777237,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777237,"unicode":0,"echo":false,"script":null)
]
}
reset_playback={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777220,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777220,"unicode":0,"echo":false,"script":null)
]
}