summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-02-23 16:32:47 -0800
committeryum <yum.food.vr@gmail.com>2025-02-23 16:32:47 -0800
commit63e32a6fc92baecea75942d9389c9fb17540277d (patch)
tree258d1897e7633c358b1121c9e84e9af1f7437174
parentf478606867d42e971c5fa83803f3255e922e6a8a (diff)
Add UV domain warping
-rw-r--r--2ner.shader11
-rw-r--r--features.cginc4
-rw-r--r--globals.cginc6
-rw-r--r--math.cginc5
-rw-r--r--yum_pbr.cginc7
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,