132 lines
3.4 KiB
Plaintext
132 lines
3.4 KiB
Plaintext
[gd_resource type="ShaderMaterial" load_steps=11 format=2]
|
|
|
|
[ext_resource path="res://Assets/green_felt_ambientOcclusion.png" type="Texture" id=1]
|
|
[ext_resource path="res://Assets/green_felt_basecolor.png" type="Texture" id=2]
|
|
[ext_resource path="res://Assets/green_felt_normal.png" type="Texture" id=3]
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id=1]
|
|
output_port_for_preview = 0
|
|
texture = ExtResource( 2 )
|
|
texture_type = 1
|
|
|
|
[sub_resource type="VisualShaderNodeVectorOp" id=2]
|
|
output_port_for_preview = 0
|
|
default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0.15, 0.15, 0.15 ) ]
|
|
operator = 2
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id=3]
|
|
texture = ExtResource( 3 )
|
|
texture_type = 2
|
|
|
|
[sub_resource type="VisualShaderNodeTexture" id=4]
|
|
texture = ExtResource( 1 )
|
|
|
|
[sub_resource type="VisualShaderNodeVectorDecompose" id=5]
|
|
|
|
[sub_resource type="VisualShaderNodeColorOp" id=6]
|
|
default_input_values = [ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0.1, 0 ) ]
|
|
operator = 7
|
|
|
|
[sub_resource type="VisualShader" id=7]
|
|
code = "shader_type spatial;
|
|
render_mode specular_schlick_ggx;
|
|
|
|
uniform sampler2D tex_frg_2 : hint_albedo;
|
|
uniform sampler2D tex_frg_7;
|
|
uniform sampler2D tex_frg_6 : hint_normal;
|
|
|
|
|
|
|
|
void vertex() {
|
|
// Output:0
|
|
|
|
}
|
|
|
|
void fragment() {
|
|
// Texture:2
|
|
vec4 tex_frg_2_read = texture(tex_frg_2, UV.xy);
|
|
vec3 n_out2p0 = tex_frg_2_read.rgb;
|
|
float n_out2p1 = tex_frg_2_read.a;
|
|
|
|
// VectorOp:4
|
|
vec3 n_in4p1 = vec3(0.15000, 0.15000, 0.15000);
|
|
vec3 n_out4p0 = n_out2p0 * n_in4p1;
|
|
|
|
// ColorOp:9
|
|
vec3 n_in9p1 = vec3(0.00000, 0.10000, 0.00000);
|
|
vec3 n_out9p0;
|
|
{
|
|
float base = n_out4p0.x;
|
|
float blend = n_in9p1.x;
|
|
if (base < 0.5) {
|
|
n_out9p0.x = (base * (blend + 0.5));
|
|
} else {
|
|
n_out9p0.x = (1.0 - (1.0 - base) * (1.0 - (blend - 0.5)));
|
|
}
|
|
}
|
|
{
|
|
float base = n_out4p0.y;
|
|
float blend = n_in9p1.y;
|
|
if (base < 0.5) {
|
|
n_out9p0.y = (base * (blend + 0.5));
|
|
} else {
|
|
n_out9p0.y = (1.0 - (1.0 - base) * (1.0 - (blend - 0.5)));
|
|
}
|
|
}
|
|
{
|
|
float base = n_out4p0.z;
|
|
float blend = n_in9p1.z;
|
|
if (base < 0.5) {
|
|
n_out9p0.z = (base * (blend + 0.5));
|
|
} else {
|
|
n_out9p0.z = (1.0 - (1.0 - base) * (1.0 - (blend - 0.5)));
|
|
}
|
|
}
|
|
|
|
// Texture:7
|
|
vec4 tex_frg_7_read = texture(tex_frg_7, UV.xy);
|
|
vec3 n_out7p0 = tex_frg_7_read.rgb;
|
|
float n_out7p1 = tex_frg_7_read.a;
|
|
|
|
// VectorDecompose:8
|
|
float n_out8p0 = n_out7p0.x;
|
|
float n_out8p1 = n_out7p0.y;
|
|
float n_out8p2 = n_out7p0.z;
|
|
|
|
// Texture:6
|
|
vec4 tex_frg_6_read = texture(tex_frg_6, UV.xy);
|
|
vec3 n_out6p0 = tex_frg_6_read.rgb;
|
|
float n_out6p1 = tex_frg_6_read.a;
|
|
|
|
// Output:0
|
|
ALBEDO = n_out9p0;
|
|
ROUGHNESS = n_out8p0;
|
|
AO = n_out8p0;
|
|
NORMALMAP = n_out6p0;
|
|
|
|
}
|
|
|
|
void light() {
|
|
// Output:0
|
|
|
|
}
|
|
"
|
|
graph_offset = Vector2( 349.961, 139.535 )
|
|
nodes/fragment/0/position = Vector2( 1420, 300 )
|
|
nodes/fragment/2/node = SubResource( 1 )
|
|
nodes/fragment/2/position = Vector2( 600, 80 )
|
|
nodes/fragment/4/node = SubResource( 2 )
|
|
nodes/fragment/4/position = Vector2( 940, 240 )
|
|
nodes/fragment/6/node = SubResource( 3 )
|
|
nodes/fragment/6/position = Vector2( 600, 420 )
|
|
nodes/fragment/7/node = SubResource( 4 )
|
|
nodes/fragment/7/position = Vector2( 620, 660 )
|
|
nodes/fragment/8/node = SubResource( 5 )
|
|
nodes/fragment/8/position = Vector2( 880, 720 )
|
|
nodes/fragment/9/node = SubResource( 6 )
|
|
nodes/fragment/9/position = Vector2( 1200, 280 )
|
|
nodes/fragment/connections = PoolIntArray( 2, 0, 4, 0, 7, 0, 8, 0, 6, 0, 0, 8, 8, 0, 0, 6, 8, 0, 0, 3, 4, 0, 9, 0, 9, 0, 0, 0 )
|
|
|
|
[resource]
|
|
shader = SubResource( 7 )
|