From 63e32a6fc92baecea75942d9389c9fb17540277d Mon Sep 17 00:00:00 2001 From: yum Date: Sun, 23 Feb 2025 16:32:47 -0800 Subject: Add UV domain warping --- 2ner.shader | 11 ++++++++++- features.cginc | 4 ++++ globals.cginc | 6 ++++++ math.cginc | 5 ++++- yum_pbr.cginc | 7 +++++++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/2ner.shader b/2ner.shader index c87db80..a0b4689 100644 --- a/2ner.shader +++ b/2ner.shader @@ -53,7 +53,7 @@ Shader "yum_food/2ner" [HideInInspector] m_start_AO("Ambient occlusion", Float) = 0 [ThryToggle(_AMBIENT_OCCLUSION)]_Ambient_Occlusion_Enabled("Enable", Float) = 0 _OcclusionMap("Ambient occlusion", 2D) = "white" {} - _OcclusionStrength("Ambient occlusion", Range(0,1)) = 1 + _OcclusionStrength("Ambient occlusion", Float) = 1 [HideInInspector] m_end_AO("Metallics", Float) = 0 //endex @@ -244,6 +244,15 @@ Shader "yum_food/2ner" [HideInInspector] m_end_Vertex_Domain_Warping("Vertex domain warping", Float) = 0 //endex + //ifex _UV_Domain_Warping_Enabled==0 + [HideInInspector] m_start_UV_Domain_Warping("UV domain warping", Float) = 0 + [ThryToggle(_UV_DOMAIN_WARPING)]_UV_Domain_Warping_Enabled("Enable", Float) = 0 + _UV_Domain_Warping_Spatial_Strength("Spatial warping strength", Float) = 0.10 + _UV_Domain_Warping_Spatial_Scale("Spatial warping scale", Float) = 0.10 + _UV_Domain_Warping_Spatial_Octaves("Spatial warping octaves", Float) = 1.0 + [HideInInspector] m_end_UV_Domain_Warping("UV domain warping", Float) = 0 + //endex + //ifex _Eye_Effect_00_Enabled==0 [HideInInspector] m_start_Eye_Effect_00("Eye effect 00", Float) = 0 [ThryToggle(_EYE_EFFECT_00)]_Eye_Effect_00_Enabled("Enable", Float) = 0 diff --git a/features.cginc b/features.cginc index 82d8322..bead254 100644 --- a/features.cginc +++ b/features.cginc @@ -75,6 +75,10 @@ #pragma shader_feature_local _VERTEX_DOMAIN_WARPING //endex +//ifex _UV_Domain_Warping_Enabled==0 +#pragma shader_feature_local _UV_DOMAIN_WARPING +//endex + //ifex _Eye_Effect_00_Enabled==0 #pragma shader_feature_local _EYE_EFFECT_00 //endex diff --git a/globals.cginc b/globals.cginc index e991342..90434ec 100644 --- a/globals.cginc +++ b/globals.cginc @@ -175,6 +175,12 @@ float _Vertex_Domain_Warping_Speed; float _Vertex_Domain_Warping_Temporal_Strength; #endif // _VERTEX_DOMAIN_WARPING +#if defined(_UV_DOMAIN_WARPING) +float _UV_Domain_Warping_Spatial_Strength; +float _UV_Domain_Warping_Spatial_Scale; +float _UV_Domain_Warping_Spatial_Octaves; +#endif + #if defined(_EYE_EFFECT_00) float _Gimmick_Eye_Effect_00_Edge_Length; float3 _Gimmick_Eye_Effect_00_Period; diff --git a/math.cginc b/math.cginc index 8edbc88..f3af30a 100644 --- a/math.cginc +++ b/math.cginc @@ -5,6 +5,7 @@ #define PI 3.14159265358979323846264 #define TAU (2 * PI) +#define PHI 1.618033989 float pow5(float x) { @@ -65,12 +66,14 @@ float2 domainWarp1(float x, uint octaves, float strength, float scale) float2 domainWarp2(float2 uv, uint octaves, float strength, float scale) { + uv *= 0.001; [loop] for (uint i = 0; i < octaves; i++) { uv += strength * frac(sin(float2( dot(uv * scale, float2(12.9898, 78.233)), - dot(uv * scale + 1, float2(12.9898, 78.233))) * 43758.5453123)); + dot(uv * scale, float2(36.7539, 50.3658))) * 43758.5453123)); } + uv *= 1000; return uv; } diff --git a/yum_pbr.cginc b/yum_pbr.cginc index fb14ac1..a01bc63 100644 --- a/yum_pbr.cginc +++ b/yum_pbr.cginc @@ -4,6 +4,7 @@ #include "features.cginc" #include "filamented.cginc" #include "globals.cginc" +#include "math.cginc" #include "texture_utils.cginc" struct YumPbr { @@ -22,6 +23,12 @@ struct YumPbr { YumPbr GetYumPbr(v2f i) { YumPbr result; + float2 raw_uv = i.uv01.xy; +#if defined(_UV_DOMAIN_WARPING) + i.uv01.xy = domainWarp2(i.uv01.xy, _UV_Domain_Warping_Spatial_Octaves, + _UV_Domain_Warping_Spatial_Strength, _UV_Domain_Warping_Spatial_Scale); +#endif + #if defined(OUTLINE_PASS) result.albedo = _Outline_Color; result.albedo.a *= tex2D(_MainTex, -- cgit v1.2.3