Add terrain and textures for the dev level
This commit is contained in:
parent
1df56511fe
commit
c3dd861e61
@ -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://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"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_yg2er"]
|
||||
@ -17,16 +17,6 @@ sky = SubResource("Sky_roqfl")
|
||||
tonemap_mode = 2
|
||||
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="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)
|
||||
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")]
|
||||
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
|
||||
|
||||
[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")]
|
||||
|
BIN
assets/core/enviroment/dev-level/level.blend
Normal file
BIN
assets/core/enviroment/dev-level/level.blend
Normal file
Binary file not shown.
51
assets/core/enviroment/dev-level/level.blend.import
Normal file
51
assets/core/enviroment/dev-level/level.blend.import
Normal 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
|
BIN
assets/core/enviroment/dev-level/level.blend1
Normal file
BIN
assets/core/enviroment/dev-level/level.blend1
Normal file
Binary file not shown.
BIN
assets/core/enviroment/dev-level/sfknaeoa_2K_Albedo.jpg
Normal file
BIN
assets/core/enviroment/dev-level/sfknaeoa_2K_Albedo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 MiB |
@ -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
|
BIN
assets/core/enviroment/dev-level/smspdebp_2K_Albedo.jpg
Normal file
BIN
assets/core/enviroment/dev-level/smspdebp_2K_Albedo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 MiB |
@ -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
|
71
assets/core/enviroment/dev-level/terrain.gdshader
Normal file
71
assets/core/enviroment/dev-level/terrain.gdshader
Normal 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);
|
||||
}
|
22
assets/core/enviroment/dev-level/terrain.tscn
Normal file
22
assets/core/enviroment/dev-level/terrain.tscn
Normal 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")
|
11
assets/core/enviroment/dev-level/vis_terrain.tres
Normal file
11
assets/core/enviroment/dev-level/vis_terrain.tres
Normal 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)
|
Loading…
Reference in New Issue
Block a user