Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
07ff147a
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
07ff147a
编写于
9月 04, 2017
作者:
M
Mr.doob
提交者:
GitHub
9月 04, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12125 from Mugen87/dev3
common.glsl: Introduce linearToRelativeLuminance()
上级
40999d2a
b549ba7a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
10 deletion
+19
-10
examples/js/shaders/LuminosityShader.js
examples/js/shaders/LuminosityShader.js
+4
-4
examples/js/shaders/ToneMapShader.js
examples/js/shaders/ToneMapShader.js
+6
-6
src/renderers/shaders/ShaderChunk/common.glsl
src/renderers/shaders/ShaderChunk/common.glsl
+9
-0
未找到文件。
examples/js/shaders/LuminosityShader.js
浏览文件 @
07ff147a
...
...
@@ -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 );
"
,
"
}
"
...
...
examples/js/shaders/ToneMapShader.js
浏览文件 @
07ff147a
...
...
@@ -31,6 +31,8 @@ THREE.ToneMapShader = {
fragmentShader
:
[
"
#include <common>
"
,
"
uniform sampler2D tDiffuse;
"
,
"
varying vec2 vUv;
"
,
...
...
@@ -43,19 +45,17 @@ THREE.ToneMapShader = {
"
#else
"
,
"
uniform float averageLuminance;
"
,
"
#endif
"
,
"
const vec3 LUM_CONVERT = vec3(0.299, 0.587, 0.114);
"
,
"
vec3 ToneMap( vec3 vColor ) {
"
,
"
#ifdef ADAPTED_LUMINANCE
"
,
// Get the calculated average luminance
// Get the calculated average luminance
"
float fLumAvg = texture2D(luminanceMap, vec2(0.5, 0.5)).r;
"
,
"
#else
"
,
"
float fLumAvg = averageLuminance;
"
,
"
#endif
"
,
// Calculate the luminance of the current pixel
"
float fLumPixel =
dot(vColor, LUM_CONVERT
);
"
,
"
float fLumPixel =
linearToRelativeLuminance( vColor
);
"
,
// Apply the modified operator (Eq. 4)
"
float fLumScaled = (fLumPixel * middleGrey) / max( minLuminance, fLumAvg );
"
,
...
...
@@ -67,7 +67,7 @@ THREE.ToneMapShader = {
"
void main() {
"
,
"
vec4 texel = texture2D( tDiffuse, vUv );
"
,
"
gl_FragColor = vec4( ToneMap( texel.xyz ), texel.w );
"
,
"
}
"
...
...
src/renderers/shaders/ShaderChunk/common.glsl
浏览文件 @
07ff147a
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录