From 49b92cc6b494e70fc5bf8d5f76e59487b260dec4 Mon Sep 17 00:00:00 2001 From: xavion-lux Date: Tue, 10 Oct 2023 18:24:56 +0200 Subject: [PATCH] Updated scaling and color function for badump --- CHANGELOG.md | 8 +------- HRDisplay/Shaders/HRDisplaySingle.shader | 7 +++---- HRDisplay/Shaders/HRDisplayTriple.shader | 4 ++-- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7470eca..cb65d92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,3 @@ ### Changelog -I renamed shaders and moved files in this release so to avoid any problems please delete older versions from your project before updating. (Sorry) - -- Renamed HRDisplay to HRDisplayTriple -- Fixed a bug with the heart color not changing when beating -- Added prefabs using [Modular Avatar](https://github.com/bdunderscore/modular-avatar) for easy installation on VRC avatars -- Added animations and fx layers for VRC avatars -- Moved regular prefabs to "OtherPrefabs" folder +Improved scale and color fonction to get a nice badump effect instead of smooth continuous scaling and color change. diff --git a/HRDisplay/Shaders/HRDisplaySingle.shader b/HRDisplay/Shaders/HRDisplaySingle.shader index 5465a8b..846818f 100644 --- a/HRDisplay/Shaders/HRDisplaySingle.shader +++ b/HRDisplay/Shaders/HRDisplaySingle.shader @@ -198,9 +198,8 @@ v2f o; o.vertex = UnityObjectToClipPos(v.vertex); - half targetscale = sin(_Time * _BPM * 2) * half(0.8) + 4; - - + half targetscale = 4 - (pow(sin(_Time * _BPM), int(20)) + pow(sin(_Time * _BPM - half(1.1)), int(10)) * half(0.5)); + v.uv += half2(-0.325, -0.015); o.uv = scale(v.uv, targetscale); @@ -211,7 +210,7 @@ fixed4 frag(v2f i) : SV_Target { - fixed m = sin(_Time * _BPM * 2 + fixed(3.14))/2 + fixed(0.7); + fixed m = (pow(abs(sin(_Time * _BPM + half(3.14))), int(15)) + pow(abs(sin(_Time * _BPM + half(3.14) - half(1.1))), int(10)) * half(0.5))*0.7 + half(0.35); fixed4 col = UNITY_SAMPLE_TEX2D(_HeartTex, i.uv); col.r *= m; col.g *= m; diff --git a/HRDisplay/Shaders/HRDisplayTriple.shader b/HRDisplay/Shaders/HRDisplayTriple.shader index 961cccb..61304c3 100644 --- a/HRDisplay/Shaders/HRDisplayTriple.shader +++ b/HRDisplay/Shaders/HRDisplayTriple.shader @@ -208,7 +208,7 @@ Shader "xavion-lux/HRDisplayTriple" o.bpm = _Hundreds * 100 + _Tens * 10 + _Units; - half targetscale = sin(_Time * o.bpm * 2) * half(0.8) + 4; + half targetscale = 4 - (pow(abs(sin(_Time * o.bpm)), int(20)) + pow(abs(sin(_Time * o.bpm - half(1.1))), int(10)) * half(0.5)); v.uv += half2(-0.325, -0.015); @@ -221,7 +221,7 @@ Shader "xavion-lux/HRDisplayTriple" fixed4 frag(v2f i) : SV_Target { - fixed m = sin(_Time * i.bpm * 2 + fixed(3.14))/2 + fixed(0.7); + fixed m = (pow(abs(sin(_Time * i.bpm + half(3.14))), int(15)) + pow(abs(sin(_Time * i.bpm + half(3.14) - half(1.1))), int(10)) * half(0.5))*0.7 + half(0.35); fixed4 col = UNITY_SAMPLE_TEX2D(_HeartTex, i.uv); col.r *= m; col.g *= m;