built more assets and started playing with foliage painting
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix,cull_disabled,unshaded,depth_draw_opaque,depth_test_disabled;
|
||||
|
||||
|
||||
// Base color + opacity
|
||||
uniform vec4 albedo : source_color;
|
||||
|
||||
|
||||
void fragment() {
|
||||
ALBEDO = albedo.rgb;
|
||||
|
||||
if (length(UV - vec2(0.5)) > 0.5) {
|
||||
discard;
|
||||
}
|
||||
|
||||
// Fancy dithered alpha stuff
|
||||
float opacity = albedo.a;
|
||||
int x = int(FRAGCOORD.x) % 4;
|
||||
int y = int(FRAGCOORD.y) % 4;
|
||||
int index = x + y * 4;
|
||||
float limit = 0.0;
|
||||
|
||||
if (x < 8) {
|
||||
if (index == 0) limit = 0.0625;
|
||||
if (index == 1) limit = 0.5625;
|
||||
if (index == 2) limit = 0.1875;
|
||||
if (index == 3) limit = 0.6875;
|
||||
if (index == 4) limit = 0.8125;
|
||||
if (index == 5) limit = 0.3125;
|
||||
if (index == 6) limit = 0.9375;
|
||||
if (index == 7) limit = 0.4375;
|
||||
if (index == 8) limit = 0.25;
|
||||
if (index == 9) limit = 0.75;
|
||||
if (index == 10) limit = 0.125;
|
||||
if (index == 11) limit = 0.625;
|
||||
if (index == 12) limit = 1.0;
|
||||
if (index == 13) limit = 0.5;
|
||||
if (index == 14) limit = 0.875;
|
||||
if (index == 15) limit = 0.375;
|
||||
}
|
||||
// Skip drawing a pixel below the opacity limit
|
||||
if (opacity < limit)
|
||||
discard;
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix,cull_disabled,unshaded,depth_draw_opaque;
|
||||
|
||||
|
||||
// Base color + opacity
|
||||
uniform vec4 albedo : source_color;
|
||||
// Brush diameter
|
||||
uniform float proximity_multiplier = 1.0;
|
||||
// Distance at which proximity highlight occurs
|
||||
uniform float proximity_treshold = 0.4;
|
||||
// Depth texture
|
||||
uniform sampler2D depth_texture : hint_depth_texture;
|
||||
|
||||
|
||||
void fragment() {
|
||||
ALBEDO = albedo.rgb;
|
||||
|
||||
// Fancy dithered alpha stuff
|
||||
float opacity = albedo.a;
|
||||
int x = int(FRAGCOORD.x) % 4;
|
||||
int y = int(FRAGCOORD.y) % 4;
|
||||
int index = x + y * 4;
|
||||
float limit = 0.0;
|
||||
|
||||
if (x < 8) {
|
||||
if (index == 0) limit = 0.0625;
|
||||
if (index == 1) limit = 0.5625;
|
||||
if (index == 2) limit = 0.1875;
|
||||
if (index == 3) limit = 0.6875;
|
||||
if (index == 4) limit = 0.8125;
|
||||
if (index == 5) limit = 0.3125;
|
||||
if (index == 6) limit = 0.9375;
|
||||
if (index == 7) limit = 0.4375;
|
||||
if (index == 8) limit = 0.25;
|
||||
if (index == 9) limit = 0.75;
|
||||
if (index == 10) limit = 0.125;
|
||||
if (index == 11) limit = 0.625;
|
||||
if (index == 12) limit = 1.0;
|
||||
if (index == 13) limit = 0.5;
|
||||
if (index == 14) limit = 0.875;
|
||||
if (index == 15) limit = 0.375;
|
||||
}
|
||||
// Skip drawing a pixel below the opacity limit
|
||||
if (opacity < limit)
|
||||
discard;
|
||||
|
||||
// Proximity highlight to make brush bounds more visible in the scene
|
||||
float depth_tex = texture(depth_texture, SCREEN_UV).x;
|
||||
// fix from https://www.reddit.com/r/godot/comments/wb0jw7/godot_4_alpha_12_depth_texture_not_working/
|
||||
// depth texture in 4.0 is automaticaly within neccessary range
|
||||
vec3 ndc = vec3(SCREEN_UV * 2.0 - 1.0, texture(depth_texture,SCREEN_UV).x);
|
||||
vec4 view = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, depth_tex, 1.0);
|
||||
view.xyz /= view.w;
|
||||
float proximity = 1.0 - clamp(1.0 - smoothstep(view.z + proximity_treshold * proximity_multiplier, view.z, VERTEX.z), 0.0, 1.0);
|
||||
|
||||
// Highlight pixels that are close to other geometry
|
||||
ALBEDO = clamp(ALBEDO + vec3(proximity * 0.5), 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dgfk5ryw7qatd"]
|
||||
|
||||
[ext_resource type="Shader" path="res://addons/dreadpon.spatial_gardener/shaders/sh_circle_brush.gdshader" id="1"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1")
|
||||
shader_parameter/albedo = Color(0.172549, 0.32549, 0.65098, 0.501961)
|
||||
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://ldawlc0e5u8w"]
|
||||
|
||||
[ext_resource type="Shader" path="res://addons/dreadpon.spatial_gardener/shaders/sh_sphere_brush.gdshader" id="1"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1")
|
||||
shader_parameter/albedo = Color(0.172549, 0.32549, 0.65098, 0.501961)
|
||||
shader_parameter/proximity_multiplier = 1.0
|
||||
shader_parameter/proximity_treshold = 0.4
|
||||
Reference in New Issue
Block a user