Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
830bf1e2
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,发现更多精彩内容 >>
提交
830bf1e2
编写于
7月 21, 2011
作者:
A
alteredq
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'remotes/mrdoob/master' into dev
上级
d738718e
71778b81
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
53 addition
and
49 deletion
+53
-49
build/Three.js
build/Three.js
+6
-6
build/custom/ThreeCanvas.js
build/custom/ThreeCanvas.js
+43
-43
src/renderers/CanvasRenderer.js
src/renderers/CanvasRenderer.js
+4
-0
未找到文件。
build/Three.js
浏览文件 @
830bf1e2
...
...
@@ -153,12 +153,12 @@ THREE.DOMRenderer=function(){THREE.Renderer.call(this);var b=null,c=new THREE.Pr
THREE
.
CanvasRenderer
=
function
(
b
){
function
c
(
b
){
if
(
y
!=
b
)
x
.
globalAlpha
=
y
=
b
}
function
e
(
b
){
if
(
F
!=
b
){
switch
(
b
){
case
THREE
.
NormalBlending
:
x
.
globalCompositeOperation
=
"
source-over
"
;
break
;
case
THREE
.
AdditiveBlending
:
x
.
globalCompositeOperation
=
"
lighter
"
;
break
;
case
THREE
.
SubtractiveBlending
:
x
.
globalCompositeOperation
=
"
darker
"
}
F
=
b
}}
function
f
(
b
){
if
(
w
!=
b
.
hex
)
w
=
b
.
hex
,
x
.
strokeStyle
=
"
#
"
+
k
(
w
.
toString
(
16
))}
function
g
(
b
){
if
(
H
!=
b
.
hex
)
H
=
b
.
hex
,
x
.
fillStyle
=
"
#
"
+
k
(
H
.
toString
(
16
))}
function
k
(
b
){
for
(;
b
.
length
<
6
;)
b
=
"
0
"
+
b
;
return
b
}
var
h
=
this
,
m
=
null
,
n
=
new
THREE
.
Projector
,
b
=
b
||
{},
p
=
b
.
canvas
!==
void
0
?
b
.
canvas
:
document
.
createElement
(
"
canvas
"
),
o
,
t
,
u
,
v
,
x
=
p
.
getContext
(
"
2d
"
),
B
=
new
THREE
.
Color
(
0
),
A
=
0
,
y
=
1
,
F
=
0
,
w
=
null
,
H
=
null
,
E
=
null
,
D
=
null
,
S
=
null
,
J
,
G
,
U
,
W
,
M
=
new
THREE
.
RenderableVertex
,
X
=
new
THREE
.
RenderableVertex
,
T
,
R
,
j
,
fa
,
P
,
da
,
ca
,
Y
,
ea
,
ga
,
la
,
pa
,
N
=
new
THREE
.
Color
(
0
),
ia
=
new
THREE
.
Color
(
0
),
Z
=
new
THREE
.
Color
(
0
),
ma
=
new
THREE
.
Color
(
0
),
$
=
new
THREE
.
Color
(
0
),
I
,
V
,
oa
,
ha
,
na
,
wa
,
Aa
,
va
,
ya
,
Ma
,
sa
=
new
THREE
.
Rectangle
,
ra
=
new
THREE
.
Rectangle
,
qa
=
new
THREE
.
Rectangle
,
Ba
=!
1
,
aa
=
new
THREE
.
Color
,
L
=
new
THREE
.
Color
,
ua
=
new
THREE
.
Color
,
Q
=
new
THREE
.
Color
,
ka
=
new
THREE
.
Vector3
,
ja
,
Pa
,
Va
,
xa
,
Qa
,
Ra
,
b
=
16
;
ja
=
document
.
createElement
(
"
canvas
"
);
ja
.
width
=
ja
.
height
=
2
;
Pa
=
ja
.
getContext
(
"
2d
"
);
Pa
.
fillStyle
=
"
rgba(0,0,0,1)
"
;
Pa
.
fillRect
(
0
,
0
,
2
,
2
);
Va
=
Pa
.
getImageData
(
0
,
0
,
2
,
2
);
xa
=
Va
.
data
;
Qa
=
document
.
createElement
(
"
canvas
"
);
Qa
.
width
=
Qa
.
height
=
b
;
Ra
=
Qa
.
getContext
(
"
2d
"
);
Ra
.
translate
(
-
b
/
2
,
-
b
/
2
);
Ra
.
scale
(
b
,
b
);
b
--
;
this
.
domElement
=
p
;
this
.
sortElements
=
this
.
sortObjects
=
this
.
autoClear
=!
0
;
this
.
data
=
{
vertices
:
0
,
faces
:
0
};
this
.
setSize
=
function
(
b
,
e
){
o
=
b
;
t
=
e
;
u
=
o
/
2
;
v
=
t
/
2
;
p
.
width
=
o
;
p
.
height
=
t
;
sa
.
set
(
-
u
,
-
v
,
u
,
v
);
ra
.
set
(
-
u
,
-
v
,
u
,
v
);
y
=
1
;
F
=
0
;
S
=
D
=
E
=
H
=
w
=
null
};
this
.
setClearColor
=
function
(
b
,
e
){
B
=
b
;
A
=
e
};
this
.
setClearColorHex
=
function
(
b
,
e
){
B
.
setHex
(
b
);
A
=
e
};
this
.
clear
=
function
(){
x
.
setTransform
(
1
,
0
,
0
,
-
1
,
u
,
v
);
if
(
!
ra
.
isEmpty
())
ra
.
inflate
(
1
),
ra
.
minSelf
(
sa
),
B
.
hex
==
0
&&
A
==
0
?
x
.
clearRect
(
ra
.
getX
(),
ra
.
getY
(),
ra
.
getWidth
(),
ra
.
getHeight
()):(
e
(
THREE
.
NormalBlending
),
c
(
1
),
x
.
fillStyle
=
"
rgba(
"
+
Math
.
floor
(
B
.
r
*
255
)
+
"
,
"
+
Math
.
floor
(
B
.
g
*
255
)
+
"
,
"
+
Math
.
floor
(
B
.
b
*
255
)
+
"
,
"
+
A
+
"
)
"
,
x
.
fillRect
(
ra
.
getX
(),
ra
.
getY
(),
ra
.
getWidth
(),
ra
.
getHeight
())),
ra
.
empty
()};
this
.
render
=
function
(
b
,
k
){
function
p
(
b
){
var
e
,
c
,
f
,
g
=
b
.
lights
;
L
.
setRGB
(
0
,
0
,
0
);
ua
.
setRGB
(
0
,
0
,
0
);
Q
.
setRGB
(
0
,
0
,
0
);
b
=
0
;
for
(
e
=
g
.
length
;
b
<
e
;
b
++
)
c
=
g
[
b
],
f
=
c
.
color
,
c
instanceof
THREE
.
AmbientLight
?(
L
.
r
+=
f
.
r
,
L
.
g
+=
f
.
g
,
L
.
b
+=
f
.
b
):
c
instanceof
THREE
.
DirectionalLight
?(
ua
.
r
+=
f
.
r
,
ua
.
g
+=
f
.
g
,
ua
.
b
+=
f
.
b
):
c
instanceof
THREE
.
PointLight
&&
(
Q
.
r
+=
f
.
r
,
Q
.
g
+=
f
.
g
,
Q
.
b
+=
f
.
b
)}
function
o
(
b
,
e
,
c
,
f
){
var
g
,
j
,
h
,
k
,
m
=
b
.
lights
,
b
=
0
;
for
(
g
=
m
.
length
;
b
<
g
;
b
++
)
j
=
m
[
b
],
h
=
j
.
color
,
j
instanceof
THREE
.
DirectionalLight
?(
k
=
c
.
dot
(
j
.
position
),
k
<=
0
||
(
k
*=
j
.
intensity
,
f
.
r
+=
h
.
r
*
k
,
f
.
g
+=
h
.
g
*
k
,
f
.
b
+=
h
.
b
*
k
)):
j
instanceof
THREE
.
PointLight
&&
(
k
=
c
.
dot
(
ka
.
sub
(
j
.
position
,
e
).
normalize
()),
k
<=
0
||
(
k
*=
j
.
distance
==
0
?
1
:
1
-
Math
.
min
(
e
.
distanceTo
(
j
.
position
)
/
j
.
distance
,
1
),
k
!=
0
&&
(
k
*=
j
.
intensity
,
f
.
r
+=
h
.
r
*
k
,
f
.
g
+=
h
.
g
*
k
,
f
.
b
+=
h
.
b
*
k
)))}
function
t
(
b
,
j
,
h
){
c
(
h
.
opacity
);
e
(
h
.
blending
);
var
k
,
m
,
p
,
n
,
o
,
ja
;
if
(
h
instanceof
THREE
.
ParticleBasicMaterial
){
if
(
h
.
map
)
n
=
h
.
map
.
image
,
o
=
n
.
width
>>
1
,
ja
=
n
.
height
>>
1
,
h
=
j
.
scale
.
x
*
u
,
p
=
j
.
scale
.
y
*
v
,
k
=
h
*
o
,
m
=
p
*
ja
,
qa
.
set
(
b
.
x
-
k
,
b
.
y
-
m
,
b
.
x
+
k
,
b
.
y
+
m
),
sa
.
instersects
(
qa
)
&&
(
x
.
save
(),
x
.
translate
(
b
.
x
,
b
.
y
),
x
.
rotate
(
-
j
.
rotation
),
x
.
scale
(
h
,
-
p
),
x
.
translate
(
-
o
,
-
ja
),
x
.
drawImage
(
n
,
0
,
0
),
x
.
restore
())}
else
h
instanceof
THREE
.
ParticleCanvasMaterial
&&
(
k
=
j
.
scale
.
x
*
u
,
m
=
j
.
scale
.
y
*
v
,
qa
.
set
(
b
.
x
-
k
,
b
.
y
-
m
,
b
.
x
+
k
,
b
.
y
+
m
),
sa
.
instersects
(
qa
)
&&
(
f
(
h
.
color
),
g
(
h
.
color
),
x
.
save
(),
x
.
translate
(
b
.
x
,
b
.
y
),
x
.
rotate
(
-
j
.
rotation
),
x
.
scale
(
k
,
m
),
h
.
program
(
x
),
x
.
restore
()))}
function
y
(
b
,
g
,
j
,
h
){
c
(
h
.
opacity
);
e
(
h
.
blending
);
x
.
beginPath
();
x
.
moveTo
(
b
.
positionScreen
.
x
,
b
.
positionScreen
.
y
);
x
.
lineTo
(
g
.
positionScreen
.
x
,
g
.
positionScreen
.
y
);
x
.
closePath
();
if
(
h
instanceof
THREE
.
LineBasicMaterial
){
b
=
h
.
linewidth
;
if
(
E
!=
b
)
x
.
lineWidth
=
E
=
b
;
b
=
h
.
linecap
;
if
(
D
!=
b
)
x
.
lineCap
=
D
=
b
;
b
=
h
.
linejoin
;
if
(
S
!=
b
)
x
.
lineJoin
=
S
=
b
;
f
(
h
.
color
);
x
.
stroke
();
qa
.
inflate
(
h
.
linewidth
*
2
)}}
function
A
(
b
,
f
,
g
,
m
,
p
,
n
,
ja
,
t
,
u
){
h
.
data
.
vertices
+=
3
;
h
.
data
.
faces
++
;
c
(
t
.
opacity
);
e
(
t
.
blending
);
T
=
b
.
positionScreen
.
x
;
R
=
b
.
positionScreen
.
y
;
j
=
f
.
positionScreen
.
x
;
fa
=
f
.
positionScreen
.
y
;
P
=
g
.
positionScreen
.
x
;
da
=
g
.
positionScreen
.
y
;
B
(
T
,
R
,
j
,
fa
,
P
,
da
);
if
(
t
instanceof
THREE
.
MeshBasicMaterial
)
if
(
t
.
map
)
t
.
map
.
mapping
instanceof
THREE
.
UVMapping
&&
(
ha
=
ja
.
uvs
[
0
],
Ca
(
T
,
R
,
j
,
fa
,
P
,
da
,
t
.
map
.
image
,
ha
[
m
].
u
,
ha
[
m
].
v
,
ha
[
p
].
u
,
ha
[
p
].
v
,
ha
[
n
].
u
,
ha
[
n
].
v
));
else
if
(
t
.
envMap
){
if
(
t
.
envMap
.
mapping
instanceof
THREE
.
SphericalReflectionMapping
)
b
=
k
.
matrixWorldInverse
,
ka
.
copy
(
ja
.
vertexNormalsWorld
[
0
]),
na
=
(
ka
.
x
*
b
.
n11
+
ka
.
y
*
b
.
n12
+
ka
.
z
*
b
.
n13
)
*
0.5
+
0.5
,
wa
=-
(
ka
.
x
*
b
.
n21
+
ka
.
y
*
b
.
n22
+
ka
.
z
*
b
.
n23
)
*
0.5
+
0.5
,
ka
.
copy
(
ja
.
vertexNormalsWorld
[
1
]),
faces
:
0
};
this
.
setSize
=
function
(
b
,
e
){
o
=
b
;
t
=
e
;
u
=
o
/
2
;
v
=
t
/
2
;
p
.
width
=
o
;
p
.
height
=
t
;
sa
.
set
(
-
u
,
-
v
,
u
,
v
);
ra
.
set
(
-
u
,
-
v
,
u
,
v
);
y
=
1
;
F
=
0
;
S
=
D
=
E
=
H
=
w
=
null
};
this
.
setClearColor
=
function
(
b
,
e
){
B
=
b
;
A
=
e
;
ra
.
set
(
-
u
,
-
v
,
u
,
v
)};
this
.
setClearColorHex
=
function
(
b
,
e
){
B
.
setHex
(
b
);
A
=
e
;
ra
.
set
(
-
u
,
-
v
,
u
,
v
)};
this
.
clear
=
function
(){
x
.
setTransform
(
1
,
0
,
0
,
-
1
,
u
,
v
);
if
(
!
ra
.
isEmpty
())
ra
.
inflate
(
1
),
ra
.
minSelf
(
sa
),
B
.
hex
==
0
&&
A
==
0
?
x
.
clearRect
(
ra
.
getX
(),
ra
.
getY
(),
ra
.
getWidth
(),
ra
.
getHeight
()):(
e
(
THREE
.
NormalBlending
),
c
(
1
),
x
.
fillStyle
=
"
rgba(
"
+
Math
.
floor
(
B
.
r
*
255
)
+
"
,
"
+
Math
.
floor
(
B
.
g
*
255
)
+
"
,
"
+
Math
.
floor
(
B
.
b
*
255
)
+
"
,
"
+
A
+
"
)
"
,
x
.
fillRect
(
ra
.
getX
(),
ra
.
getY
(),
ra
.
getWidth
(),
ra
.
getHeight
())),
ra
.
empty
()};
this
.
render
=
function
(
b
,
k
){
function
p
(
b
){
var
e
,
c
,
f
,
g
=
b
.
lights
;
L
.
setRGB
(
0
,
0
,
0
);
ua
.
setRGB
(
0
,
0
,
0
);
Q
.
setRGB
(
0
,
0
,
0
);
b
=
0
;
for
(
e
=
g
.
length
;
b
<
e
;
b
++
)
c
=
g
[
b
],
f
=
c
.
color
,
c
instanceof
THREE
.
AmbientLight
?(
L
.
r
+=
f
.
r
,
L
.
g
+=
f
.
g
,
L
.
b
+=
f
.
b
):
c
instanceof
THREE
.
DirectionalLight
?(
ua
.
r
+=
f
.
r
,
ua
.
g
+=
f
.
g
,
ua
.
b
+=
f
.
b
):
c
instanceof
THREE
.
PointLight
&&
(
Q
.
r
+=
f
.
r
,
Q
.
g
+=
f
.
g
,
Q
.
b
+=
f
.
b
)}
function
o
(
b
,
e
,
c
,
f
){
var
g
,
j
,
h
,
k
,
m
=
b
.
lights
,
b
=
0
;
for
(
g
=
m
.
length
;
b
<
g
;
b
++
)
j
=
m
[
b
],
h
=
j
.
color
,
j
instanceof
THREE
.
DirectionalLight
?(
k
=
c
.
dot
(
j
.
position
),
k
<=
0
||
(
k
*=
j
.
intensity
,
f
.
r
+=
h
.
r
*
k
,
f
.
g
+=
h
.
g
*
k
,
f
.
b
+=
h
.
b
*
k
)):
j
instanceof
THREE
.
PointLight
&&
(
k
=
c
.
dot
(
ka
.
sub
(
j
.
position
,
e
).
normalize
()),
k
<=
0
||
(
k
*=
j
.
distance
==
0
?
1
:
1
-
Math
.
min
(
e
.
distanceTo
(
j
.
position
)
/
j
.
distance
,
1
),
k
!=
0
&&
(
k
*=
j
.
intensity
,
f
.
r
+=
h
.
r
*
k
,
f
.
g
+=
h
.
g
*
k
,
f
.
b
+=
h
.
b
*
k
)))}
function
t
(
b
,
j
,
h
){
c
(
h
.
opacity
);
e
(
h
.
blending
);
var
k
,
m
,
p
,
n
,
o
,
ja
;
if
(
h
instanceof
THREE
.
ParticleBasicMaterial
){
if
(
h
.
map
)
n
=
h
.
map
.
image
,
o
=
n
.
width
>>
1
,
ja
=
n
.
height
>>
1
,
h
=
j
.
scale
.
x
*
u
,
p
=
j
.
scale
.
y
*
v
,
k
=
h
*
o
,
m
=
p
*
ja
,
qa
.
set
(
b
.
x
-
k
,
b
.
y
-
m
,
b
.
x
+
k
,
b
.
y
+
m
),
sa
.
instersects
(
qa
)
&&
(
x
.
save
(),
x
.
translate
(
b
.
x
,
b
.
y
),
x
.
rotate
(
-
j
.
rotation
),
x
.
scale
(
h
,
-
p
),
x
.
translate
(
-
o
,
-
ja
),
x
.
drawImage
(
n
,
0
,
0
),
x
.
restore
())}
else
h
instanceof
THREE
.
ParticleCanvasMaterial
&&
(
k
=
j
.
scale
.
x
*
u
,
m
=
j
.
scale
.
y
*
v
,
qa
.
set
(
b
.
x
-
k
,
b
.
y
-
m
,
b
.
x
+
k
,
b
.
y
+
m
),
sa
.
instersects
(
qa
)
&&
(
f
(
h
.
color
),
g
(
h
.
color
),
x
.
save
(),
x
.
translate
(
b
.
x
,
b
.
y
),
x
.
rotate
(
-
j
.
rotation
),
x
.
scale
(
k
,
m
),
h
.
program
(
x
),
x
.
restore
()))}
function
y
(
b
,
g
,
j
,
h
){
c
(
h
.
opacity
);
e
(
h
.
blending
);
x
.
beginPath
();
x
.
moveTo
(
b
.
positionScreen
.
x
,
b
.
positionScreen
.
y
);
x
.
lineTo
(
g
.
positionScreen
.
x
,
g
.
positionScreen
.
y
);
x
.
closePath
();
if
(
h
instanceof
THREE
.
LineBasicMaterial
){
b
=
h
.
linewidth
;
if
(
E
!=
b
)
x
.
lineWidth
=
E
=
b
;
b
=
h
.
linecap
;
if
(
D
!=
b
)
x
.
lineCap
=
D
=
b
;
b
=
h
.
linejoin
;
if
(
S
!=
b
)
x
.
lineJoin
=
S
=
b
;
f
(
h
.
color
);
x
.
stroke
();
qa
.
inflate
(
h
.
linewidth
*
2
)}}
function
A
(
b
,
f
,
g
,
m
,
p
,
n
,
ja
,
t
,
u
){
h
.
data
.
vertices
+=
3
;
h
.
data
.
faces
++
;
c
(
t
.
opacity
);
e
(
t
.
blending
);
T
=
b
.
positionScreen
.
x
;
R
=
b
.
positionScreen
.
y
;
j
=
f
.
positionScreen
.
x
;
fa
=
f
.
positionScreen
.
y
;
P
=
g
.
positionScreen
.
x
;
da
=
g
.
positionScreen
.
y
;
B
(
T
,
R
,
j
,
fa
,
P
,
da
);
if
(
t
instanceof
THREE
.
MeshBasicMaterial
)
if
(
t
.
map
)
t
.
map
.
mapping
instanceof
THREE
.
UVMapping
&&
(
ha
=
ja
.
uvs
[
0
],
Ca
(
T
,
R
,
j
,
fa
,
P
,
da
,
t
.
map
.
image
,
ha
[
m
].
u
,
ha
[
m
].
v
,
ha
[
p
].
u
,
ha
[
p
].
v
,
ha
[
n
].
u
,
ha
[
n
].
v
));
else
if
(
t
.
envMap
){
if
(
t
.
envMap
.
mapping
instanceof
THREE
.
SphericalReflectionMapping
)
b
=
k
.
matrixWorldInverse
,
ka
.
copy
(
ja
.
vertexNormalsWorld
[
0
]),
na
=
(
ka
.
x
*
b
.
n11
+
ka
.
y
*
b
.
n12
+
ka
.
z
*
b
.
n13
)
*
0.5
+
0.5
,
wa
=-
(
ka
.
x
*
b
.
n21
+
ka
.
y
*
b
.
n22
+
ka
.
z
*
b
.
n23
)
*
0.5
+
0.5
,
ka
.
copy
(
ja
.
vertexNormalsWorld
[
1
]),
Aa
=
(
ka
.
x
*
b
.
n11
+
ka
.
y
*
b
.
n12
+
ka
.
z
*
b
.
n13
)
*
0.5
+
0.5
,
va
=-
(
ka
.
x
*
b
.
n21
+
ka
.
y
*
b
.
n22
+
ka
.
z
*
b
.
n23
)
*
0.5
+
0.5
,
ka
.
copy
(
ja
.
vertexNormalsWorld
[
2
]),
ya
=
(
ka
.
x
*
b
.
n11
+
ka
.
y
*
b
.
n12
+
ka
.
z
*
b
.
n13
)
*
0.5
+
0.5
,
Ma
=-
(
ka
.
x
*
b
.
n21
+
ka
.
y
*
b
.
n22
+
ka
.
z
*
b
.
n23
)
*
0.5
+
0.5
,
Ca
(
T
,
R
,
j
,
fa
,
P
,
da
,
t
.
envMap
.
image
,
na
,
wa
,
Aa
,
va
,
ya
,
Ma
)}
else
t
.
wireframe
?
H
(
t
.
color
,
t
.
wireframeLinewidth
,
t
.
wireframeLinecap
,
t
.
wireframeLinejoin
):
Ea
(
t
.
color
);
else
if
(
t
instanceof
THREE
.
MeshLambertMaterial
)
t
.
map
&&!
t
.
wireframe
&&
(
t
.
map
.
mapping
instanceof
THREE
.
UVMapping
&&
(
ha
=
ja
.
uvs
[
0
],
Ca
(
T
,
R
,
j
,
fa
,
P
,
da
,
t
.
map
.
image
,
ha
[
m
].
u
,
ha
[
m
].
v
,
ha
[
p
].
u
,
ha
[
p
].
v
,
ha
[
n
].
u
,
ha
[
n
].
v
)),
e
(
THREE
.
SubtractiveBlending
)),
Ba
?
!
t
.
wireframe
&&
t
.
shading
==
THREE
.
SmoothShading
&&
ja
.
vertexNormalsWorld
.
length
==
3
?(
ia
.
r
=
Z
.
r
=
ma
.
r
=
L
.
r
,
ia
.
g
=
Z
.
g
=
ma
.
g
=
L
.
g
,
ia
.
b
=
Z
.
b
=
ma
.
b
=
L
.
b
,
o
(
u
,
ja
.
v1
.
positionWorld
,
ja
.
vertexNormalsWorld
[
0
],
ia
),
o
(
u
,
ja
.
v2
.
positionWorld
,
ja
.
vertexNormalsWorld
[
1
],
Z
),
o
(
u
,
ja
.
v3
.
positionWorld
,
ja
.
vertexNormalsWorld
[
2
],
ma
),
$
.
r
=
(
Z
.
r
+
ma
.
r
)
*
0.5
,
$
.
g
=
(
Z
.
g
+
ma
.
g
)
*
0.5
,
$
.
b
=
(
Z
.
b
+
ma
.
b
)
*
0.5
,
oa
=
Sa
(
ia
,
Z
,
ma
,
$
),
Ca
(
T
,
R
,
j
,
fa
,
P
,
da
,
oa
,
0
,
0
,
1
,
0
,
0
,
1
)):(
aa
.
r
=
L
.
r
,
aa
.
g
=
L
.
g
,
aa
.
b
=
L
.
b
,
o
(
u
,
ja
.
centroidWorld
,
ja
.
normalWorld
,
aa
),
N
.
r
=
Math
.
max
(
0
,
Math
.
min
(
t
.
color
.
r
*
aa
.
r
,
1
)),
N
.
g
=
Math
.
max
(
0
,
Math
.
min
(
t
.
color
.
g
*
aa
.
g
,
1
)),
N
.
b
=
Math
.
max
(
0
,
Math
.
min
(
t
.
color
.
b
*
aa
.
b
,
1
)),
N
.
updateHex
(),
t
.
wireframe
?
H
(
N
,
t
.
wireframeLinewidth
,
t
.
wireframeLinecap
,
t
.
wireframeLinejoin
):
Ea
(
N
)):
t
.
wireframe
?
H
(
t
.
color
,
t
.
wireframeLinewidth
,
t
.
wireframeLinecap
,
t
.
wireframeLinejoin
):
Ea
(
t
.
color
);
else
if
(
t
instanceof
THREE
.
MeshDepthMaterial
)
I
=
k
.
near
,
V
=
k
.
far
,
ia
.
r
=
ia
.
g
=
ia
.
b
=
1
-
Ia
(
b
.
positionScreen
.
z
,
I
,
V
),
Z
.
r
=
...
...
build/custom/ThreeCanvas.js
浏览文件 @
830bf1e2
此差异已折叠。
点击以展开。
src/renderers/CanvasRenderer.js
浏览文件 @
830bf1e2
...
...
@@ -120,6 +120,8 @@ THREE.CanvasRenderer = function ( parameters ) {
_clearColor
=
color
;
_clearOpacity
=
opacity
;
_clearRect
.
set
(
-
_canvasWidthHalf
,
-
_canvasHeightHalf
,
_canvasWidthHalf
,
_canvasHeightHalf
);
};
this
.
setClearColorHex
=
function
(
hex
,
opacity
)
{
...
...
@@ -127,6 +129,8 @@ THREE.CanvasRenderer = function ( parameters ) {
_clearColor
.
setHex
(
hex
);
_clearOpacity
=
opacity
;
_clearRect
.
set
(
-
_canvasWidthHalf
,
-
_canvasHeightHalf
,
_canvasWidthHalf
,
_canvasHeightHalf
);
};
this
.
clear
=
function
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录