aboutsummaryrefslogtreecommitdiff
path: root/downloads/LuminosityHighPassShader.js
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-07-09 06:00:32 +0200
committerAgando <roduccomm@gmail.com>2026-07-09 06:00:32 +0200
commit2538c91876455fe96febf441fc8dde20f2606023 (patch)
treeb74c949cdf4296d10103dd57ef8178ba427a5b39 /downloads/LuminosityHighPassShader.js
parentea4d09fb5ccba12ed774fcf7c913edfa1e6a851a (diff)
auto: 2026-07-09_06:00 changes
Diffstat (limited to 'downloads/LuminosityHighPassShader.js')
-rw-r--r--downloads/LuminosityHighPassShader.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/downloads/LuminosityHighPassShader.js b/downloads/LuminosityHighPassShader.js
new file mode 100644
index 0000000..a5eab35
--- /dev/null
+++ b/downloads/LuminosityHighPassShader.js
@@ -0,0 +1,71 @@
+( function () {
+
+ /**
+ * Luminosity
+ * http://en.wikipedia.org/wiki/Luminosity
+ */
+
+ const LuminosityHighPassShader = {
+ shaderID: 'luminosityHighPass',
+ uniforms: {
+ 'tDiffuse': {
+ value: null
+ },
+ 'luminosityThreshold': {
+ value: 1.0
+ },
+ 'smoothWidth': {
+ value: 1.0
+ },
+ 'defaultColor': {
+ value: new THREE.Color( 0x000000 )
+ },
+ 'defaultOpacity': {
+ value: 0.0
+ }
+ },
+ vertexShader:
+ /* glsl */
+ `
+
+ varying vec2 vUv;
+
+ void main() {
+
+ vUv = uv;
+
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
+
+ }`,
+ fragmentShader:
+ /* glsl */
+ `
+
+ uniform sampler2D tDiffuse;
+ uniform vec3 defaultColor;
+ uniform float defaultOpacity;
+ uniform float luminosityThreshold;
+ uniform float smoothWidth;
+
+ varying vec2 vUv;
+
+ void main() {
+
+ vec4 texel = texture2D( tDiffuse, vUv );
+
+ vec3 luma = vec3( 0.299, 0.587, 0.114 );
+
+ float v = dot( texel.xyz, luma );
+
+ vec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );
+
+ float alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );
+
+ gl_FragColor = mix( outputColor, texel, alpha );
+
+ }`
+ };
+
+ THREE.LuminosityHighPassShader = LuminosityHighPassShader;
+
+} )();