summaryrefslogtreecommitdiffstats
path: root/vertex_domain_warping.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-03-29 21:15:57 -0700
committeryum <yum.food.vr@gmail.com>2025-03-29 21:15:57 -0700
commit3f1915bbd0e6176e625c484cf24a460cc88bfeac (patch)
treed71f97e21e430ce61e1b748ec30ba7cfb3b7d1d1 /vertex_domain_warping.cginc
parent6579d30f558908c23889f9e691a5932a49ecdedd (diff)
Add basic audiolink to vertex domain warping
Diffstat (limited to 'vertex_domain_warping.cginc')
-rw-r--r--vertex_domain_warping.cginc30
1 files changed, 24 insertions, 6 deletions
diff --git a/vertex_domain_warping.cginc b/vertex_domain_warping.cginc
index 0eea172..3bbc5cd 100644
--- a/vertex_domain_warping.cginc
+++ b/vertex_domain_warping.cginc
@@ -1,15 +1,33 @@
#ifndef __VERTEX_DOMAIN_WARPING_INC
#define __VERTEX_DOMAIN_WARPING_INC
+#include "audiolink.cginc"
+#include "globals.cginc"
#include "math.cginc"
-float3 domainWarpVertexPosition(float3 vertex, float3 normal, float3 tangent,
- float3 binormal, float3 worldPos, float3 centerCamPos) {
- float3 worldNormal = UnityObjectToWorldNormal(normal);
- float3 worldTangent = UnityObjectToWorldDir(tangent);
- float3 worldBinormal = cross(worldNormal, worldTangent) * tangent.w * unity_WorldTransformParams.w;
+float3 domainWarpVertexPosition(float3 objPos) {
+#if defined(_VERTEX_DOMAIN_WARPING)
+ float speed = _Vertex_Domain_Warping_Speed;
+ float scale = _Vertex_Domain_Warping_Scale;
+ float strength = _Vertex_Domain_Warping_Strength;
+ float octaves = _Vertex_Domain_Warping_Octaves;
- float3 worldPos = mul(unity_ObjectToWorld, vertex);
+#if defined(_VERTEX_DOMAIN_WARPING_AUDIOLINK)
+ [branch]
+ if (AudioLinkIsAvailable()) {
+ float vu = AudioLinkData(ALPASS_FILTEREDVU_INTENSITY + uint2(0, 0));
+ strength += vu * _Vertex_Domain_Warping_Audiolink_VU_Factors.x;
+ scale += vu * _Vertex_Domain_Warping_Audiolink_VU_Factors.y;
+ }
+#endif
+
+ for (uint i = 0; i < octaves; i++) {
+ float3 uv = objPos * scale + speed * _Time[0];
+ float3 noise = _Vertex_Domain_Warping_Noise.SampleLevel(trilinear_repeat_s, uv, 0);
+ objPos += (noise * 2 - 1) * strength;
+ }
+#endif // _VERTEX_DOMAIN_WARPING
+ return objPos;
}
#endif // __VERTEX_DOMAIN_WARPING_INC