You've already forked minecraft-assets
Create/Update assets for version 3D Shareware v1.34
This commit is contained in:
58
assets/minecraft/shaders/program/wobble.fsh
Normal file
58
assets/minecraft/shaders/program/wobble.fsh
Normal file
@@ -0,0 +1,58 @@
|
||||
#version 120
|
||||
|
||||
uniform sampler2D DiffuseSampler;
|
||||
|
||||
varying vec2 texCoord;
|
||||
varying vec2 oneTexel;
|
||||
|
||||
uniform vec2 InSize;
|
||||
|
||||
uniform float Time;
|
||||
uniform vec2 Frequency;
|
||||
uniform vec2 WobbleAmount;
|
||||
|
||||
vec3 hue(float h)
|
||||
{
|
||||
float r = abs(h * 6.0 - 3.0) - 1.0;
|
||||
float g = 2 - abs(h * 6.0 - 2.0);
|
||||
float b = 2 - abs(h * 6.0 - 4.0);
|
||||
return clamp(vec3(r,g,b), 0.0, 1.0);
|
||||
}
|
||||
|
||||
vec3 HSVtoRGB(vec3 hsv) {
|
||||
return ((hue(hsv.x) - 1.0) * hsv.y + 1.0) * hsv.z;
|
||||
}
|
||||
|
||||
vec3 RGBtoHSV(vec3 rgb) {
|
||||
vec3 hsv = vec3(0.0);
|
||||
hsv.z = max(rgb.r, max(rgb.g, rgb.b));
|
||||
float min = min(rgb.r, min(rgb.g, rgb.b));
|
||||
float c = hsv.z - min;
|
||||
|
||||
if (c != 0)
|
||||
{
|
||||
hsv.y = c / hsv.z;
|
||||
vec3 delta = (hsv.z - rgb) / c;
|
||||
delta.rgb -= delta.brg;
|
||||
delta.rg += vec2(2.0, 4.0);
|
||||
if (rgb.r >= hsv.z) {
|
||||
hsv.x = delta.b;
|
||||
} else if (rgb.g >= hsv.z) {
|
||||
hsv.x = delta.r;
|
||||
} else {
|
||||
hsv.x = delta.g;
|
||||
}
|
||||
hsv.x = fract(hsv.x / 6.0);
|
||||
}
|
||||
return hsv;
|
||||
}
|
||||
|
||||
void main() {
|
||||
float xOffset = sin(texCoord.y * Frequency.x + Time * 3.1415926535 * 2.0) * WobbleAmount.x;
|
||||
float yOffset = cos(texCoord.x * Frequency.y + Time * 3.1415926535 * 2.0) * WobbleAmount.y;
|
||||
vec2 offset = vec2(xOffset, yOffset);
|
||||
vec4 rgb = texture2D(DiffuseSampler, texCoord + offset);
|
||||
vec3 hsv = RGBtoHSV(rgb.rgb);
|
||||
hsv.x = fract(hsv.x + Time);
|
||||
gl_FragColor = vec4(HSVtoRGB(hsv), 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user