Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
cb4084bf
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,发现更多精彩内容 >>
提交
cb4084bf
编写于
9月 02, 2012
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added material.emissive support to CanvasRenderer.
上级
4aad148d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
27 deletion
+33
-27
src/renderers/CanvasRenderer.js
src/renderers/CanvasRenderer.js
+33
-27
未找到文件。
src/renderers/CanvasRenderer.js
浏览文件 @
cb4084bf
...
...
@@ -563,6 +563,9 @@ THREE.CanvasRenderer = function ( parameters ) {
if
(
_enableLighting
===
true
)
{
var
diffuse
=
material
.
color
;
var
emissive
=
material
.
emissive
;
if
(
material
.
wireframe
===
false
&&
material
.
shading
==
THREE
.
SmoothShading
&&
element
.
vertexNormalsLength
==
3
)
{
_color1
.
r
=
_color2
.
r
=
_color3
.
r
=
_ambientLight
.
r
;
...
...
@@ -573,17 +576,17 @@ THREE.CanvasRenderer = function ( parameters ) {
calculateLight
(
element
.
v2
.
positionWorld
,
element
.
vertexNormalsWorld
[
1
],
_color2
);
calculateLight
(
element
.
v3
.
positionWorld
,
element
.
vertexNormalsWorld
[
2
],
_color3
);
_color1
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color1
.
r
,
1
)
);
_color1
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color1
.
g
,
1
)
);
_color1
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color1
.
b
,
1
)
);
_color1
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color1
.
r
+
emissive
.
r
,
1
)
);
_color1
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color1
.
g
+
emissive
.
g
,
1
)
);
_color1
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color1
.
b
+
emissive
.
b
,
1
)
);
_color2
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color2
.
r
,
1
)
);
_color2
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color2
.
g
,
1
)
);
_color2
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color2
.
b
,
1
)
);
_color2
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color2
.
r
+
emissive
.
r
,
1
)
);
_color2
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color2
.
g
+
emissive
.
g
,
1
)
);
_color2
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color2
.
b
+
emissive
.
b
,
1
)
);
_color3
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color3
.
r
,
1
)
);
_color3
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color3
.
g
,
1
)
);
_color3
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color3
.
b
,
1
)
);
_color3
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color3
.
r
+
emissive
.
r
,
1
)
);
_color3
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color3
.
g
+
emissive
.
g
,
1
)
);
_color3
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color3
.
b
+
emissive
.
b
,
1
)
);
_color4
.
r
=
(
_color2
.
r
+
_color3
.
r
)
*
0.5
;
_color4
.
g
=
(
_color2
.
g
+
_color3
.
g
)
*
0.5
;
...
...
@@ -601,9 +604,9 @@ THREE.CanvasRenderer = function ( parameters ) {
calculateLight
(
element
.
centroidWorld
,
element
.
normalWorld
,
_color
);
_color
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color
.
r
,
1
)
);
_color
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color
.
g
,
1
)
);
_color
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color
.
b
,
1
)
);
_color
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color
.
r
+
emissive
.
r
,
1
)
);
_color
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color
.
g
+
emissive
.
g
,
1
)
);
_color
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color
.
b
+
emissive
.
b
,
1
)
);
material
.
wireframe
===
true
?
strokePath
(
_color
,
material
.
wireframeLinewidth
,
material
.
wireframeLinecap
,
material
.
wireframeLinejoin
)
:
fillPath
(
_color
);
...
...
@@ -719,6 +722,9 @@ THREE.CanvasRenderer = function ( parameters ) {
if
(
_enableLighting
===
true
)
{
var
diffuse
=
material
.
color
;
var
emissive
=
material
.
emissive
;
if
(
material
.
wireframe
===
false
&&
material
.
shading
==
THREE
.
SmoothShading
&&
element
.
vertexNormalsLength
==
4
)
{
_color1
.
r
=
_color2
.
r
=
_color3
.
r
=
_color4
.
r
=
_ambientLight
.
r
;
...
...
@@ -730,21 +736,21 @@ THREE.CanvasRenderer = function ( parameters ) {
calculateLight
(
element
.
v4
.
positionWorld
,
element
.
vertexNormalsWorld
[
3
],
_color3
);
calculateLight
(
element
.
v3
.
positionWorld
,
element
.
vertexNormalsWorld
[
2
],
_color4
);
_color1
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color1
.
r
,
1
)
);
_color1
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color1
.
g
,
1
)
);
_color1
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color1
.
b
,
1
)
);
_color1
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color1
.
r
+
emissive
.
r
,
1
)
);
_color1
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color1
.
g
+
emissive
.
g
,
1
)
);
_color1
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color1
.
b
+
emissive
.
b
,
1
)
);
_color2
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color2
.
r
,
1
)
);
_color2
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color2
.
g
,
1
)
);
_color2
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color2
.
b
,
1
)
);
_color2
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color2
.
r
+
emissive
.
r
,
1
)
);
_color2
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color2
.
g
+
emissive
.
g
,
1
)
);
_color2
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color2
.
b
+
emissive
.
b
,
1
)
);
_color3
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color3
.
r
,
1
)
);
_color3
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color3
.
g
,
1
)
);
_color3
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color3
.
b
,
1
)
);
_color3
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color3
.
r
+
emissive
.
r
,
1
)
);
_color3
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color3
.
g
+
emissive
.
g
,
1
)
);
_color3
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color3
.
b
+
emissive
.
b
,
1
)
);
_color4
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color4
.
r
,
1
)
);
_color4
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color4
.
g
,
1
)
);
_color4
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color4
.
b
,
1
)
);
_color4
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color4
.
r
+
emissive
.
r
,
1
)
);
_color4
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color4
.
g
+
emissive
.
g
,
1
)
);
_color4
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color4
.
b
+
emissive
.
b
,
1
)
);
_image
=
getGradientTexture
(
_color1
,
_color2
,
_color3
,
_color4
);
...
...
@@ -764,9 +770,9 @@ THREE.CanvasRenderer = function ( parameters ) {
calculateLight
(
element
.
centroidWorld
,
element
.
normalWorld
,
_color
);
_color
.
r
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
r
*
_color
.
r
,
1
)
);
_color
.
g
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
g
*
_color
.
g
,
1
)
);
_color
.
b
=
Math
.
max
(
0
,
Math
.
min
(
material
.
color
.
b
*
_color
.
b
,
1
)
);
_color
.
r
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
r
*
_color
.
r
+
emissive
.
r
,
1
)
);
_color
.
g
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
g
*
_color
.
g
+
emissive
.
g
,
1
)
);
_color
.
b
=
Math
.
max
(
0
,
Math
.
min
(
diffuse
.
b
*
_color
.
b
+
emissive
.
b
,
1
)
);
drawQuad
(
_v1x
,
_v1y
,
_v2x
,
_v2y
,
_v3x
,
_v3y
,
_v4x
,
_v4y
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录