Initial
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
/**
|
||||
* Bewitching Wave animation illumination shader
|
||||
*/
|
||||
class BewitchingWaveIlluminationShader extends AdaptiveIlluminationShader {
|
||||
static fragmentShader = `
|
||||
${this.SHADER_HEADER}
|
||||
${this.PRNG}
|
||||
${this.NOISE}
|
||||
${this.FBM(4, 1.0)}
|
||||
${this.PERCEIVED_BRIGHTNESS}
|
||||
|
||||
// Transform UV
|
||||
vec2 transform(in vec2 uv, in float dist) {
|
||||
float t = time * 0.25;
|
||||
mat2 rotmat = mat2(cos(t), -sin(t), sin(t), cos(t));
|
||||
mat2 scalemat = mat2(2.5, 0.0, 0.0, 2.5);
|
||||
uv -= vec2(0.5);
|
||||
uv *= rotmat * scalemat;
|
||||
uv += vec2(0.5);
|
||||
return uv;
|
||||
}
|
||||
|
||||
float bwave(in float dist) {
|
||||
vec2 uv = transform(vUvs, dist);
|
||||
float motion = fbm(uv + time * 0.25);
|
||||
float distortion = mix(1.0, motion, clamp(1.0 - dist, 0.0, 1.0));
|
||||
float sinWave = 0.5 * (sin(-time * 6.0 + dist * 10.0 * intensity * distortion) + 1.0);
|
||||
return 0.3 * sinWave + 0.8;
|
||||
}
|
||||
|
||||
void main() {
|
||||
${this.FRAGMENT_BEGIN}
|
||||
${this.TRANSITION}
|
||||
finalColor *= bwave(dist);
|
||||
${this.ADJUSTMENTS}
|
||||
${this.FALLOFF}
|
||||
${this.FRAGMENT_END}
|
||||
}`;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Bewitching Wave animation coloration shader
|
||||
*/
|
||||
class BewitchingWaveColorationShader extends AdaptiveColorationShader {
|
||||
static fragmentShader = `
|
||||
${this.SHADER_HEADER}
|
||||
${this.PRNG}
|
||||
${this.NOISE}
|
||||
${this.FBM(4, 1.0)}
|
||||
${this.PERCEIVED_BRIGHTNESS}
|
||||
|
||||
// Transform UV
|
||||
vec2 transform(in vec2 uv, in float dist) {
|
||||
float t = time * 0.25;
|
||||
mat2 rotmat = mat2(cos(t), -sin(t), sin(t), cos(t));
|
||||
mat2 scalemat = mat2(2.5, 0.0, 0.0, 2.5);
|
||||
uv -= vec2(0.5);
|
||||
uv *= rotmat * scalemat;
|
||||
uv += vec2(0.5);
|
||||
return uv;
|
||||
}
|
||||
|
||||
float bwave(in float dist) {
|
||||
vec2 uv = transform(vUvs, dist);
|
||||
float motion = fbm(uv + time * 0.25);
|
||||
float distortion = mix(1.0, motion, clamp(1.0 - dist, 0.0, 1.0));
|
||||
float sinWave = 0.5 * (sin(-time * 6.0 + dist * 10.0 * intensity * distortion) + 1.0);
|
||||
return 0.55 * sinWave + 0.8;
|
||||
}
|
||||
|
||||
void main() {
|
||||
${this.FRAGMENT_BEGIN}
|
||||
finalColor = color * bwave(dist) * colorationAlpha;
|
||||
${this.COLORATION_TECHNIQUES}
|
||||
${this.ADJUSTMENTS}
|
||||
${this.FALLOFF}
|
||||
${this.FRAGMENT_END}
|
||||
}`;
|
||||
}
|
||||
Reference in New Issue
Block a user