new terrain plugin

This commit is contained in:
Nikolai Fesenko
2025-08-13 21:08:35 +02:00
parent 43fb8410c3
commit 85d50d3bd4
221 changed files with 11867 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://fkhkir6t1hml"]
[ext_resource type="Texture2D" uid="uid://c307hdmos4gtm" path="res://demo/assets/textures/rock023_nrm_rgh.png" id="2_3is54"]
[resource]
transparency = 1
vertex_color_use_as_albedo = true
albedo_color = Color(0.4, 1, 1, 0.647059)
metallic_specular = 1.0
roughness = 0.2
roughness_texture = ExtResource("2_3is54")
roughness_texture_channel = 3
emission_enabled = true
emission = Color(0, 0.145098, 0.776471, 1)
emission_energy_multiplier = 1.4
normal_enabled = true
normal_scale = 0.4
normal_texture = ExtResource("2_3is54")
rim_enabled = true
rim = 0.25
clearcoat_roughness = 0.0
ao_light_affect = 1.0
ao_texture_channel = 3
refraction_enabled = true
refraction_scale = -0.1

View File

@@ -0,0 +1,24 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cso4f2iyuxpmc"]
[ext_resource type="Texture2D" uid="uid://c307hdmos4gtm" path="res://demo/assets/textures/rock023_nrm_rgh.png" id="2_1t610"]
[resource]
transparency = 1
vertex_color_use_as_albedo = true
albedo_color = Color(0.4, 0.4, 1, 0.556863)
metallic_specular = 1.0
roughness = 0.2
roughness_texture = ExtResource("2_1t610")
roughness_texture_channel = 3
emission_enabled = true
emission = Color(0.235294, 0.145098, 0.776471, 1)
normal_enabled = true
normal_scale = 0.4
normal_texture = ExtResource("2_1t610")
rim_enabled = true
rim = 0.25
clearcoat_roughness = 0.0
ao_light_affect = 1.0
ao_texture_channel = 3
refraction_enabled = true
refraction_scale = -0.1

View File

@@ -0,0 +1,24 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://ickkffutwcvo"]
[ext_resource type="Texture2D" uid="uid://c307hdmos4gtm" path="res://demo/assets/textures/rock023_nrm_rgh.png" id="2_k2yhv"]
[resource]
transparency = 1
albedo_color = Color(0.670588, 0.0588235, 0.384314, 0.509804)
metallic_specular = 1.0
roughness = 0.2
roughness_texture = ExtResource("2_k2yhv")
roughness_texture_channel = 3
emission_enabled = true
emission = Color(0.258824, 0.0823529, 0.25098, 1)
normal_enabled = true
normal_scale = 0.4
normal_texture = ExtResource("2_k2yhv")
rim_enabled = true
rim = 0.25
clearcoat_roughness = 0.0
ao_enabled = true
ao_light_affect = 1.0
ao_texture_channel = 3
refraction_enabled = true
refraction_scale = -0.1

View File

@@ -0,0 +1,17 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://d0hyi5n6ng25w"]
[ext_resource type="Texture2D" uid="uid://c88j3oj0lf6om" path="res://demo/assets/textures/rock023_alb_ht.png" id="1_1js8i"]
[ext_resource type="Texture2D" uid="uid://c307hdmos4gtm" path="res://demo/assets/textures/rock023_nrm_rgh.png" id="2_snl3x"]
[resource]
albedo_color = Color(0.501406, 0.501407, 0.501406, 1)
albedo_texture = ExtResource("1_1js8i")
roughness = 0.95
roughness_texture = ExtResource("2_snl3x")
roughness_texture_channel = 3
normal_enabled = true
normal_texture = ExtResource("2_snl3x")
uv1_scale = Vector3(0.4, 0.4, 0.4)
uv1_triplanar = true
uv1_world_triplanar = true
texture_filter = 5

View File

@@ -0,0 +1,16 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://nbbdrx8vma80"]
[ext_resource type="Texture2D" uid="uid://c88j3oj0lf6om" path="res://demo/assets/textures/rock023_alb_ht.png" id="1_mek0c"]
[ext_resource type="Texture2D" uid="uid://c307hdmos4gtm" path="res://demo/assets/textures/rock023_nrm_rgh.png" id="2_pp13c"]
[resource]
vertex_color_use_as_albedo = true
albedo_color = Color(0.83, 0.83, 0.83, 1)
albedo_texture = ExtResource("1_mek0c")
normal_enabled = true
normal_texture = ExtResource("2_pp13c")
uv1_scale = Vector3(0.02, 0.02, 0.02)
uv1_triplanar = true
uv1_triplanar_sharpness = 6.06286
uv1_world_triplanar = true
texture_filter = 5

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,56 @@
[gd_scene load_steps=9 format=3 uid="uid://bn5nf4esciwex"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_788j8"]
albedo_color = Color(1, 0, 0, 1)
[sub_resource type="SphereMesh" id="SphereMesh_u4ac2"]
material = SubResource("StandardMaterial3D_788j8")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3i52q"]
albedo_color = Color(1, 0.540167, 0.11, 1)
[sub_resource type="BoxMesh" id="BoxMesh_xyuxq"]
material = SubResource("StandardMaterial3D_3i52q")
size = Vector3(0.85, 0.85, 0.85)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p0ha4"]
albedo_color = Color(0.48, 1, 0.497333, 1)
[sub_resource type="PrismMesh" id="PrismMesh_xnm4h"]
material = SubResource("StandardMaterial3D_p0ha4")
size = Vector3(1, 1, 0.855)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4koei"]
albedo_color = Color(0.45, 0.596667, 1, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_dp7xj"]
material = SubResource("StandardMaterial3D_4koei")
top_radius = 0.0
bottom_radius = 0.34
height = 1.54
radial_segments = 4
[node name="TestMultimesh" type="Node3D"]
[node name="Node3D" type="Node3D" parent="."]
[node name="MeshInstance3D1" type="MeshInstance3D" parent="Node3D"]
mesh = SubResource("SphereMesh_u4ac2")
skeleton = NodePath("../..")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Node3D"]
visible = false
mesh = SubResource("BoxMesh_xyuxq")
skeleton = NodePath("../..")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.118133, 0)
visible = false
mesh = SubResource("PrismMesh_xnm4h")
skeleton = NodePath("../..")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
visible = false
mesh = SubResource("CylinderMesh_dp7xj")
skeleton = NodePath("../..")

View File

@@ -0,0 +1,139 @@
[gd_scene load_steps=21 format=3 uid="uid://dqwgv1ahsvqio"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_788j8"]
albedo_color = Color(1, 0, 0, 1)
[sub_resource type="SphereMesh" id="SphereMesh_u4ac2"]
material = SubResource("StandardMaterial3D_788j8")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0qa1y"]
albedo_color = Color(1, 0.907, 0.38, 1)
[sub_resource type="TorusMesh" id="TorusMesh_tjrnq"]
material = SubResource("StandardMaterial3D_0qa1y")
inner_radius = 0.141
outer_radius = 0.601
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3i52q"]
albedo_color = Color(1, 0.540167, 0.11, 1)
[sub_resource type="BoxMesh" id="BoxMesh_xyuxq"]
material = SubResource("StandardMaterial3D_3i52q")
size = Vector3(0.85, 0.85, 0.85)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p0ha4"]
albedo_color = Color(0.48, 1, 0.497333, 1)
[sub_resource type="PrismMesh" id="PrismMesh_xnm4h"]
material = SubResource("StandardMaterial3D_p0ha4")
size = Vector3(1, 1, 0.855)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jv6fb"]
albedo_color = Color(0.3384, 0.538933, 0.94, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_i1yhp"]
material = SubResource("StandardMaterial3D_jv6fb")
top_radius = 0.0
bottom_radius = 0.59
height = 1.08
radial_segments = 4
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0qk4s"]
albedo_color = Color(0.62325, 0.495, 0.9, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_bvmel"]
material = SubResource("StandardMaterial3D_0qk4s")
top_radius = 0.765
bottom_radius = 0.34
height = 1.54
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_438mn"]
albedo_color = Color(0.933333, 0.2, 1, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_x8oip"]
material = SubResource("StandardMaterial3D_438mn")
top_radius = 0.33
bottom_radius = 0.34
height = 1.0
radial_segments = 7
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hqr78"]
albedo_color = Color(0.51, 0.456705, 0.3417, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_dp7xj"]
material = SubResource("StandardMaterial3D_hqr78")
top_radius = 0.29
bottom_radius = 0.59
height = 0.65
radial_segments = 4
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aba40"]
albedo_color = Color(0.1512, 0.36, 0.17208, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_8ctts"]
material = SubResource("StandardMaterial3D_aba40")
top_radius = 0.45
bottom_radius = 0.495
height = 1.54
radial_segments = 4
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tl8dq"]
albedo_color = Color(0.2279, 0.36888, 0.53, 1)
[sub_resource type="CylinderMesh" id="CylinderMesh_w2aj8"]
material = SubResource("StandardMaterial3D_tl8dq")
top_radius = 0.0
bottom_radius = 0.77
height = 1.54
radial_segments = 4
[node name="TestMultimesh" type="Node3D"]
[node name="Node3D" type="Node3D" parent="."]
[node name="MeshInstance3D0" type="MeshInstance3D" parent="Node3D"]
mesh = SubResource("SphereMesh_u4ac2")
skeleton = NodePath("../..")
[node name="MeshInstance3D1" type="MeshInstance3D" parent="Node3D"]
mesh = SubResource("TorusMesh_tjrnq")
skeleton = NodePath("../..")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Node3D"]
mesh = SubResource("BoxMesh_xyuxq")
skeleton = NodePath("../..")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.118133, 0)
mesh = SubResource("PrismMesh_xnm4h")
skeleton = NodePath("../..")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
mesh = SubResource("CylinderMesh_i1yhp")
skeleton = NodePath("../..")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
mesh = SubResource("CylinderMesh_bvmel")
skeleton = NodePath("../..")
[node name="MeshInstance3D6" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
mesh = SubResource("CylinderMesh_x8oip")
skeleton = NodePath("../..")
[node name="MeshInstance3D7" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
mesh = SubResource("CylinderMesh_dp7xj")
skeleton = NodePath("../..")
[node name="MeshInstance3D8" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
mesh = SubResource("CylinderMesh_8ctts")
skeleton = NodePath("../..")
[node name="MeshInstance3D9" type="MeshInstance3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246009, 0)
mesh = SubResource("CylinderMesh_w2aj8")
skeleton = NodePath("../..")

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bxwiqxgwoh630"
path="res://.godot/imported/RockA.glb-2e416adf16cd89c5c5afc8e204027147.scn"
[deps]
source_file="res://demo/assets/models/RockA.glb"
dest_files=["res://.godot/imported/RockA.glb-2e416adf16cd89c5c5afc8e204027147.scn"]
[params]
nodes/root_type="StaticBody3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"@MATERIAL:0": {
"use_external/enabled": true,
"use_external/path": "res://demo/assets/materials/M_rock30.tres"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://nta3sef6c2el"
path="res://.godot/imported/RockB.glb-d0df90244ab14da61106a961f4faa07f.scn"
[deps]
source_file="res://demo/assets/models/RockB.glb"
dest_files=["res://.godot/imported/RockB.glb-d0df90244ab14da61106a961f4faa07f.scn"]
[params]
nodes/root_type="StaticBody3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"@MATERIAL:0": {
"use_external/enabled": true,
"use_external/path": "res://demo/assets/materials/M_rock30.tres"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c8cx4xjwluvxw"
path="res://.godot/imported/RockC.glb-5881ee1ff2072066a3de122ce4239bee.scn"
[deps]
source_file="res://demo/assets/models/RockC.glb"
dest_files=["res://.godot/imported/RockC.glb-5881ee1ff2072066a3de122ce4239bee.scn"]
[params]
nodes/root_type="StaticBody3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"@MATERIAL:0": {
"use_external/enabled": true,
"use_external/path": "res://demo/assets/materials/M_rock30.tres"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://jib546bbort5"
path="res://.godot/imported/Tunnel.glb-09729773791c3078e933c866961e1b60.scn"
[deps]
source_file="res://demo/assets/models/Tunnel.glb"
dest_files=["res://.godot/imported/Tunnel.glb-09729773791c3078e933c866961e1b60.scn"]
[params]
nodes/root_type="StaticBody3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=true
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"material_0": {
"use_external/enabled": false,
"use_external/path": "uid://nbbdrx8vma80"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
All ambientCG assets are provided under the
Creative Commons CC0 1.0 Universal License.
https://docs.ambientcg.com/license/
Grass:
https://ambientcg.com/view?id=Ground037
Rock:
https://ambientcg.com/view?id=Rock030
Cliff:
https://ambientcg.com/view?id=Rock023

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddprscrpsofah"
path.bptc="res://.godot/imported/ground037_alb_ht.png-d854c3c88beba9927351b95063edffa2.bptc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://demo/assets/textures/ground037_alb_ht.png"
dest_files=["res://.godot/imported/ground037_alb_ht.png-d854c3c88beba9927351b95063edffa2.bptc.ctex"]
[params]
compress/mode=2
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=2
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=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c1ots7w6i0i1q"
path.bptc="res://.godot/imported/ground037_nrm_rgh.png-02372c72ee87f1844ee708d952e43e96.bptc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://demo/assets/textures/ground037_nrm_rgh.png"
dest_files=["res://.godot/imported/ground037_nrm_rgh.png-02372c72ee87f1844ee708d952e43e96.bptc.ctex"]
[params]
compress/mode=2
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=2
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=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c88j3oj0lf6om"
path.bptc="res://.godot/imported/rock023_alb_ht.png-9c06b8a5f11d940d1c46d8928f6d6a5c.bptc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://demo/assets/textures/rock023_alb_ht.png"
dest_files=["res://.godot/imported/rock023_alb_ht.png-9c06b8a5f11d940d1c46d8928f6d6a5c.bptc.ctex"]
[params]
compress/mode=2
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=2
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c307hdmos4gtm"
path.bptc="res://.godot/imported/rock023_nrm_rgh.png-dd524905a15817dac8149681cddc8975.bptc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://demo/assets/textures/rock023_nrm_rgh.png"
dest_files=["res://.godot/imported/rock023_nrm_rgh.png-dd524905a15817dac8149681cddc8975.bptc.ctex"]
[params]
compress/mode=2
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=2
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