generated from krampus/template-godot4
Delightful writhing & warping of the grunk
This commit is contained in:
parent
e0e5fdae2e
commit
8b6ca73e54
Binary file not shown.
@ -28,7 +28,7 @@ shader = ExtResource("1_euy6e")
|
||||
shader_parameter/color_1 = Color(0, 0.03, 0.1, 1)
|
||||
shader_parameter/color_2 = Color(0, 0.1, 0.3, 1)
|
||||
shader_parameter/emission_color = Color(0.25, 0.875, 1, 1)
|
||||
shader_parameter/pixellation = 50.0
|
||||
shader_parameter/pixellation = 100.0
|
||||
shader_parameter/roughness = 0.15
|
||||
shader_parameter/specular_contribution = 0.8
|
||||
shader_parameter/emission_strength = 0.02
|
||||
|
@ -3,20 +3,19 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bdnurvg7xe6k7"
|
||||
path.s3tc="res://.godot/imported/reticle.png-0a9f831dae57a5cb1ef00786d2ed0e86.s3tc.ctex"
|
||||
path="res://.godot/imported/reticle.png-0a9f831dae57a5cb1ef00786d2ed0e86.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/ui/hud/reticle.png"
|
||||
dest_files=["res://.godot/imported/reticle.png-0a9f831dae57a5cb1ef00786d2ed0e86.s3tc.ctex"]
|
||||
dest_files=["res://.godot/imported/reticle.png-0a9f831dae57a5cb1ef00786d2ed0e86.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
|
BIN
assets/ui/hud/reticle_large.png
(Stored with Git LFS)
Normal file
BIN
assets/ui/hud/reticle_large.png
(Stored with Git LFS)
Normal file
Binary file not shown.
35
assets/ui/hud/reticle_large.png.import
Normal file
35
assets/ui/hud/reticle_large.png.import
Normal file
@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bn0gcsy37ahto"
|
||||
path.s3tc="res://.godot/imported/reticle_large.png-a42ebbd3708980136abe85bbfa9ef8bb.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/ui/hud/reticle_large.png"
|
||||
dest_files=["res://.godot/imported/reticle_large.png-a42ebbd3708980136abe85bbfa9ef8bb.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
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cc102xko0u6yj"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/equipment/point_spray/point_spray.gd" id="1_2yl2v"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdnurvg7xe6k7" path="res://assets/ui/hud/reticle.png" id="1_f2scl"]
|
||||
[ext_resource type="Texture2D" uid="uid://bn0gcsy37ahto" path="res://assets/ui/hud/reticle_large.png" id="2_qcl8j"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ng43h"]
|
||||
transparency = 1
|
||||
@ -31,5 +31,5 @@ skeleton = NodePath("../../../..")
|
||||
[node name="Decal" type="Decal" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.47035e-08, -1, 0, 1, -4.47035e-08, 0, 0, -1)
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
texture_albedo = ExtResource("1_f2scl")
|
||||
texture_albedo = ExtResource("2_qcl8j")
|
||||
cull_mask = 1048573
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="Script" path="res://src/player/player.gd" id="1_npueo"]
|
||||
[ext_resource type="Script" path="res://src/player/camera_controller.gd" id="2_veeqv"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2hnxr5l6w2x4" path="res://src/equipment/wide_spray/wide_spray.tscn" id="3_ibq07"]
|
||||
[ext_resource type="PackedScene" uid="uid://cc102xko0u6yj" path="res://src/equipment/point_spray/point_spray.tscn" id="3_ybw6c"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ua7a2"]
|
||||
size = Vector3(0.05, 0.05, 0.3)
|
||||
@ -30,7 +30,7 @@ mesh = SubResource("BoxMesh_ua7a2")
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 0.997564, -0.0697565, 0, 0.0697565, 0.997564, 0, 0, -0.15)
|
||||
|
||||
[node name="WideSpray" parent="CameraPivot/SprayNozzle/SprayMuzzle" instance=ExtResource("3_ibq07")]
|
||||
[node name="PointSpray" parent="CameraPivot/SprayNozzle/SprayMuzzle" instance=ExtResource("3_ybw6c")]
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CameraPivot"]
|
||||
current = true
|
||||
|
@ -31,7 +31,13 @@ float hardstep(float value) {
|
||||
|
||||
void fragment() {
|
||||
vec2 local_uv = floor(UV * uv_scale * pixellation) / pixellation;
|
||||
|
||||
// swirl
|
||||
vec3 uvt = vec3(local_uv.x, local_uv.y, TIME * time_scale);
|
||||
uvt.x += sin(uvt.y * 1.54 * PI + uvt.z) * cos(uvt.y * 1.31 * PI + uvt.z) * 0.2;
|
||||
uvt.y += cos(uvt.x * 1.74 * PI + uvt.z) * -sin(uvt.y * 1.64 * PI + uvt.z) * 0.3;
|
||||
|
||||
|
||||
float value = texture(gunk_noise, uvt).r;
|
||||
vec3 color = mix(color_1, color_2, value);
|
||||
|
||||
|
66
src/shaders/gunkwave.gdshader
Normal file
66
src/shaders/gunkwave.gdshader
Normal file
@ -0,0 +1,66 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx, sss_mode_skin;
|
||||
|
||||
uniform vec3 color_1: source_color = vec3(0.0, 0.03, 0.1);
|
||||
uniform vec3 color_2: source_color = vec3(0.0, 0.1, 0.3);
|
||||
uniform vec3 emission_color: source_color = vec3(0.25, 0.88, 1.0);
|
||||
|
||||
uniform float pixellation = 50.0;
|
||||
|
||||
uniform float roughness: hint_range(0.0, 1.0) = 0.15;
|
||||
uniform float specular_contribution = 0.8;
|
||||
uniform float emission_strength = 0.05;
|
||||
|
||||
// Used ONLY by the gunk, does not affect the gunk mask.
|
||||
uniform vec2 uv_scale = vec2(1.0);
|
||||
|
||||
uniform float time_scale = 1.0;
|
||||
|
||||
uniform float edge_bleed = 0.1;
|
||||
|
||||
uniform sampler2D gunk_mask;
|
||||
|
||||
uniform highp sampler3D gunk_noise;
|
||||
uniform highp sampler3D gunk_normal_map;
|
||||
|
||||
|
||||
float hardstep(float value) {
|
||||
float x = clamp(value, 0.0, 1.0);
|
||||
return 0.5 * tanh( (20.0 * x - 10.0) * inversesqrt(x - x * x) ) + 0.5;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 local_uv = floor(UV * uv_scale * pixellation) / pixellation;
|
||||
|
||||
// wave
|
||||
vec3 uvt = vec3(local_uv.x, local_uv.y, TIME * time_scale);
|
||||
uvt.x += sin(uvt.y * 1.54 * PI + uvt.z) * cos(uvt.y * 1.31 * PI + uvt.z);
|
||||
uvt.y += cos(uvt.x * 1.74 * PI + uvt.z) * -sin(uvt.y * 1.64 * PI + uvt.z);
|
||||
|
||||
|
||||
float value = texture(gunk_noise, uvt).r;
|
||||
vec3 color = mix(color_1, color_2, value);
|
||||
|
||||
ALBEDO = color.rgb;
|
||||
ROUGHNESS = value * roughness;
|
||||
EMISSION = (1.0 - value) * emission_color * emission_strength;
|
||||
SPECULAR = 0.5 * inversesqrt(specular_contribution);
|
||||
NORMAL_MAP = texture(gunk_normal_map, uvt).xyz;
|
||||
|
||||
float mask = texture(gunk_mask, UV).r;
|
||||
|
||||
// soften edges
|
||||
NORMAL_MAP *= smoothstep(1.0, 0.0, mask);
|
||||
|
||||
/*
|
||||
// Hard edge
|
||||
if(mask + edge_bleed < 0.5) {
|
||||
ALPHA = 1.0;
|
||||
} else {
|
||||
ALPHA = 0.0;
|
||||
}
|
||||
*/
|
||||
|
||||
// Hardish edge
|
||||
ALPHA = hardstep(1.0 - mask + edge_bleed);
|
||||
}
|
@ -9,9 +9,6 @@ script = ExtResource("1_qqbpr")
|
||||
[node name="MaskViewport" type="SubViewport" parent="."]
|
||||
unique_name_in_owner = true
|
||||
handle_input_locally = false
|
||||
msaa_2d = 3
|
||||
canvas_item_default_texture_filter = 0
|
||||
canvas_item_default_texture_repeat = 1
|
||||
size = Vector2i(1024, 1024)
|
||||
render_target_clear_mode = 1
|
||||
render_target_update_mode = 4
|
||||
|
Loading…
x
Reference in New Issue
Block a user