From 1560dffa9adaf79a2caf161e81179921786ab9d7 Mon Sep 17 00:00:00 2001 From: lunarcleint <88809950+lunarcleint@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:21:07 -0700 Subject: [PATCH] wrong shader --- assets/shaders/engine/editorWaveforms.frag | 35 +++++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/assets/shaders/engine/editorWaveforms.frag b/assets/shaders/engine/editorWaveforms.frag index 1134581b..28734524 100644 --- a/assets/shaders/engine/editorWaveforms.frag +++ b/assets/shaders/engine/editorWaveforms.frag @@ -4,6 +4,7 @@ // Used in charter by waveforms -lunar uniform vec2 textureRes; +uniform float pixelOffset; uniform sampler2D waveformTexture; uniform ivec2 waveformSize; @@ -11,7 +12,7 @@ uniform ivec2 waveformSize; float getAmplitude(vec2 pixel) { float amplitudeRet = 0.; // look in charter for more how it works -lunar - float pixelID = floor(pixel.y/3.); + float pixelID = floor((pixel.y+pixelOffset)/3.); vec2 wavePixel = vec2(mod(pixelID, waveformSize.x), floor(pixelID/waveformSize.x)); vec4 waveData = texture2D(waveformTexture, wavePixel / waveformSize); @@ -24,21 +25,39 @@ float getAmplitude(vec2 pixel) { return amplitudeRet; } +bool inWaveForm(vec2 pixel, float width) { + float widthdiv2 = width/2.; + return pixel.x > widthdiv2 && pixel.x < textureRes.x-widthdiv2; +} + +float getAmplitudePixel(vec2 pixel, vec2 offset) { + return getAmplitude(pixel + offset); +} + +const vec3 gradient1 = vec3(114./255., 81./255., 135./255); +const vec3 gradient2 = vec3(144./255., 80./255., 186./255); + void main() { vec2 pixel = openfl_TextureCoordv * textureRes; + float amplitude = getAmplitude(pixel); float ampwidth = (1.-amplitude) * textureRes.x; - gl_FragColor = vec4(0.); // transprenty + gl_FragColor = vec4(0.); - if (pixel.x > (ampwidth/2.) && pixel.x < (textureRes.x-(ampwidth/2.))) { - vec3 waveColor = vec3(0.); - float outline = 2.; + if (inWaveForm(pixel, ampwidth)) { + vec3 gradientColor = mix(gradient1, gradient2, openfl_TextureCoordv.x); - if (pixel.x > ((ampwidth-outline)/2.) && pixel.x < (textureRes.x-((ampwidth-outline)/2.))) - waveColor = vec3(openfl_TextureCoordv.x); + float ampwidthHighlight = (1.-(amplitude*(1./3.))) * textureRes.x; + if (inWaveForm(pixel, ampwidthHighlight)) { + float remapCoord = (ampwidthHighlight/textureRes.x)/2.; - gl_FragColor = vec4(waveColor, 1.); + float mappedCoord = map(openfl_TextureCoordv.x, remapCoord, 1.-remapCoord, 0., 1.); + float hightlightAmount = 1.-(abs(mappedCoord-0.5)*2.); + + gradientColor = mix(gradientColor, gradientColor * vec3(1.8), map(hightlightAmount, 0., 1., .4, 1.)); + } + gl_FragColor = vec4(vec3(gradientColor * mix(0.5, .8, amplitude)), 1.); } } \ No newline at end of file