Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
5d63d4dc
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,发现更多精彩内容 >>
提交
5d63d4dc
编写于
7月 17, 2017
作者:
Z
zregos
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
function setBlending refactor
上级
06270969
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
43 deletion
+48
-43
src/renderers/webgl/WebGLState.js
src/renderers/webgl/WebGLState.js
+48
-43
未找到文件。
src/renderers/webgl/WebGLState.js
浏览文件 @
5d63d4dc
...
...
@@ -539,69 +539,83 @@ function WebGLState( gl, extensions, paramThreeToGL ) {
}
if
(
(
blending
!==
CustomBlending
)
&&
(
blending
!==
currentBlending
||
premultipliedAlpha
!==
currentPremultipledAlpha
)
)
{
if
(
blending
!==
CustomBlending
)
{
if
(
blending
===
AdditiveBlending
)
{
if
(
blending
!==
currentBlending
||
premultipliedAlpha
!==
currentPremultipledAlpha
)
{
if
(
premultipliedAlpha
)
{
switch
(
blending
)
{
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ONE
,
gl
.
ONE
,
gl
.
ONE
,
gl
.
ONE
);
case
AdditiveBlending
:
}
else
{
if
(
premultipliedAlpha
)
{
gl
.
blendEquation
(
gl
.
FUNC_ADD
);
gl
.
blendFunc
(
gl
.
SRC_ALPHA
,
gl
.
ONE
);
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ONE
,
gl
.
ONE
,
gl
.
ONE
,
gl
.
ONE
);
}
}
else
{
}
else
if
(
blending
===
SubtractiveBlending
)
{
gl
.
blendEquation
(
gl
.
FUNC_ADD
);
gl
.
blendFunc
(
gl
.
SRC_ALPHA
,
gl
.
ONE
);
if
(
premultipliedAlpha
)
{
}
break
;
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ZERO
,
gl
.
ZERO
,
gl
.
ONE_MINUS_SRC_COLOR
,
gl
.
ONE_MINUS_SRC_ALPHA
);
case
SubtractiveBlending
:
}
else
{
if
(
premultipliedAlpha
)
{
gl
.
blendEquation
(
gl
.
FUNC_ADD
);
gl
.
blendFunc
(
gl
.
ZERO
,
gl
.
ONE_MINUS_SRC_COLOR
);
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ZERO
,
gl
.
ZERO
,
gl
.
ONE_MINUS_SRC_COLOR
,
gl
.
ONE_MINUS_SRC_ALPHA
);
}
}
else
{
}
else
if
(
blending
===
MultiplyBlending
)
{
gl
.
blendEquation
(
gl
.
FUNC_ADD
);
gl
.
blendFunc
(
gl
.
ZERO
,
gl
.
ONE_MINUS_SRC_COLOR
);
if
(
premultipliedAlpha
)
{
}
break
;
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ZERO
,
gl
.
SRC_COLOR
,
gl
.
ZERO
,
gl
.
SRC_ALPHA
);
case
MultiplyBlending
:
}
else
{
if
(
premultipliedAlpha
)
{
gl
.
blendEquation
(
gl
.
FUNC_ADD
);
gl
.
blendFunc
(
gl
.
ZERO
,
gl
.
SRC_COLOR
);
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ZERO
,
gl
.
SRC_COLOR
,
gl
.
ZERO
,
gl
.
SRC_ALPHA
);
}
}
else
{
}
else
{
gl
.
blendEquation
(
gl
.
FUNC_ADD
);
gl
.
blendFunc
(
gl
.
ZERO
,
gl
.
SRC_COLOR
);
}
break
;
if
(
premultipliedAlpha
)
{
default
:
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ONE
,
gl
.
ONE_MINUS_SRC_ALPHA
,
gl
.
ONE
,
gl
.
ONE_MINUS_SRC_ALPHA
);
if
(
premultipliedAlpha
)
{
}
else
{
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
ONE
,
gl
.
ONE_MINUS_SRC_ALPHA
,
gl
.
ONE
,
gl
.
ONE_MINUS_SRC_ALPHA
);
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
SRC_ALPHA
,
gl
.
ONE_MINUS_SRC_ALPHA
,
gl
.
ONE
,
gl
.
ONE_MINUS_SRC_ALPHA
);
}
else
{
gl
.
blendEquationSeparate
(
gl
.
FUNC_ADD
,
gl
.
FUNC_ADD
);
gl
.
blendFuncSeparate
(
gl
.
SRC_ALPHA
,
gl
.
ONE_MINUS_SRC_ALPHA
,
gl
.
ONE
,
gl
.
ONE_MINUS_SRC_ALPHA
);
}
}
}
}
currentBlendEquation
=
null
;
currentBlendSrc
=
null
;
currentBlendDst
=
null
;
currentBlendEquationAlpha
=
null
;
currentBlendSrcAlpha
=
null
;
currentBlendDstAlpha
=
null
;
if
(
blending
===
CustomBlending
)
{
}
else
{
blendEquationAlpha
=
blendEquationAlpha
||
blendEquation
;
blendSrcAlpha
=
blendSrcAlpha
||
blendSrc
;
...
...
@@ -627,15 +641,6 @@ function WebGLState( gl, extensions, paramThreeToGL ) {
}
}
else
{
currentBlendEquation
=
null
;
currentBlendSrc
=
null
;
currentBlendDst
=
null
;
currentBlendEquationAlpha
=
null
;
currentBlendSrcAlpha
=
null
;
currentBlendDstAlpha
=
null
;
}
currentBlending
=
blending
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录