diff options
| author | yum <yum.food.vr@gmail.com> | 2025-03-29 21:15:57 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-03-29 21:15:57 -0700 |
| commit | 3f1915bbd0e6176e625c484cf24a460cc88bfeac (patch) | |
| tree | d71f97e21e430ce61e1b748ec30ba7cfb3b7d1d1 /vertex_domain_warping.cginc | |
| parent | 6579d30f558908c23889f9e691a5932a49ecdedd (diff) | |
Add basic audiolink to vertex domain warping
Diffstat (limited to 'vertex_domain_warping.cginc')
| -rw-r--r-- | vertex_domain_warping.cginc | 30 |
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
|
