Files
Foundry-VTT-Docker/resources/app/client/pixi/webgl/shaders/vision/effects/amplification.js
2025-01-04 00:34:03 +01:00

30 lines
820 B
JavaScript

/**
* Shader specialized in light amplification
*/
class AmplificationBackgroundVisionShader extends BackgroundVisionShader {
/** @inheritdoc */
static fragmentShader = `
${this.SHADER_HEADER}
${this.PERCEIVED_BRIGHTNESS}
void main() {
${this.FRAGMENT_BEGIN}
float lum = perceivedBrightness(baseColor.rgb);
vec3 vision = vec3(smoothstep(0.0, 1.0, lum * 1.5)) * colorTint;
finalColor = vision + (vision * (lum + brightness) * 0.1) + (baseColor.rgb * (1.0 - computedDarknessLevel) * 0.125);
${this.ADJUSTMENTS}
${this.BACKGROUND_TECHNIQUES}
${this.FALLOFF}
${this.FRAGMENT_END}
}`;
/** @inheritdoc */
static defaultUniforms = ({...super.defaultUniforms, colorTint: [0.38, 0.8, 0.38], brightness: 0.5});
/** @inheritdoc */
get isRequired() {
return true;
}
}