提交 9cc01e74 编写于 作者: M Mugen87

common.glsl: Introduce linearToRelativeLuminance()

上级 40181fb3
......@@ -29,6 +29,8 @@ THREE.LuminosityShader = {
fragmentShader: [
"#include <common>",
"uniform sampler2D tDiffuse;",
"varying vec2 vUv;",
......@@ -37,11 +39,9 @@ THREE.LuminosityShader = {
"vec4 texel = texture2D( tDiffuse, vUv );",
"vec3 luma = vec3( 0.299, 0.587, 0.114 );",
"float v = dot( texel.xyz, luma );",
"float l = linearToRelativeLuminance( texel.rgb );",
"gl_FragColor = vec4( v, v, v, texel.w );",
"gl_FragColor = vec4( l, l, l, texel.w );",
"}"
......
......@@ -83,3 +83,12 @@ mat3 transpose( const in mat3 v ) {
return tmp;
}
// https://en.wikipedia.org/wiki/Relative_luminance
float linearToRelativeLuminance( const in vec3 color ) {
vec3 weights = vec3( 0.2126, 0.7152, 0.0722 );
return dot( weights, color.rgb );
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册