|
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64 User : ServerPC ( 0) PHP Version : 8.2.12 Disable Function : NONE Directory : C:/Program Files (x86)/Steam/steamapps/common/wallpaper_engine/assets/shaders/ |
Upload File : |
#include "common_fragment.h"
uniform sampler2D g_Texture0;
uniform sampler2D g_Texture1;
uniform sampler2D g_Texture2;
#if TINT
uniform vec3 g_Color1; // {"material":"color1","default":"0 0 0"}
uniform vec3 g_Color2; // {"material":"color2","default":"0 0 0"}
uniform vec3 g_Color3; // {"material":"color3","default":"1 1 1"}
#endif
uniform float g_WaveStrength; // {"material":"Strength","default":0.5}
varying vec2 v_TexCoord;
varying vec4 v_NormalCoord;
void main() {
vec2 normalCoords1 = v_NormalCoord.xy;
vec2 normalCoords2 = v_NormalCoord.zw;
normalCoords1.x -= ((0.5 - v_TexCoord.x) * (1 - v_TexCoord.y)) * 3;
normalCoords1.x += 2 * pow(v_TexCoord.y - 0.1, 3) * pow(v_TexCoord.x, 2);
normalCoords2.x -= ((1.0 - v_TexCoord.x) * (1 - v_TexCoord.y)) * 2;
vec3 normal = DecompressNormal(texSample2D(g_Texture1, normalCoords1));
normal *= DecompressNormal(texSample2D(g_Texture1, normalCoords2));
//normal.xy += DecompressNormal(texSample2D(g_Texture1, normalCoords2)).xy;
normal = mix(vec3(0, 0, 1), normal, g_WaveStrength);
normal = normalize(normal);
vec2 baseCoords = v_TexCoord.xy + normal.xy * 0.02;
//vec2 baseCoords2 = v_TexCoord.xy + normal.xy * 0.1;
//clip(baseCoords2.y - 0.1);
//clip(0.9 - baseCoords2.y);
//clip(baseCoords2.x - 0.18);
//clip(0.82 - baseCoords2.x);
vec3 albedo = texSample2D(g_Texture0, baseCoords.xy).rgb;
float cloth = texSample2D(g_Texture2, baseCoords.xy * 4).r;
#if TINT
vec3 color = mix(g_Color1, g_Color2, albedo.r);
color = mix(color, g_Color3, albedo.g);
color *= albedo.b * cloth;
color += cloth * 0.1;
#else
vec3 color = albedo;
#endif
float light = 0.2 + dot(vec3(0.707, 0.707, 0), normal) * 0.5 + 0.5;
light += pow(light, 5) * 0.5;
color *= light + light * saturate(cloth * 2 - 1);
// Vignette
//float vignette = length(v_TexCoord.xy - 0.5);
//color *= smoothstep(0.7, 0.2, vignette);
// gl_FragColor = albedo;
gl_FragColor.rgb = color;
gl_FragColor.a = 1;
//gl_FragColor.rgb = (normal * 0.5 + 0.5);
}