Add terrain and textures for the dev level

This commit is contained in:
Gary Steven Keough 2024-12-13 23:19:23 -05:00
parent 1df56511fe
commit c3dd861e61
11 changed files with 231 additions and 24 deletions

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://ewovs6ns5y3k"] [gd_scene load_steps=7 format=3 uid="uid://ewovs6ns5y3k"]
[ext_resource type="Texture2D" uid="uid://gymb0tju4y67" path="res://addons/kennysprototypetextures/Dark/texture_black (1).png" id="1_l0osb"]
[ext_resource type="PackedScene" uid="uid://c6w0ivy4hetrl" path="res://assets/core/player-controller/scenes/player.tscn" id="2_q510b"] [ext_resource type="PackedScene" uid="uid://c6w0ivy4hetrl" path="res://assets/core/player-controller/scenes/player.tscn" id="2_q510b"]
[ext_resource type="PackedScene" uid="uid://dqymnaouq1mu2" path="res://assets/core/enviroment/dev-level/terrain.tscn" id="3_vcq2f"]
[ext_resource type="PackedScene" uid="uid://c7mtmmke1anxp" path="res://assets/core/ships/test-ship/test-ship.tscn" id="4_feinw"] [ext_resource type="PackedScene" uid="uid://c7mtmmke1anxp" path="res://assets/core/ships/test-ship/test-ship.tscn" id="4_feinw"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_yg2er"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_yg2er"]
@ -17,16 +17,6 @@ sky = SubResource("Sky_roqfl")
tonemap_mode = 2 tonemap_mode = 2
glow_enabled = true glow_enabled = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8ttyg"]
albedo_texture = ExtResource("1_l0osb")
uv1_triplanar = true
[sub_resource type="PlaneMesh" id="PlaneMesh_v66gr"]
lightmap_size_hint = Vector2i(102, 102)
size = Vector2(20, 20)
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_4238x"]
[node name="DevLevel" type="Node3D"] [node name="DevLevel" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."] [node name="WorldEnvironment" type="WorldEnvironment" parent="."]
@ -36,19 +26,11 @@ environment = SubResource("Environment_nyust")
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.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0)
shadow_enabled = true shadow_enabled = true
[node name="StaticBody3D" type="StaticBody3D" parent="."]
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
material_override = SubResource("StandardMaterial3D_8ttyg")
mesh = SubResource("PlaneMesh_v66gr")
skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("WorldBoundaryShape3D_4238x")
[node name="Player" parent="." instance=ExtResource("2_q510b")] [node name="Player" parent="." instance=ExtResource("2_q510b")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.48712, 0)
joystick_camera_sens_multiplier = 5.0 joystick_camera_sens_multiplier = 5.0
[node name="TestShip" parent="." instance=ExtResource("4_feinw")] [node name="TestShip" parent="." instance=ExtResource("4_feinw")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24218, 0.563903, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24218, 9.05102, 0)
[node name="level" parent="." instance=ExtResource("3_vcq2f")]

Binary file not shown.

View File

@ -0,0 +1,51 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cf3ttxmunrdkx"
path="res://.godot/imported/level.blend-df65294eb60200a4fba09303412fe866.scn"
[deps]
source_file="res://assets/core/enviroment/dev-level/level.blend"
dest_files=["res://.godot/imported/level.blend-df65294eb60200a4fba09303412fe866.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
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={}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wwt085cnp4pf"
path.s3tc="res://.godot/imported/sfknaeoa_2K_Albedo.jpg-e51bb812eed17fd8239f705605a6b007.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/core/enviroment/dev-level/sfknaeoa_2K_Albedo.jpg"
dest_files=["res://.godot/imported/sfknaeoa_2K_Albedo.jpg-e51bb812eed17fd8239f705605a6b007.s3tc.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbywqwhn2e07g"
path.s3tc="res://.godot/imported/smspdebp_2K_Albedo.jpg-d74e83b4150dce0e81022227ae6cf694.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/core/enviroment/dev-level/smspdebp_2K_Albedo.jpg"
dest_files=["res://.godot/imported/smspdebp_2K_Albedo.jpg-d74e83b4150dce0e81022227ae6cf694.s3tc.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

View File

@ -0,0 +1,71 @@
shader_type spatial;
// Varyings
varying float flatness;
varying vec3 power_normal;
varying vec3 object_normal;
varying vec3 world_normal;
varying vec3 triplanar_pos;
uniform float WallTexScale;
uniform sampler2D WallTex;
uniform vec4 WallColor : source_color;
uniform float TopTexScale;
uniform sampler2D TopTex;
uniform vec4 TopColor : source_color;
uniform vec4 BlendValues = vec4(3,-2,0,1);
vec2 hash( vec2 p )
{
return fract( sin( p * mat2( vec2( 127.1, 311.7 ), vec2( 269.5, 183.3 ) ) ) * 43758.5453 );
}
void vertex(){
object_normal = NORMAL;
world_normal = vec3(0.0,1.0,0.0);
flatness = dot(object_normal,world_normal);
power_normal = normalize(pow(abs(object_normal),vec3(10.0,10.0,10.0)));
triplanar_pos = VERTEX*vec3(1.0,-1.0,1.0);
}
vec4 stochastic_sample(sampler2D tex, vec2 uv){
vec2 skewV = mat2(vec2(1.0,1.0),vec2(-0.57735027 , 1.15470054))*uv * 3.464;
vec2 vxID = floor(skewV);
vec2 fracV = fract(skewV);
vec3 barry = vec3(fracV.x,fracV.y,1.0-fracV.x-fracV.y);
mat4 bw_vx = barry.z>0.0?
mat4(vec4(vxID,0.0,0.0),vec4((vxID+vec2(0.0,1.0)),0.0,0.0),vec4(vxID+vec2(1.0,0.0),0,0),vec4(barry.zyx,0)):
mat4(vec4(vxID+vec2(1.0,1.0),0.0,0.0),vec4((vxID+vec2(1.0,0.0)),0.0,0.0),vec4(vxID+vec2(0.0,1.0),0,0),vec4(-barry.z,1.0-barry.y,1.0-barry.x,0));
vec2 ddx = dFdx(uv);
vec2 ddy = dFdy(uv);
return (textureGrad(tex,uv+hash(bw_vx[0].xy),ddx,ddy)*bw_vx[3].x) +
(textureGrad(tex,uv+hash(bw_vx[1].xy),ddx,ddy)*bw_vx[3].y) +
(textureGrad(tex,uv+hash(bw_vx[2].xy),ddx,ddy)*bw_vx[3].z)
;
}
vec4 triplanar_texture(sampler2D p_sampler, vec3 p_weights, vec3 p_triplanar_pos, float uv_scale) {
vec4 samp = vec4(0.0);
samp += stochastic_sample(p_sampler, p_triplanar_pos.xy*vec2(uv_scale,uv_scale)) * p_weights.z;
samp += stochastic_sample(p_sampler, p_triplanar_pos.xz*vec2(uv_scale,uv_scale)) * p_weights.y;
samp += stochastic_sample(p_sampler, p_triplanar_pos.zy * vec2(-1.0,1.0)*vec2(uv_scale,uv_scale)) * p_weights.x;
return samp;
}
void fragment() {
vec4 wall_tex = triplanar_texture(WallTex, power_normal, triplanar_pos,WallTexScale);
vec3 wall = wall_tex.rgb * WallColor.rgb;
vec4 top_tex = triplanar_texture(TopTex, power_normal, triplanar_pos,TopTexScale);
vec3 top = top_tex.rgb * TopColor.rgb;
float blend = clamp((flatness*BlendValues.x)+BlendValues.y,BlendValues.z,BlendValues.w);
ALBEDO = mix(wall,top,blend);
}

View File

@ -0,0 +1,22 @@
[gd_scene load_steps=6 format=3 uid="uid://dqymnaouq1mu2"]
[ext_resource type="PackedScene" uid="uid://cf3ttxmunrdkx" path="res://assets/core/enviroment/dev-level/level.blend" id="1_n0cjw"]
[ext_resource type="Shader" path="res://assets/core/enviroment/dev-level/terrain.gdshader" id="2_7nsr7"]
[ext_resource type="Texture2D" uid="uid://wwt085cnp4pf" path="res://assets/core/enviroment/dev-level/sfknaeoa_2K_Albedo.jpg" id="3_u3eue"]
[ext_resource type="Texture2D" uid="uid://dbywqwhn2e07g" path="res://assets/core/enviroment/dev-level/smspdebp_2K_Albedo.jpg" id="4_c1a6l"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4w1dc"]
render_priority = 0
shader = ExtResource("2_7nsr7")
shader_parameter/WallTexScale = 1.0
shader_parameter/WallColor = Color(0.662452, 0.662452, 0.662452, 1)
shader_parameter/TopTexScale = 1.005
shader_parameter/TopColor = Color(0.466181, 0.466181, 0.466181, 1)
shader_parameter/BlendValues = Vector4(3.045, -1.825, 0, 1.115)
shader_parameter/WallTex = ExtResource("4_c1a6l")
shader_parameter/TopTex = ExtResource("3_u3eue")
[node name="level" instance=ExtResource("1_n0cjw")]
[node name="Landscape" parent="." index="0"]
surface_material_override/0 = SubResource("ShaderMaterial_4w1dc")

View File

@ -0,0 +1,11 @@
[gd_resource type="VisualShader" format=3 uid="uid://bj2bqmcc3xm5j"]
[resource]
code = "shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
"
graph_offset = Vector2(-239.52, -67.9437)
nodes/fragment/0/position = Vector2(1000, 40)