]> git.za3k.com Git - the_dome.git/commitdiff
add camera movement, skybox, fix struts master
authorZachary Vance <za3k@za3k.com>
Tue, 2 Jul 2024 01:50:37 +0000 (21:50 -0400)
committerZachary Vance <za3k@za3k.com>
Tue, 2 Jul 2024 01:50:37 +0000 (21:50 -0400)
geodesic_dome.gd
geodesic_dome_edge.gd
geodesic_dome_edge.tscn
glass_material.tres [new file with mode: 0644]
glass_triangle.tscn
project.godot
rosendal_plains_1_1k.exr [new file with mode: 0644]
rosendal_plains_1_1k.exr.import [new file with mode: 0644]
world.gd
world.tscn

index 9e09b85f5827f2460bdf6a2905eb68b2e7681bbe..15b756b7499a07deb221bbf7dc8365117b29d4e0 100644 (file)
@@ -4,19 +4,20 @@ extends Node3D
 @export var edge_scene: PackedScene
 @export var face_scene: PackedScene
 
+const magic = 2/sqrt(5)
 var VERTICES : Array[Vector3] = [
        Vector3(0, 1, 0),
        Vector3(0, -1, 0),
-       Vector3(cos(deg_to_rad(36*0)),  1/sqrt(5), sin(deg_to_rad(36*0))).normalized(),
-       Vector3(cos(deg_to_rad(36*1)), -1/sqrt(5), sin(deg_to_rad(36*1))).normalized(),
-       Vector3(cos(deg_to_rad(36*2)),  1/sqrt(5), sin(deg_to_rad(36*2))).normalized(),
-       Vector3(cos(deg_to_rad(36*3)), -1/sqrt(5), sin(deg_to_rad(36*3))).normalized(),
-       Vector3(cos(deg_to_rad(36*4)),  1/sqrt(5), sin(deg_to_rad(36*4))).normalized(),
-       Vector3(cos(deg_to_rad(36*5)), -1/sqrt(5), sin(deg_to_rad(36*5))).normalized(),
-       Vector3(cos(deg_to_rad(36*6)),  1/sqrt(5), sin(deg_to_rad(36*6))).normalized(),
-       Vector3(cos(deg_to_rad(36*7)), -1/sqrt(5), sin(deg_to_rad(36*7))).normalized(),
-       Vector3(cos(deg_to_rad(36*8)),  1/sqrt(5), sin(deg_to_rad(36*8))).normalized(),
-       Vector3(cos(deg_to_rad(36*9)), -1/sqrt(5), sin(deg_to_rad(36*9))).normalized(),
+       Vector3(magic*cos(deg_to_rad(36*0)),  1/sqrt(5), magic*sin(deg_to_rad(36*0))),
+       Vector3(magic*cos(deg_to_rad(36*1)), -1/sqrt(5), magic*sin(deg_to_rad(36*1))),
+       Vector3(magic*cos(deg_to_rad(36*2)),  1/sqrt(5), magic*sin(deg_to_rad(36*2))),
+       Vector3(magic*cos(deg_to_rad(36*3)), -1/sqrt(5), magic*sin(deg_to_rad(36*3))),
+       Vector3(magic*cos(deg_to_rad(36*4)),  1/sqrt(5), magic*sin(deg_to_rad(36*4))),
+       Vector3(magic*cos(deg_to_rad(36*5)), -1/sqrt(5), magic*sin(deg_to_rad(36*5))),
+       Vector3(magic*cos(deg_to_rad(36*6)),  1/sqrt(5), magic*sin(deg_to_rad(36*6))),
+       Vector3(magic*cos(deg_to_rad(36*7)), -1/sqrt(5), magic*sin(deg_to_rad(36*7))),
+       Vector3(magic*cos(deg_to_rad(36*8)),  1/sqrt(5), magic*sin(deg_to_rad(36*8))),
+       Vector3(magic*cos(deg_to_rad(36*9)), -1/sqrt(5), magic*sin(deg_to_rad(36*9))),
 ]
 @export var level = 1 # Detail level
 
@@ -27,7 +28,7 @@ func is_edge(v1 : Vector3, v2 : Vector3):
 func add_vertex(v1 : Vector3):
        var vertex : IsoVertex = vertex_scene.instantiate()
        vertex.position = v1
-       add_child(vertex)
+       #add_child(vertex)
 
 func add_edge(v1 : Vector3, v2: Vector3, level : int):
        if level == 1:
index 48ac9d0e0356e3a64b6492c064895375b5994aac..10c61b06d4aef46e7e0f33088038872f40a8f6ec 100644 (file)
@@ -7,17 +7,8 @@ class_name DomeEdge extends StaticBody3D
 func _ready():
        var length = (v2-v1).length()
        var center = (v1 + v2) / 2
-       var direction = (v2-v1).normalized()
        
        position = center
-       #rotation = direction
-       var cyclinder_mesh : CylinderMesh = $MeshInstance3D.mesh
-       cyclinder_mesh.height = length
+       var cylinder_mesh : CylinderMesh = $MeshInstance3D.mesh
+       cylinder_mesh.height = length
        look_at(v2)
-       pass # Replace with function body.
-
-
-# Called every frame. 'delta' is the elapsed time since the previous frame.
-func _process(delta):
-       pass
-       #get_tree().current_scene.draw_line(v1, v2)
index 8ffec9b76a6cbfbfc9a1dd5f6513512120620d16..bc9b87223f85ee70f19969fef7c392c94a9723ac 100644 (file)
@@ -6,6 +6,7 @@
 albedo_color = Color(0.205117, 0.205117, 0.205117, 1)
 
 [sub_resource type="CylinderMesh" id="CylinderMesh_v76vy"]
+resource_local_to_scene = true
 material = SubResource("StandardMaterial3D_qgvan")
 top_radius = 0.01
 bottom_radius = 0.01
diff --git a/glass_material.tres b/glass_material.tres
new file mode 100644 (file)
index 0000000..f6b7930
--- /dev/null
@@ -0,0 +1,11 @@
+[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://jcwnepkvl1tk"]
+
+[ext_resource type="Shader" path="res://pbr_glass.gdshader" id="1_twhka"]
+
+[resource]
+render_priority = 0
+shader = ExtResource("1_twhka")
+shader_parameter/albedo = Color(1, 1, 1, 0.152941)
+shader_parameter/roughness = 0.15
+shader_parameter/normal_strength = 1.0
+shader_parameter/edge_color = Color(0, 0, 0, 1)
index bbe679d0beb375a8d2bf25527140327981cc08bd..8c45a71a7cd8e74a49bb90750e91adf54c61bacd 100644 (file)
@@ -1,22 +1,14 @@
-[gd_scene load_steps=5 format=3 uid="uid://dnfk0fawcv6pb"]
+[gd_scene load_steps=4 format=3 uid="uid://dnfk0fawcv6pb"]
 
 [ext_resource type="Script" path="res://glass_triangle.gd" id="1_w50by"]
-[ext_resource type="Shader" path="res://pbr_glass.gdshader" id="2_hi517"]
-
-[sub_resource type="ShaderMaterial" id="ShaderMaterial_kvcah"]
-render_priority = 0
-shader = ExtResource("2_hi517")
-shader_parameter/albedo = Color(1, 1, 1, 0.156863)
-shader_parameter/roughness = 0.15
-shader_parameter/normal_strength = 1.0
-shader_parameter/edge_color = Color(0, 0, 0, 1)
+[ext_resource type="Material" uid="uid://jcwnepkvl1tk" path="res://glass_material.tres" id="2_485vt"]
 
 [sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_nt2r6"]
 points = PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
 
 [node name="GlassTriangle" type="StaticBody3D"]
 script = ExtResource("1_w50by")
-material = SubResource("ShaderMaterial_kvcah")
+material = ExtResource("2_485vt")
 
 [node name="VisibleShape" type="MeshInstance3D" parent="."]
 
index d426ae2dbb5734bba1ca921e4c94d7b80de28d86..9dec3f868fb1edea3431899db67148bd6b50a263 100644 (file)
@@ -40,6 +40,40 @@ restart={
 "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"echo":false,"script":null)
 ]
 }
+rotate_left={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null)
+]
+}
+rotate_right={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null)
+]
+}
+move_up={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null)
+]
+}
+move_down={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null)
+]
+}
+move_forward={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
+]
+}
+move_back={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null)
+]
+}
 
 [physics]
 
diff --git a/rosendal_plains_1_1k.exr b/rosendal_plains_1_1k.exr
new file mode 100644 (file)
index 0000000..ebd240b
Binary files /dev/null and b/rosendal_plains_1_1k.exr differ
diff --git a/rosendal_plains_1_1k.exr.import b/rosendal_plains_1_1k.exr.import
new file mode 100644 (file)
index 0000000..3664429
--- /dev/null
@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ctanrs2c7ntqe"
+path.bptc="res://.godot/imported/rosendal_plains_1_1k.exr-993099eb421ac5906646db882f9f91da.bptc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://rosendal_plains_1_1k.exr"
+dest_files=["res://.godot/imported/rosendal_plains_1_1k.exr-993099eb421ac5906646db882f9f91da.bptc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+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
index 7524a02da9bdb3815db243bdfc9e4ea340310e50..6b2fdd7b8b5aa81fe140f5cb020b37fbdb0960b2 100644 (file)
--- a/world.gd
+++ b/world.gd
@@ -9,10 +9,27 @@ func draw_line(v1 : Vector3, v2 : Vector3):
 func _ready(): 
        add_child(LineDrawer)
 
+func move_camera(delta):
+       $CameraPivot.position += Vector3(
+               0,
+               Input.get_axis("move_down", "move_up"),
+               0,
+       ) * delta
+       
+       # Rotate
+       var rotate_amt = -Input.get_axis("ui_left", "ui_right") * delta
+       $CameraPivot.rotate_y(rotate_amt)
+       
+       # Move
+       var move_amt = Input.get_axis("move_back", "move_forward") * delta
+       var move_dir = -$CameraPivot.global_basis.z
+       move_dir.y = 0
+       move_dir = move_dir.normalized()
+       $CameraPivot.position += move_dir * move_amt
+
 # Called every frame. 'delta' is the elapsed time since the previous frame.
 func _process(delta):
-       $CameraPivot.position += Vector3(
-               Input.get_axis("ui_left", "ui_right"),
-               0, 0) * delta
+       move_camera(delta)
+       
        if Input.is_action_pressed("quit"):
                get_tree().quit()
index 56f0588e5bd85113b68fef50ef59699e7fd81dd4..b559b5bd79eb36c0c46d91f3f787057306a48ec1 100644 (file)
@@ -1,7 +1,8 @@
-[gd_scene load_steps=6 format=3 uid="uid://cotgytv6xac3l"]
+[gd_scene load_steps=11 format=3 uid="uid://cotgytv6xac3l"]
 
 [ext_resource type="PackedScene" uid="uid://cr06eruxv1iyp" path="res://geodesic_dome.tscn" id="1_j3sin"]
 [ext_resource type="Script" path="res://world.gd" id="1_lxwr8"]
+[ext_resource type="Texture2D" uid="uid://ctanrs2c7ntqe" path="res://rosendal_plains_1_1k.exr" id="3_wdjbw"]
 
 [sub_resource type="BoxShape3D" id="BoxShape3D_njt1i"]
 size = Vector3(10, 1, 10)
@@ -13,6 +14,22 @@ albedo_color = Color(0.100215, 0.230141, 0.0754749, 1)
 material = SubResource("StandardMaterial3D_tajc4")
 size = Vector3(10, 1, 10)
 
+[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_d3pds"]
+panorama = ExtResource("3_wdjbw")
+
+[sub_resource type="Sky" id="Sky_bwxns"]
+sky_material = SubResource("PanoramaSkyMaterial_d3pds")
+
+[sub_resource type="Environment" id="Environment_opihn"]
+background_mode = 2
+sky = SubResource("Sky_bwxns")
+ambient_light_source = 3
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8pi4w"]
+albedo_color = Color(0.917489, 0.457041, 0.196681, 1)
+metallic_specular = 1.0
+rim_enabled = true
+
 [node name="World" type="Node3D"]
 script = ExtResource("1_lxwr8")
 
@@ -26,7 +43,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0485562, 0.137679)
 level = 3
 
 [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 0.560234, 0.828334, 0, -0.828334, 0.560234, 0, 4.51738, 2.88875)
+transform = Transform3D(1, 0, 0, 0, 0.560234, 0.828334, 0, -0.828334, 0.560234, 1.38924, 2.25705, 2.22738)
 
 [node name="Ground" type="StaticBody3D" parent="."]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
@@ -37,3 +54,10 @@ shape = SubResource("BoxShape3D_njt1i")
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Ground"]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
 mesh = SubResource("BoxMesh_6hk8v")
+
+[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
+environment = SubResource("Environment_opihn")
+
+[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2449, 0.478221, 0.244456)
+material = SubResource("StandardMaterial3D_8pi4w")