Successfully tested planar worldgen, starting spherical worldgen
This commit is contained in:
parent
b1485028f9
commit
9d34381b11
14
godot/PlayerCamera.gd
Normal file
14
godot/PlayerCamera.gd
Normal file
@ -0,0 +1,14 @@
|
||||
class_name PlayerCamera extends Camera3D
|
||||
|
||||
var theta : float = 0.0
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
var starting_position = Vector3(0,0,10)
|
||||
set_position(starting_position)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
var offset = Vector3(0,0,-0.01)
|
||||
translate(offset)
|
@ -2,25 +2,36 @@ class_name TerrainGeneration
|
||||
extends Node
|
||||
|
||||
var mesh : MeshInstance3D
|
||||
var size_depth : int = 100
|
||||
var size_width : int = 100
|
||||
var mesh_res : int = 2
|
||||
var planet_radius : float = 1
|
||||
|
||||
@export var noise : FastNoiseLite
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
generate()
|
||||
|
||||
func generate():
|
||||
var plane_mesh = PlaneMesh.new()
|
||||
plane_mesh.size = Vector2(size_width, size_depth)
|
||||
plane_mesh.subdivide_depth = size_depth * mesh_res
|
||||
plane_mesh.subdivide_width = size_width * mesh_res
|
||||
plane_mesh.material = preload("res://ProceduralGeneration/Materials/terrain.tres")
|
||||
var sphere_mesh = SphereMesh.new()
|
||||
sphere_mesh.material = preload("res://ProceduralGeneration/Materials/terrain.tres")
|
||||
|
||||
|
||||
var surface = SurfaceTool.new()
|
||||
var data = MeshDataTool.new()
|
||||
surface.create_from(sphere_mesh, 0)
|
||||
|
||||
surface.create_from(plane_mesh, 0)
|
||||
var plane_array = surface.commit()
|
||||
data.create_from_surface(plane_array, 0)
|
||||
|
||||
for i in range(data.get_vertex_count()):
|
||||
var vert = data.get_vertex(i)
|
||||
data.set_vertex(i, vert)
|
||||
|
||||
plane_array.clear_surfaces()
|
||||
data.commit_to_surface(plane_array)
|
||||
|
||||
surface.begin(Mesh.PRIMITIVE_TRIANGLES)
|
||||
surface.create_from(plane_array, 0)
|
||||
surface.generate_normals()
|
||||
|
||||
mesh = MeshInstance3D.new()
|
||||
mesh.mesh = surface.commit()
|
||||
|
@ -1,6 +1,7 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://qnald0ho64ew"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://qnald0ho64ew"]
|
||||
|
||||
[ext_resource type="Script" path="res://ProceduralGeneration/TerrainGeneration.gd" id="1_w5er5"]
|
||||
[ext_resource type="Script" path="res://PlayerCamera.gd" id="2_r4r2e"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_vts4b"]
|
||||
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
@ -15,17 +16,22 @@ sky = SubResource("Sky_c4t1l")
|
||||
tonemap_mode = 2
|
||||
glow_enabled = true
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_38n1c"]
|
||||
frequency = 0.0305
|
||||
|
||||
[node name="Main" type="Node3D"]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_qynbc")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0)
|
||||
transform = Transform3D(-0.866024, -0.433016, 0.250001, 0, 0.499998, 0.866026, -0.500003, 0.749999, -0.43301, 0, 0, -30.0417)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="TerrainGeneration" type="Node" parent="."]
|
||||
script = ExtResource("1_w5er5")
|
||||
noise = SubResource("FastNoiseLite_38n1c")
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.90736, 0.420355, 0, -0.420355, 0.90736, 0, 3.01209, 7.85595)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 43.4701)
|
||||
script = ExtResource("2_r4r2e")
|
||||
|
Loading…
Reference in New Issue
Block a user