30 lines
820 B
JavaScript
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;
|
|
}
|
|
}
|