Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
35344be4
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,发现更多精彩内容 >>
提交
35344be4
编写于
4月 12, 2011
作者:
A
alteredq
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Changed QuakeCamera to have framerate independent movement and look speed.
上级
92d702d9
变更
14
展开全部
隐藏空白更改
内联
并排
Showing
14 changed file
with
73 addition
and
62 deletion
+73
-62
build/Three.js
build/Three.js
+24
-23
build/custom/ThreeCanvas.js
build/custom/ThreeCanvas.js
+1
-1
build/custom/ThreeDOM.js
build/custom/ThreeDOM.js
+1
-1
build/custom/ThreeExtras.js
build/custom/ThreeExtras.js
+22
-21
build/custom/ThreeSVG.js
build/custom/ThreeSVG.js
+1
-1
build/custom/ThreeWebGL.js
build/custom/ThreeWebGL.js
+2
-2
examples/misc_sound.html
examples/misc_sound.html
+1
-1
examples/webgl_geometry_dynamic.html
examples/webgl_geometry_dynamic.html
+1
-1
examples/webgl_geometry_minecraft.html
examples/webgl_geometry_minecraft.html
+1
-1
examples/webgl_geometry_minecraft_ao.html
examples/webgl_geometry_minecraft_ao.html
+1
-1
examples/webgl_geometry_terrain.html
examples/webgl_geometry_terrain.html
+1
-1
examples/webgl_geometry_terrain_fog.html
examples/webgl_geometry_terrain_fog.html
+1
-1
src/extras/cameras/FlyCamera.js
src/extras/cameras/FlyCamera.js
+1
-1
src/extras/cameras/QuakeCamera.js
src/extras/cameras/QuakeCamera.js
+15
-6
未找到文件。
build/Three.js
浏览文件 @
35344be4
此差异已折叠。
点击以展开。
build/custom/ThreeCanvas.js
浏览文件 @
35344be4
...
...
@@ -49,7 +49,7 @@ THREE.Quaternion.prototype={set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;thi
a
.
y
*
d
;
this
.
z
=
a
.
z
*
d
;
this
.
w
=
Math
.
cos
(
c
);
return
this
},
calculateW
:
function
(){
this
.
w
=-
Math
.
sqrt
(
Math
.
abs
(
1
-
this
.
x
*
this
.
x
-
this
.
y
*
this
.
y
-
this
.
z
*
this
.
z
));
return
this
},
inverse
:
function
(){
this
.
x
*=-
1
;
this
.
y
*=-
1
;
this
.
z
*=-
1
;
return
this
},
length
:
function
(){
return
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
)},
normalize
:
function
(){
var
a
=
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
);
if
(
a
==
0
)
this
.
w
=
this
.
z
=
this
.
y
=
this
.
x
=
0
;
else
{
a
=
1
/
a
;
this
.
x
*=
a
;
this
.
y
*=
a
;
this
.
z
*=
a
;
this
.
w
*=
a
}
return
this
},
multiplySelf
:
function
(
a
){
var
b
=
this
.
x
,
c
=
this
.
y
,
d
=
this
.
z
,
e
=
this
.
w
,
h
=
a
.
x
,
f
=
a
.
y
,
k
=
a
.
z
;
a
=
a
.
w
;
this
.
x
=
b
*
a
+
e
*
h
+
c
*
k
-
d
*
f
;
this
.
y
=
c
*
a
+
e
*
f
+
d
*
h
-
b
*
k
;
this
.
z
=
d
*
a
+
e
*
k
+
b
*
f
-
c
*
h
;
this
.
w
=
e
*
a
-
b
*
h
-
c
*
f
-
d
*
k
;
return
this
},
multiply
:
function
(
a
,
b
){
this
.
x
=
a
.
x
*
b
.
w
+
a
.
y
*
b
.
z
-
a
.
z
*
b
.
y
+
a
.
w
*
b
.
x
;
this
.
y
=-
a
.
x
*
b
.
z
+
a
.
y
*
b
.
w
+
a
.
z
*
b
.
x
+
a
.
w
*
b
.
y
;
this
.
z
=
a
.
x
*
b
.
y
-
a
.
y
*
b
.
x
+
a
.
z
*
b
.
w
+
a
.
w
*
b
.
z
;
this
.
w
=-
a
.
x
*
b
.
x
-
a
.
y
*
b
.
y
-
a
.
z
*
b
.
z
+
a
.
w
*
b
.
w
;
return
this
},
multiplyVector3
:
function
(
a
,
b
){
b
||
(
b
=
a
);
var
c
=
a
.
x
,
d
=
a
.
y
,
e
=
a
.
z
,
h
=
this
.
x
,
f
=
this
.
y
,
k
=
this
.
z
,
g
=
this
.
w
,
i
=
g
*
c
+
f
*
e
-
k
*
d
,
n
=
g
*
d
+
k
*
c
-
h
*
e
,
j
=
g
*
e
+
h
*
d
-
f
*
c
;
c
=-
h
*
c
-
f
*
d
-
k
*
e
;
b
.
x
=
i
*
g
+
c
*-
h
+
n
*-
k
-
j
*-
f
;
b
.
y
=
n
*
g
+
c
*-
f
+
j
*-
h
-
i
*-
k
;
b
.
z
=
j
*
g
+
c
*-
k
+
i
*-
f
-
n
*-
h
;
return
b
}};
THREE
.
Quaternion
.
slerp
=
function
(
a
,
b
,
c
,
d
){
var
e
=
a
.
w
*
b
.
w
+
a
.
x
*
b
.
x
+
a
.
y
*
b
.
y
+
a
.
z
*
b
.
z
;
if
(
Math
.
abs
(
e
)
>=
1
){
c
.
w
=
a
.
w
;
c
.
x
=
a
.
x
;
c
.
y
=
a
.
y
;
c
.
z
=
a
.
z
;
return
c
}
var
h
=
Math
.
acos
(
e
),
f
=
Math
.
sqrt
(
1
-
e
*
e
);
if
(
Math
.
abs
(
f
)
<
0.001
){
c
.
w
=
0.5
*
(
a
.
w
+
b
.
w
);
c
.
x
=
0.5
*
(
a
.
x
+
b
.
x
);
c
.
y
=
0.5
*
(
a
.
y
+
b
.
y
);
c
.
z
=
0.5
*
(
a
.
z
+
b
.
z
);
return
c
}
e
=
Math
.
sin
((
1
-
d
)
*
h
)
/
f
;
d
=
Math
.
sin
(
d
*
h
)
/
f
;
c
.
w
=
a
.
w
*
e
+
b
.
w
*
d
;
c
.
x
=
a
.
x
*
e
+
b
.
x
*
d
;
c
.
y
=
a
.
y
*
e
+
b
.
y
*
d
;
c
.
z
=
a
.
z
*
e
+
b
.
z
*
d
;
return
c
};
THREE
.
Vertex
=
function
(
a
){
this
.
position
=
a
||
new
THREE
.
Vector3
};
THREE
.
Quaternion
.
slerp
=
function
(
a
,
b
,
c
,
d
){
var
e
=
a
.
w
*
b
.
w
+
a
.
x
*
b
.
x
+
a
.
y
*
b
.
y
+
a
.
z
*
b
.
z
;
if
(
Math
.
abs
(
e
)
>=
1
){
c
.
w
=
a
.
w
;
c
.
x
=
a
.
x
;
c
.
y
=
a
.
y
;
c
.
z
=
a
.
z
;
return
c
}
var
h
=
Math
.
acos
(
e
),
f
=
Math
.
sqrt
(
1
-
e
*
e
);
if
(
Math
.
abs
(
f
)
<
0.001
0
){
c
.
w
=
0.5
*
(
a
.
w
+
b
.
w
);
c
.
x
=
0.5
*
(
a
.
x
+
b
.
x
);
c
.
y
=
0.5
*
(
a
.
y
+
b
.
y
);
c
.
z
=
0.5
*
(
a
.
z
+
b
.
z
);
return
c
}
e
=
Math
.
sin
((
1
-
d
)
*
h
)
/
f
;
d
=
Math
.
sin
(
d
*
h
)
/
f
;
c
.
w
=
a
.
w
*
e
+
b
.
w
*
d
;
c
.
x
=
a
.
x
*
e
+
b
.
x
*
d
;
c
.
y
=
a
.
y
*
e
+
b
.
y
*
d
;
c
.
z
=
a
.
z
*
e
+
b
.
z
*
d
;
return
c
};
THREE
.
Vertex
=
function
(
a
){
this
.
position
=
a
||
new
THREE
.
Vector3
};
THREE
.
Face3
=
function
(
a
,
b
,
c
,
d
,
e
,
h
){
this
.
a
=
a
;
this
.
b
=
b
;
this
.
c
=
c
;
this
.
normal
=
d
instanceof
THREE
.
Vector3
?
d
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
d
instanceof
Array
?
d
:[];
this
.
color
=
e
instanceof
THREE
.
Color
?
e
:
new
THREE
.
Color
;
this
.
vertexColors
=
e
instanceof
Array
?
e
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
h
instanceof
Array
?
h
:[
h
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
Face4
=
function
(
a
,
b
,
c
,
d
,
e
,
h
,
f
){
this
.
a
=
a
;
this
.
b
=
b
;
this
.
c
=
c
;
this
.
d
=
d
;
this
.
normal
=
e
instanceof
THREE
.
Vector3
?
e
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
e
instanceof
Array
?
e
:[];
this
.
color
=
h
instanceof
THREE
.
Color
?
h
:
new
THREE
.
Color
;
this
.
vertexColors
=
h
instanceof
Array
?
h
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
f
instanceof
Array
?
f
:[
f
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
UV
=
function
(
a
,
b
){
this
.
set
(
a
||
0
,
b
||
0
)};
THREE
.
UV
.
prototype
=
{
set
:
function
(
a
,
b
){
this
.
u
=
a
;
this
.
v
=
b
;
return
this
},
copy
:
function
(
a
){
this
.
set
(
a
.
u
,
a
.
v
);
return
this
}};
THREE
.
Geometry
=
function
(){
this
.
id
=
"
Geometry
"
+
THREE
.
GeometryIdCounter
++
;
this
.
vertices
=
[];
this
.
colors
=
[];
this
.
faces
=
[];
this
.
edges
=
[];
this
.
faceUvs
=
[[]];
this
.
faceVertexUvs
=
[[]];
this
.
morphTargets
=
[];
this
.
morphColors
=
[];
this
.
skinWeights
=
[];
this
.
skinIndices
=
[];
this
.
boundingSphere
=
this
.
boundingBox
=
null
;
this
.
hasTangents
=!
1
};
...
...
build/custom/ThreeDOM.js
浏览文件 @
35344be4
...
...
@@ -49,7 +49,7 @@ THREE.Quaternion.prototype={set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;thi
a
.
y
*
d
;
this
.
z
=
a
.
z
*
d
;
this
.
w
=
Math
.
cos
(
c
);
return
this
},
calculateW
:
function
(){
this
.
w
=-
Math
.
sqrt
(
Math
.
abs
(
1
-
this
.
x
*
this
.
x
-
this
.
y
*
this
.
y
-
this
.
z
*
this
.
z
));
return
this
},
inverse
:
function
(){
this
.
x
*=-
1
;
this
.
y
*=-
1
;
this
.
z
*=-
1
;
return
this
},
length
:
function
(){
return
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
)},
normalize
:
function
(){
var
a
=
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
);
if
(
a
==
0
)
this
.
w
=
this
.
z
=
this
.
y
=
this
.
x
=
0
;
else
{
a
=
1
/
a
;
this
.
x
*=
a
;
this
.
y
*=
a
;
this
.
z
*=
a
;
this
.
w
*=
a
}
return
this
},
multiplySelf
:
function
(
a
){
var
b
=
this
.
x
,
c
=
this
.
y
,
d
=
this
.
z
,
e
=
this
.
w
,
h
=
a
.
x
,
f
=
a
.
y
,
j
=
a
.
z
;
a
=
a
.
w
;
this
.
x
=
b
*
a
+
e
*
h
+
c
*
j
-
d
*
f
;
this
.
y
=
c
*
a
+
e
*
f
+
d
*
h
-
b
*
j
;
this
.
z
=
d
*
a
+
e
*
j
+
b
*
f
-
c
*
h
;
this
.
w
=
e
*
a
-
b
*
h
-
c
*
f
-
d
*
j
;
return
this
},
multiply
:
function
(
a
,
b
){
this
.
x
=
a
.
x
*
b
.
w
+
a
.
y
*
b
.
z
-
a
.
z
*
b
.
y
+
a
.
w
*
b
.
x
;
this
.
y
=-
a
.
x
*
b
.
z
+
a
.
y
*
b
.
w
+
a
.
z
*
b
.
x
+
a
.
w
*
b
.
y
;
this
.
z
=
a
.
x
*
b
.
y
-
a
.
y
*
b
.
x
+
a
.
z
*
b
.
w
+
a
.
w
*
b
.
z
;
this
.
w
=-
a
.
x
*
b
.
x
-
a
.
y
*
b
.
y
-
a
.
z
*
b
.
z
+
a
.
w
*
b
.
w
;
return
this
},
multiplyVector3
:
function
(
a
,
b
){
b
||
(
b
=
a
);
var
c
=
a
.
x
,
d
=
a
.
y
,
e
=
a
.
z
,
h
=
this
.
x
,
f
=
this
.
y
,
j
=
this
.
z
,
g
=
this
.
w
,
i
=
g
*
c
+
f
*
e
-
j
*
d
,
l
=
g
*
d
+
j
*
c
-
h
*
e
,
k
=
g
*
e
+
h
*
d
-
f
*
c
;
c
=-
h
*
c
-
f
*
d
-
j
*
e
;
b
.
x
=
i
*
g
+
c
*-
h
+
l
*-
j
-
k
*-
f
;
b
.
y
=
l
*
g
+
c
*-
f
+
k
*-
h
-
i
*-
j
;
b
.
z
=
k
*
g
+
c
*-
j
+
i
*-
f
-
l
*-
h
;
return
b
}};
THREE
.
Quaternion
.
slerp
=
function
(
a
,
b
,
c
,
d
){
var
e
=
a
.
w
*
b
.
w
+
a
.
x
*
b
.
x
+
a
.
y
*
b
.
y
+
a
.
z
*
b
.
z
;
if
(
Math
.
abs
(
e
)
>=
1
){
c
.
w
=
a
.
w
;
c
.
x
=
a
.
x
;
c
.
y
=
a
.
y
;
c
.
z
=
a
.
z
;
return
c
}
var
h
=
Math
.
acos
(
e
),
f
=
Math
.
sqrt
(
1
-
e
*
e
);
if
(
Math
.
abs
(
f
)
<
0.001
){
c
.
w
=
0.5
*
(
a
.
w
+
b
.
w
);
c
.
x
=
0.5
*
(
a
.
x
+
b
.
x
);
c
.
y
=
0.5
*
(
a
.
y
+
b
.
y
);
c
.
z
=
0.5
*
(
a
.
z
+
b
.
z
);
return
c
}
e
=
Math
.
sin
((
1
-
d
)
*
h
)
/
f
;
d
=
Math
.
sin
(
d
*
h
)
/
f
;
c
.
w
=
a
.
w
*
e
+
b
.
w
*
d
;
c
.
x
=
a
.
x
*
e
+
b
.
x
*
d
;
c
.
y
=
a
.
y
*
e
+
b
.
y
*
d
;
c
.
z
=
a
.
z
*
e
+
b
.
z
*
d
;
return
c
};
THREE
.
Vertex
=
function
(
a
){
this
.
position
=
a
||
new
THREE
.
Vector3
};
THREE
.
Quaternion
.
slerp
=
function
(
a
,
b
,
c
,
d
){
var
e
=
a
.
w
*
b
.
w
+
a
.
x
*
b
.
x
+
a
.
y
*
b
.
y
+
a
.
z
*
b
.
z
;
if
(
Math
.
abs
(
e
)
>=
1
){
c
.
w
=
a
.
w
;
c
.
x
=
a
.
x
;
c
.
y
=
a
.
y
;
c
.
z
=
a
.
z
;
return
c
}
var
h
=
Math
.
acos
(
e
),
f
=
Math
.
sqrt
(
1
-
e
*
e
);
if
(
Math
.
abs
(
f
)
<
0.001
0
){
c
.
w
=
0.5
*
(
a
.
w
+
b
.
w
);
c
.
x
=
0.5
*
(
a
.
x
+
b
.
x
);
c
.
y
=
0.5
*
(
a
.
y
+
b
.
y
);
c
.
z
=
0.5
*
(
a
.
z
+
b
.
z
);
return
c
}
e
=
Math
.
sin
((
1
-
d
)
*
h
)
/
f
;
d
=
Math
.
sin
(
d
*
h
)
/
f
;
c
.
w
=
a
.
w
*
e
+
b
.
w
*
d
;
c
.
x
=
a
.
x
*
e
+
b
.
x
*
d
;
c
.
y
=
a
.
y
*
e
+
b
.
y
*
d
;
c
.
z
=
a
.
z
*
e
+
b
.
z
*
d
;
return
c
};
THREE
.
Vertex
=
function
(
a
){
this
.
position
=
a
||
new
THREE
.
Vector3
};
THREE
.
Face3
=
function
(
a
,
b
,
c
,
d
,
e
,
h
){
this
.
a
=
a
;
this
.
b
=
b
;
this
.
c
=
c
;
this
.
normal
=
d
instanceof
THREE
.
Vector3
?
d
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
d
instanceof
Array
?
d
:[];
this
.
color
=
e
instanceof
THREE
.
Color
?
e
:
new
THREE
.
Color
;
this
.
vertexColors
=
e
instanceof
Array
?
e
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
h
instanceof
Array
?
h
:[
h
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
Face4
=
function
(
a
,
b
,
c
,
d
,
e
,
h
,
f
){
this
.
a
=
a
;
this
.
b
=
b
;
this
.
c
=
c
;
this
.
d
=
d
;
this
.
normal
=
e
instanceof
THREE
.
Vector3
?
e
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
e
instanceof
Array
?
e
:[];
this
.
color
=
h
instanceof
THREE
.
Color
?
h
:
new
THREE
.
Color
;
this
.
vertexColors
=
h
instanceof
Array
?
h
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
f
instanceof
Array
?
f
:[
f
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
UV
=
function
(
a
,
b
){
this
.
set
(
a
||
0
,
b
||
0
)};
THREE
.
UV
.
prototype
=
{
set
:
function
(
a
,
b
){
this
.
u
=
a
;
this
.
v
=
b
;
return
this
},
copy
:
function
(
a
){
this
.
set
(
a
.
u
,
a
.
v
);
return
this
}};
THREE
.
Camera
=
function
(
a
,
b
,
c
,
d
,
e
){
THREE
.
Object3D
.
call
(
this
);
this
.
fov
=
a
||
50
;
this
.
aspect
=
b
||
1
;
this
.
near
=
c
||
0.1
;
this
.
far
=
d
||
2
E3
;
this
.
target
=
e
||
new
THREE
.
Object3D
;
this
.
useTarget
=!
0
;
this
.
matrixWorldInverse
=
new
THREE
.
Matrix4
;
this
.
projectionMatrix
=
null
;
this
.
updateProjectionMatrix
()};
THREE
.
Camera
.
prototype
=
new
THREE
.
Object3D
;
THREE
.
Camera
.
prototype
.
constructor
=
THREE
.
Camera
;
...
...
build/custom/ThreeExtras.js
浏览文件 @
35344be4
此差异已折叠。
点击以展开。
build/custom/ThreeSVG.js
浏览文件 @
35344be4
...
...
@@ -49,7 +49,7 @@ THREE.Quaternion.prototype={set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;thi
a
.
y
*
d
;
this
.
z
=
a
.
z
*
d
;
this
.
w
=
Math
.
cos
(
c
);
return
this
},
calculateW
:
function
(){
this
.
w
=-
Math
.
sqrt
(
Math
.
abs
(
1
-
this
.
x
*
this
.
x
-
this
.
y
*
this
.
y
-
this
.
z
*
this
.
z
));
return
this
},
inverse
:
function
(){
this
.
x
*=-
1
;
this
.
y
*=-
1
;
this
.
z
*=-
1
;
return
this
},
length
:
function
(){
return
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
)},
normalize
:
function
(){
var
a
=
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
);
if
(
a
==
0
)
this
.
w
=
this
.
z
=
this
.
y
=
this
.
x
=
0
;
else
{
a
=
1
/
a
;
this
.
x
*=
a
;
this
.
y
*=
a
;
this
.
z
*=
a
;
this
.
w
*=
a
}
return
this
},
multiplySelf
:
function
(
a
){
var
b
=
this
.
x
,
c
=
this
.
y
,
d
=
this
.
z
,
e
=
this
.
w
,
h
=
a
.
x
,
f
=
a
.
y
,
i
=
a
.
z
;
a
=
a
.
w
;
this
.
x
=
b
*
a
+
e
*
h
+
c
*
i
-
d
*
f
;
this
.
y
=
c
*
a
+
e
*
f
+
d
*
h
-
b
*
i
;
this
.
z
=
d
*
a
+
e
*
i
+
b
*
f
-
c
*
h
;
this
.
w
=
e
*
a
-
b
*
h
-
c
*
f
-
d
*
i
;
return
this
},
multiply
:
function
(
a
,
b
){
this
.
x
=
a
.
x
*
b
.
w
+
a
.
y
*
b
.
z
-
a
.
z
*
b
.
y
+
a
.
w
*
b
.
x
;
this
.
y
=-
a
.
x
*
b
.
z
+
a
.
y
*
b
.
w
+
a
.
z
*
b
.
x
+
a
.
w
*
b
.
y
;
this
.
z
=
a
.
x
*
b
.
y
-
a
.
y
*
b
.
x
+
a
.
z
*
b
.
w
+
a
.
w
*
b
.
z
;
this
.
w
=-
a
.
x
*
b
.
x
-
a
.
y
*
b
.
y
-
a
.
z
*
b
.
z
+
a
.
w
*
b
.
w
;
return
this
},
multiplyVector3
:
function
(
a
,
b
){
b
||
(
b
=
a
);
var
c
=
a
.
x
,
d
=
a
.
y
,
e
=
a
.
z
,
h
=
this
.
x
,
f
=
this
.
y
,
i
=
this
.
z
,
g
=
this
.
w
,
j
=
g
*
c
+
f
*
e
-
i
*
d
,
m
=
g
*
d
+
i
*
c
-
h
*
e
,
k
=
g
*
e
+
h
*
d
-
f
*
c
;
c
=-
h
*
c
-
f
*
d
-
i
*
e
;
b
.
x
=
j
*
g
+
c
*-
h
+
m
*-
i
-
k
*-
f
;
b
.
y
=
m
*
g
+
c
*-
f
+
k
*-
h
-
j
*-
i
;
b
.
z
=
k
*
g
+
c
*-
i
+
j
*-
f
-
m
*-
h
;
return
b
}};
THREE
.
Quaternion
.
slerp
=
function
(
a
,
b
,
c
,
d
){
var
e
=
a
.
w
*
b
.
w
+
a
.
x
*
b
.
x
+
a
.
y
*
b
.
y
+
a
.
z
*
b
.
z
;
if
(
Math
.
abs
(
e
)
>=
1
){
c
.
w
=
a
.
w
;
c
.
x
=
a
.
x
;
c
.
y
=
a
.
y
;
c
.
z
=
a
.
z
;
return
c
}
var
h
=
Math
.
acos
(
e
),
f
=
Math
.
sqrt
(
1
-
e
*
e
);
if
(
Math
.
abs
(
f
)
<
0.001
){
c
.
w
=
0.5
*
(
a
.
w
+
b
.
w
);
c
.
x
=
0.5
*
(
a
.
x
+
b
.
x
);
c
.
y
=
0.5
*
(
a
.
y
+
b
.
y
);
c
.
z
=
0.5
*
(
a
.
z
+
b
.
z
);
return
c
}
e
=
Math
.
sin
((
1
-
d
)
*
h
)
/
f
;
d
=
Math
.
sin
(
d
*
h
)
/
f
;
c
.
w
=
a
.
w
*
e
+
b
.
w
*
d
;
c
.
x
=
a
.
x
*
e
+
b
.
x
*
d
;
c
.
y
=
a
.
y
*
e
+
b
.
y
*
d
;
c
.
z
=
a
.
z
*
e
+
b
.
z
*
d
;
return
c
};
THREE
.
Vertex
=
function
(
a
){
this
.
position
=
a
||
new
THREE
.
Vector3
};
THREE
.
Quaternion
.
slerp
=
function
(
a
,
b
,
c
,
d
){
var
e
=
a
.
w
*
b
.
w
+
a
.
x
*
b
.
x
+
a
.
y
*
b
.
y
+
a
.
z
*
b
.
z
;
if
(
Math
.
abs
(
e
)
>=
1
){
c
.
w
=
a
.
w
;
c
.
x
=
a
.
x
;
c
.
y
=
a
.
y
;
c
.
z
=
a
.
z
;
return
c
}
var
h
=
Math
.
acos
(
e
),
f
=
Math
.
sqrt
(
1
-
e
*
e
);
if
(
Math
.
abs
(
f
)
<
0.001
0
){
c
.
w
=
0.5
*
(
a
.
w
+
b
.
w
);
c
.
x
=
0.5
*
(
a
.
x
+
b
.
x
);
c
.
y
=
0.5
*
(
a
.
y
+
b
.
y
);
c
.
z
=
0.5
*
(
a
.
z
+
b
.
z
);
return
c
}
e
=
Math
.
sin
((
1
-
d
)
*
h
)
/
f
;
d
=
Math
.
sin
(
d
*
h
)
/
f
;
c
.
w
=
a
.
w
*
e
+
b
.
w
*
d
;
c
.
x
=
a
.
x
*
e
+
b
.
x
*
d
;
c
.
y
=
a
.
y
*
e
+
b
.
y
*
d
;
c
.
z
=
a
.
z
*
e
+
b
.
z
*
d
;
return
c
};
THREE
.
Vertex
=
function
(
a
){
this
.
position
=
a
||
new
THREE
.
Vector3
};
THREE
.
Face3
=
function
(
a
,
b
,
c
,
d
,
e
,
h
){
this
.
a
=
a
;
this
.
b
=
b
;
this
.
c
=
c
;
this
.
normal
=
d
instanceof
THREE
.
Vector3
?
d
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
d
instanceof
Array
?
d
:[];
this
.
color
=
e
instanceof
THREE
.
Color
?
e
:
new
THREE
.
Color
;
this
.
vertexColors
=
e
instanceof
Array
?
e
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
h
instanceof
Array
?
h
:[
h
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
Face4
=
function
(
a
,
b
,
c
,
d
,
e
,
h
,
f
){
this
.
a
=
a
;
this
.
b
=
b
;
this
.
c
=
c
;
this
.
d
=
d
;
this
.
normal
=
e
instanceof
THREE
.
Vector3
?
e
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
e
instanceof
Array
?
e
:[];
this
.
color
=
h
instanceof
THREE
.
Color
?
h
:
new
THREE
.
Color
;
this
.
vertexColors
=
h
instanceof
Array
?
h
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
f
instanceof
Array
?
f
:[
f
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
UV
=
function
(
a
,
b
){
this
.
set
(
a
||
0
,
b
||
0
)};
THREE
.
UV
.
prototype
=
{
set
:
function
(
a
,
b
){
this
.
u
=
a
;
this
.
v
=
b
;
return
this
},
copy
:
function
(
a
){
this
.
set
(
a
.
u
,
a
.
v
);
return
this
}};
THREE
.
Geometry
=
function
(){
this
.
id
=
"
Geometry
"
+
THREE
.
GeometryIdCounter
++
;
this
.
vertices
=
[];
this
.
colors
=
[];
this
.
faces
=
[];
this
.
edges
=
[];
this
.
faceUvs
=
[[]];
this
.
faceVertexUvs
=
[[]];
this
.
morphTargets
=
[];
this
.
morphColors
=
[];
this
.
skinWeights
=
[];
this
.
skinIndices
=
[];
this
.
boundingSphere
=
this
.
boundingBox
=
null
;
this
.
hasTangents
=!
1
};
...
...
build/custom/ThreeWebGL.js
浏览文件 @
35344be4
...
...
@@ -49,7 +49,7 @@ THREE.Quaternion.prototype={set:function(b,d,e,g){this.x=b;this.y=d;this.z=e;thi
b
.
y
*
g
;
this
.
z
=
b
.
z
*
g
;
this
.
w
=
Math
.
cos
(
e
);
return
this
},
calculateW
:
function
(){
this
.
w
=-
Math
.
sqrt
(
Math
.
abs
(
1
-
this
.
x
*
this
.
x
-
this
.
y
*
this
.
y
-
this
.
z
*
this
.
z
));
return
this
},
inverse
:
function
(){
this
.
x
*=-
1
;
this
.
y
*=-
1
;
this
.
z
*=-
1
;
return
this
},
length
:
function
(){
return
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
)},
normalize
:
function
(){
var
b
=
Math
.
sqrt
(
this
.
x
*
this
.
x
+
this
.
y
*
this
.
y
+
this
.
z
*
this
.
z
+
this
.
w
*
this
.
w
);
if
(
b
==
0
)
this
.
w
=
this
.
z
=
this
.
y
=
this
.
x
=
0
;
else
{
b
=
1
/
b
;
this
.
x
*=
b
;
this
.
y
*=
b
;
this
.
z
*=
b
;
this
.
w
*=
b
}
return
this
},
multiplySelf
:
function
(
b
){
var
d
=
this
.
x
,
e
=
this
.
y
,
g
=
this
.
z
,
h
=
this
.
w
,
o
=
b
.
x
,
n
=
b
.
y
,
p
=
b
.
z
;
b
=
b
.
w
;
this
.
x
=
d
*
b
+
h
*
o
+
e
*
p
-
g
*
n
;
this
.
y
=
e
*
b
+
h
*
n
+
g
*
o
-
d
*
p
;
this
.
z
=
g
*
b
+
h
*
p
+
d
*
n
-
e
*
o
;
this
.
w
=
h
*
b
-
d
*
o
-
e
*
n
-
g
*
p
;
return
this
},
multiply
:
function
(
b
,
d
){
this
.
x
=
b
.
x
*
d
.
w
+
b
.
y
*
d
.
z
-
b
.
z
*
d
.
y
+
b
.
w
*
d
.
x
;
this
.
y
=-
b
.
x
*
d
.
z
+
b
.
y
*
d
.
w
+
b
.
z
*
d
.
x
+
b
.
w
*
d
.
y
;
this
.
z
=
b
.
x
*
d
.
y
-
b
.
y
*
d
.
x
+
b
.
z
*
d
.
w
+
b
.
w
*
d
.
z
;
this
.
w
=-
b
.
x
*
d
.
x
-
b
.
y
*
d
.
y
-
b
.
z
*
d
.
z
+
b
.
w
*
d
.
w
;
return
this
},
multiplyVector3
:
function
(
b
,
d
){
d
||
(
d
=
b
);
var
e
=
b
.
x
,
g
=
b
.
y
,
h
=
b
.
z
,
o
=
this
.
x
,
n
=
this
.
y
,
p
=
this
.
z
,
q
=
this
.
w
,
v
=
q
*
e
+
n
*
h
-
p
*
g
,
E
=
q
*
g
+
p
*
e
-
o
*
h
,
F
=
q
*
h
+
o
*
g
-
n
*
e
;
e
=-
o
*
e
-
n
*
g
-
p
*
h
;
d
.
x
=
v
*
q
+
e
*-
o
+
E
*-
p
-
F
*-
n
;
d
.
y
=
E
*
q
+
e
*-
n
+
F
*-
o
-
v
*-
p
;
d
.
z
=
F
*
q
+
e
*-
p
+
v
*-
n
-
E
*-
o
;
return
d
}};
THREE
.
Quaternion
.
slerp
=
function
(
b
,
d
,
e
,
g
){
var
h
=
b
.
w
*
d
.
w
+
b
.
x
*
d
.
x
+
b
.
y
*
d
.
y
+
b
.
z
*
d
.
z
;
if
(
Math
.
abs
(
h
)
>=
1
){
e
.
w
=
b
.
w
;
e
.
x
=
b
.
x
;
e
.
y
=
b
.
y
;
e
.
z
=
b
.
z
;
return
e
}
var
o
=
Math
.
acos
(
h
),
n
=
Math
.
sqrt
(
1
-
h
*
h
);
if
(
Math
.
abs
(
n
)
<
0.001
){
e
.
w
=
0.5
*
(
b
.
w
+
d
.
w
);
e
.
x
=
0.5
*
(
b
.
x
+
d
.
x
);
e
.
y
=
0.5
*
(
b
.
y
+
d
.
y
);
e
.
z
=
0.5
*
(
b
.
z
+
d
.
z
);
return
e
}
h
=
Math
.
sin
((
1
-
g
)
*
o
)
/
n
;
g
=
Math
.
sin
(
g
*
o
)
/
n
;
e
.
w
=
b
.
w
*
h
+
d
.
w
*
g
;
e
.
x
=
b
.
x
*
h
+
d
.
x
*
g
;
e
.
y
=
b
.
y
*
h
+
d
.
y
*
g
;
e
.
z
=
b
.
z
*
h
+
d
.
z
*
g
;
return
e
};
THREE
.
Vertex
=
function
(
b
){
this
.
position
=
b
||
new
THREE
.
Vector3
};
THREE
.
Quaternion
.
slerp
=
function
(
b
,
d
,
e
,
g
){
var
h
=
b
.
w
*
d
.
w
+
b
.
x
*
d
.
x
+
b
.
y
*
d
.
y
+
b
.
z
*
d
.
z
;
if
(
Math
.
abs
(
h
)
>=
1
){
e
.
w
=
b
.
w
;
e
.
x
=
b
.
x
;
e
.
y
=
b
.
y
;
e
.
z
=
b
.
z
;
return
e
}
var
o
=
Math
.
acos
(
h
),
n
=
Math
.
sqrt
(
1
-
h
*
h
);
if
(
Math
.
abs
(
n
)
<
0.001
0
){
e
.
w
=
0.5
*
(
b
.
w
+
d
.
w
);
e
.
x
=
0.5
*
(
b
.
x
+
d
.
x
);
e
.
y
=
0.5
*
(
b
.
y
+
d
.
y
);
e
.
z
=
0.5
*
(
b
.
z
+
d
.
z
);
return
e
}
h
=
Math
.
sin
((
1
-
g
)
*
o
)
/
n
;
g
=
Math
.
sin
(
g
*
o
)
/
n
;
e
.
w
=
b
.
w
*
h
+
d
.
w
*
g
;
e
.
x
=
b
.
x
*
h
+
d
.
x
*
g
;
e
.
y
=
b
.
y
*
h
+
d
.
y
*
g
;
e
.
z
=
b
.
z
*
h
+
d
.
z
*
g
;
return
e
};
THREE
.
Vertex
=
function
(
b
){
this
.
position
=
b
||
new
THREE
.
Vector3
};
THREE
.
Face3
=
function
(
b
,
d
,
e
,
g
,
h
,
o
){
this
.
a
=
b
;
this
.
b
=
d
;
this
.
c
=
e
;
this
.
normal
=
g
instanceof
THREE
.
Vector3
?
g
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
g
instanceof
Array
?
g
:[];
this
.
color
=
h
instanceof
THREE
.
Color
?
h
:
new
THREE
.
Color
;
this
.
vertexColors
=
h
instanceof
Array
?
h
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
o
instanceof
Array
?
o
:[
o
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
Face4
=
function
(
b
,
d
,
e
,
g
,
h
,
o
,
n
){
this
.
a
=
b
;
this
.
b
=
d
;
this
.
c
=
e
;
this
.
d
=
g
;
this
.
normal
=
h
instanceof
THREE
.
Vector3
?
h
:
new
THREE
.
Vector3
;
this
.
vertexNormals
=
h
instanceof
Array
?
h
:[];
this
.
color
=
o
instanceof
THREE
.
Color
?
o
:
new
THREE
.
Color
;
this
.
vertexColors
=
o
instanceof
Array
?
o
:[];
this
.
vertexTangents
=
[];
this
.
materials
=
n
instanceof
Array
?
n
:[
n
];
this
.
centroid
=
new
THREE
.
Vector3
};
THREE
.
UV
=
function
(
b
,
d
){
this
.
set
(
b
||
0
,
d
||
0
)};
THREE
.
UV
.
prototype
=
{
set
:
function
(
b
,
d
){
this
.
u
=
b
;
this
.
v
=
d
;
return
this
},
copy
:
function
(
b
){
this
.
set
(
b
.
u
,
b
.
v
);
return
this
}};
THREE
.
Geometry
=
function
(){
this
.
id
=
"
Geometry
"
+
THREE
.
GeometryIdCounter
++
;
this
.
vertices
=
[];
this
.
colors
=
[];
this
.
faces
=
[];
this
.
edges
=
[];
this
.
faceUvs
=
[[]];
this
.
faceVertexUvs
=
[[]];
this
.
morphTargets
=
[];
this
.
morphColors
=
[];
this
.
skinWeights
=
[];
this
.
skinIndices
=
[];
this
.
boundingSphere
=
this
.
boundingBox
=
null
;
this
.
hasTangents
=!
1
};
...
...
@@ -203,7 +203,7 @@ u*m.scale.y;c.uniform2f(w.uvScale,m.uvScale.x,m.uvScale.y);c.uniform2f(w.uvOffse
r
){
var
j
,
k
,
m
=
f
.
__webglLensFlares
.
length
,
w
,
x
,
u
,
A
=
new
THREE
.
Vector3
,
t
=
Aa
/
za
,
y
=
za
*
0.5
,
z
=
Aa
*
0.5
,
D
=
16
/
Aa
,
B
=
[
D
*
t
,
D
],
O
=
[
1
,
1
,
0
],
W
=
[
1
,
1
],
P
=
J
.
uniforms
;
j
=
J
.
attributes
;
c
.
useProgram
(
J
.
program
);
sa
=
J
.
program
;
ha
=
""
;
if
(
!
pb
){
c
.
enableVertexAttribArray
(
J
.
attributes
.
vertex
);
c
.
enableVertexAttribArray
(
J
.
attributes
.
uv
);
pb
=!
0
}
c
.
uniform1i
(
P
.
occlusionMap
,
0
);
c
.
uniform1i
(
P
.
map
,
1
);
c
.
bindBuffer
(
c
.
ARRAY_BUFFER
,
J
.
vertexBuffer
);
c
.
vertexAttribPointer
(
j
.
vertex
,
2
,
c
.
FLOAT
,
!
1
,
16
,
0
);
c
.
vertexAttribPointer
(
j
.
uv
,
2
,
c
.
FLOAT
,
!
1
,
16
,
8
);
c
.
bindBuffer
(
c
.
ELEMENT_ARRAY_BUFFER
,
J
.
elementBuffer
);
c
.
disable
(
c
.
CULL_FACE
);
c
.
depthMask
(
!
1
);
c
.
activeTexture
(
c
.
TEXTURE0
);
c
.
bindTexture
(
c
.
TEXTURE_2D
,
J
.
occlusionTexture
);
c
.
activeTexture
(
c
.
TEXTURE1
);
for
(
k
=
0
;
k
<
m
;
k
++
){
j
=
f
.
__webglLensFlares
[
k
].
object
;
A
.
set
(
j
.
matrixWorld
.
n14
,
j
.
matrixWorld
.
n24
,
j
.
matrixWorld
.
n34
);
r
.
matrixWorldInverse
.
multiplyVector3
(
A
);
r
.
projectionMatrix
.
multiplyVector3
(
A
);
O
[
0
]
=
A
.
x
;
O
[
1
]
=
A
.
y
;
O
[
2
]
=
A
.
z
;
W
[
0
]
=
O
[
0
]
*
y
+
y
;
W
[
1
]
=
O
[
1
]
*
z
+
z
;
if
(
J
.
hasVertexTexture
||
W
[
0
]
>
0
&&
W
[
0
]
<
za
&&
W
[
1
]
>
0
&&
W
[
1
]
<
Aa
){
c
.
bindTexture
(
c
.
TEXTURE_2D
,
J
.
tempTexture
);
c
.
copyTexImage2D
(
c
.
TEXTURE_2D
,
0
,
c
.
RGB
,
W
[
0
]
-
8
,
W
[
1
]
-
8
,
16
,
16
,
0
);
c
.
uniform1i
(
P
.
renderType
,
0
);
c
.
uniform2fv
(
P
.
scale
,
B
);
c
.
uniform3fv
(
P
.
screenPosition
,
O
);
c
.
disable
(
c
.
BLEND
);
c
.
enable
(
c
.
DEPTH_TEST
);
c
.
drawElements
(
c
.
TRIANGLES
,
6
,
c
.
UNSIGNED_SHORT
,
0
);
c
.
bindTexture
(
c
.
TEXTURE_2D
,
J
.
occlusionTexture
);
c
.
copyTexImage2D
(
c
.
TEXTURE_2D
,
0
,
c
.
RGBA
,
W
[
0
]
-
8
,
W
[
1
]
-
8
,
16
,
16
,
0
);
c
.
uniform1i
(
P
.
renderType
,
1
);
c
.
disable
(
c
.
DEPTH_TEST
);
c
.
bindTexture
(
c
.
TEXTURE_2D
,
J
.
tempTexture
);
c
.
drawElements
(
c
.
TRIANGLES
,
6
,
c
.
UNSIGNED_SHORT
,
0
);
j
.
positionScreen
.
x
=
O
[
0
];
j
.
positionScreen
.
y
=
O
[
1
];
j
.
positionScreen
.
z
=
O
[
2
];
j
.
customUpdateCallback
?
j
.
customUpdateCallback
(
j
):
j
.
updateLensFlares
();
c
.
uniform1i
(
P
.
renderType
,
2
);
c
.
enable
(
c
.
BLEND
);
w
=
0
;
for
(
x
=
j
.
lensFlares
.
length
;
w
<
x
;
w
++
){
u
=
j
.
lensFlares
[
w
];
if
(
u
.
opacity
>
0.001
&&
u
.
scale
>
0.001
){
O
[
0
]
=
u
.
x
;
O
[
1
]
=
u
.
y
;
O
[
2
]
=
u
.
z
;
D
=
u
.
size
*
u
.
scale
/
Aa
;
B
[
0
]
=
D
*
t
;
B
[
1
]
=
D
;
c
.
uniform3fv
(
P
.
screenPosition
,
O
);
c
.
uniform2fv
(
P
.
scale
,
B
);
c
.
uniform1f
(
P
.
rotation
,
u
.
rotation
);
c
.
uniform1f
(
P
.
opacity
,
u
.
opacity
);
pa
(
u
.
blending
);
K
(
u
.
texture
,
1
);
c
.
drawElements
(
c
.
TRIANGLES
,
O
[
0
];
j
.
positionScreen
.
y
=
O
[
1
];
j
.
positionScreen
.
z
=
O
[
2
];
j
.
customUpdateCallback
?
j
.
customUpdateCallback
(
j
):
j
.
updateLensFlares
();
c
.
uniform1i
(
P
.
renderType
,
2
);
c
.
enable
(
c
.
BLEND
);
w
=
0
;
for
(
x
=
j
.
lensFlares
.
length
;
w
<
x
;
w
++
){
u
=
j
.
lensFlares
[
w
];
if
(
u
.
opacity
>
0.001
0
&&
u
.
scale
>
0.0010
){
O
[
0
]
=
u
.
x
;
O
[
1
]
=
u
.
y
;
O
[
2
]
=
u
.
z
;
D
=
u
.
size
*
u
.
scale
/
Aa
;
B
[
0
]
=
D
*
t
;
B
[
1
]
=
D
;
c
.
uniform3fv
(
P
.
screenPosition
,
O
);
c
.
uniform2fv
(
P
.
scale
,
B
);
c
.
uniform1f
(
P
.
rotation
,
u
.
rotation
);
c
.
uniform1f
(
P
.
opacity
,
u
.
opacity
);
pa
(
u
.
blending
);
K
(
u
.
texture
,
1
);
c
.
drawElements
(
c
.
TRIANGLES
,
6
,
c
.
UNSIGNED_SHORT
,
0
)}}}}
c
.
enable
(
c
.
CULL_FACE
);
c
.
enable
(
c
.
DEPTH_TEST
);
c
.
depthMask
(
Y
)}
function
U
(
f
,
r
){
f
.
_modelViewMatrix
.
multiplyToArray
(
r
.
matrixWorldInverse
,
f
.
matrixWorld
,
f
.
_modelViewMatrixArray
);
THREE
.
Matrix4
.
makeInvert3x3
(
f
.
_modelViewMatrix
).
transposeIntoArray
(
f
.
_normalMatrixArray
)}
function
L
(
f
){
var
r
,
j
,
k
,
m
,
w
;
if
(
f
instanceof
THREE
.
Mesh
){
j
=
f
.
geometry
;
for
(
r
in
j
.
geometryGroups
){
k
=
j
.
geometryGroups
[
r
];
w
=!
1
;
for
(
m
in
k
.
__webglCustomAttributes
)
if
(
k
.
__webglCustomAttributes
[
m
].
needsUpdate
){
w
=!
0
;
break
}
if
(
j
.
__dirtyVertices
||
j
.
__dirtyMorphTargets
||
j
.
__dirtyElements
||
j
.
__dirtyUvs
||
j
.
__dirtyNormals
||
j
.
__dirtyColors
||
j
.
__dirtyTangents
||
w
){
w
=
c
.
DYNAMIC_DRAW
;
var
x
=
void
0
,
u
=
void
0
,
A
=
void
0
,
t
=
void
0
;
A
=
void
0
;
var
y
=
void
0
,
z
=
void
0
,
D
=
void
0
,
B
=
void
0
,
O
=
void
0
,
W
=
void
0
,
P
=
void
0
,
X
=
void
0
,
Ga
=
void
0
,
S
=
void
0
,
Q
=
void
0
,
T
=
void
0
,
ta
=
void
0
;
z
=
void
0
;
D
=
void
0
;
t
=
void
0
;
B
=
void
0
;
t
=
void
0
;
var
s
=
void
0
,
G
=
void
0
;
z
=
void
0
;
s
=
void
0
;
G
=
void
0
;
var
i
=
void
0
,
Ka
=
void
0
;
s
=
void
0
;
G
=
void
0
;
i
=
void
0
;
Ka
=
void
0
;
s
=
void
0
;
G
=
void
0
;
i
=
void
0
;
Ka
=
void
0
;
s
=
void
0
;
G
=
void
0
;
i
=
void
0
;
t
=
void
0
;
B
=
void
0
;
y
=
void
0
;
A
=
void
0
;
A
=
void
0
;
s
=
void
0
;
G
=
void
0
;
i
=
void
0
;
var
Va
=
void
0
,
ua
=
0
,
Ba
=
0
,
Za
=
0
,
$a
=
0
,
Ja
=
0
,
La
=
0
,
ea
=
0
,
Ma
=
0
,
wa
=
0
,
C
=
0
,
Ca
=
0
;
G
=
s
=
0
;
var
Da
=
k
.
__vertexArray
,
fb
=
k
.
__uvArray
,
gb
=
k
.
__uv2Array
,
Qa
=
k
.
__normalArray
,
ia
=
k
.
__tangentArray
,
Ea
=
k
.
__colorArray
,
ja
=
k
.
__skinVertexAArray
,
ka
=
k
.
__skinVertexBArray
,
la
=
k
.
__skinIndexArray
,
ma
=
k
.
__skinWeightArray
,
hb
=
k
.
__morphTargetsArrays
,
Ra
=
k
.
__webglCustomAttributes
;
i
=
void
0
;
var
Na
=
k
.
__faceArray
,
Oa
=
k
.
__lineArray
,
qb
=
k
.
__needsSmoothNormals
;
W
=
k
.
__vertexColorType
;
...
...
examples/misc_sound.html
浏览文件 @
35344be4
...
...
@@ -72,7 +72,7 @@
camera
=
new
THREE
.
QuakeCamera
(
{
fov
:
50
,
aspect
:
window
.
innerWidth
/
window
.
innerHeight
,
near
:
1
,
far
:
10000
,
movementSpeed
:
1
,
lookSpeed
:
0.002
,
noFly
:
true
,
lookVertical
:
false
movementSpeed
:
70
,
lookSpeed
:
0.05
,
noFly
:
true
,
lookVertical
:
false
}
);
camera
.
position
.
set
(
0
,
25
,
0
);
...
...
examples/webgl_geometry_dynamic.html
浏览文件 @
35344be4
...
...
@@ -73,7 +73,7 @@
camera
=
new
THREE
.
QuakeCamera
(
{
fov
:
60
,
aspect
:
window
.
innerWidth
/
window
.
innerHeight
,
near
:
1
,
far
:
20000
,
movementSpeed
:
10
,
lookSpeed
:
0.004
,
noFly
:
false
,
lookVertical
:
true
movementSpeed
:
500
,
lookSpeed
:
0.1
,
noFly
:
false
,
lookVertical
:
true
}
);
...
...
examples/webgl_geometry_minecraft.html
浏览文件 @
35344be4
...
...
@@ -78,7 +78,7 @@
camera
=
new
THREE
.
QuakeCamera
(
{
fov
:
60
,
aspect
:
window
.
innerWidth
/
window
.
innerHeight
,
near
:
1
,
far
:
20000
,
movementSpeed
:
1
5
,
lookSpeed
:
0.00
125
,
noFly
:
false
,
lookVertical
:
true
movementSpeed
:
1
000
,
lookSpeed
:
0.
125
,
noFly
:
false
,
lookVertical
:
true
}
);
...
...
examples/webgl_geometry_minecraft_ao.html
浏览文件 @
35344be4
...
...
@@ -87,7 +87,7 @@
fov
:
50
,
aspect
:
window
.
innerWidth
/
window
.
innerHeight
,
near
:
1
,
far
:
20000
,
constrainVertical
:
true
,
verticalMin
:
1.1
,
verticalMax
:
2.2
,
movementSpeed
:
1
5
,
lookSpeed
:
0.00
25
,
noFly
:
false
,
lookVertical
:
true
,
autoForward
:
false
movementSpeed
:
1
000
,
lookSpeed
:
0.1
25
,
noFly
:
false
,
lookVertical
:
true
,
autoForward
:
false
}
);
...
...
examples/webgl_geometry_terrain.html
浏览文件 @
35344be4
...
...
@@ -70,7 +70,7 @@
camera
=
new
THREE
.
QuakeCamera
(
{
fov
:
60
,
aspect
:
window
.
innerWidth
/
window
.
innerHeight
,
near
:
1
,
far
:
20000
,
movementSpeed
:
1
5
,
lookSpeed
:
0.00
1
,
noFly
:
false
,
lookVertical
:
true
movementSpeed
:
1
000
,
lookSpeed
:
0.
1
,
noFly
:
false
,
lookVertical
:
true
}
);
...
...
examples/webgl_geometry_terrain_fog.html
浏览文件 @
35344be4
...
...
@@ -69,7 +69,7 @@
camera
=
new
THREE
.
QuakeCamera
(
{
fov
:
60
,
aspect
:
window
.
innerWidth
/
window
.
innerHeight
,
near
:
1
,
far
:
10000
,
movementSpeed
:
5
,
lookSpeed
:
0.00
1
,
noFly
:
false
,
lookVertical
:
true
movementSpeed
:
150
,
lookSpeed
:
0.
1
,
noFly
:
false
,
lookVertical
:
true
}
);
...
...
src/extras/cameras/FlyCamera.js
浏览文件 @
35344be4
...
...
@@ -29,7 +29,6 @@ THREE.FlyCamera = function ( parameters ) {
THREE
.
Camera
.
call
(
this
,
parameters
.
fov
,
parameters
.
aspect
,
parameters
.
near
,
parameters
.
far
,
parameters
.
target
);
this
.
tmpQuaternion
=
new
THREE
.
Quaternion
();
this
.
tdiff
=
0
;
this
.
movementSpeed
=
1.0
;
this
.
rollSpeed
=
0.005
;
...
...
@@ -61,6 +60,7 @@ THREE.FlyCamera = function ( parameters ) {
this
.
rotationVector
=
new
THREE
.
Vector3
(
0
,
0
,
0
);
this
.
lastUpdate
=
new
Date
().
getTime
();
this
.
tdiff
=
0
;
this
.
handleEvent
=
function
(
event
)
{
...
...
src/extras/cameras/QuakeCamera.js
浏览文件 @
35344be4
...
...
@@ -53,6 +53,9 @@ THREE.QuakeCamera = function ( parameters ) {
this
.
domElement
=
document
;
this
.
lastUpdate
=
new
Date
().
getTime
();
this
.
tdiff
=
0
;
if
(
parameters
)
{
if
(
parameters
.
movementSpeed
!==
undefined
)
this
.
movementSpeed
=
parameters
.
movementSpeed
;
...
...
@@ -189,6 +192,10 @@ THREE.QuakeCamera = function ( parameters ) {
this
.
update
=
function
()
{
var
now
=
new
Date
().
getTime
();
this
.
tdiff
=
(
now
-
this
.
lastUpdate
)
/
1000
;
this
.
lastUpdate
=
now
;
if
(
!
this
.
freeze
)
{
...
...
@@ -197,7 +204,7 @@ THREE.QuakeCamera = function ( parameters ) {
var
y
=
clamp
(
this
.
position
.
y
,
this
.
heightMin
,
this
.
heightMax
),
delta
=
y
-
this
.
heightMin
;
this
.
autoSpeedFactor
=
delta
*
this
.
heightCoef
;
this
.
autoSpeedFactor
=
this
.
tdiff
*
(
delta
*
this
.
heightCoef
)
;
}
else
{
...
...
@@ -205,12 +212,14 @@ THREE.QuakeCamera = function ( parameters ) {
}
if
(
this
.
moveForward
||
(
this
.
autoForward
&&
!
this
.
moveBackward
)
)
this
.
translateZ
(
-
(
this
.
movementSpeed
+
this
.
autoSpeedFactor
)
);
if
(
this
.
moveBackward
)
this
.
translateZ
(
this
.
movementSpeed
);
if
(
this
.
moveLeft
)
this
.
translateX
(
-
this
.
movementSpeed
);
if
(
this
.
moveRight
)
this
.
translateX
(
this
.
movementSpeed
);
var
actualMoveSpeed
=
this
.
tdiff
*
this
.
movementSpeed
;
if
(
this
.
moveForward
||
(
this
.
autoForward
&&
!
this
.
moveBackward
)
)
this
.
translateZ
(
-
(
actualMoveSpeed
+
this
.
autoSpeedFactor
)
);
if
(
this
.
moveBackward
)
this
.
translateZ
(
actualMoveSpeed
);
if
(
this
.
moveLeft
)
this
.
translateX
(
-
actualMoveSpeed
);
if
(
this
.
moveRight
)
this
.
translateX
(
actualMoveSpeed
);
var
actualLookSpeed
=
this
.
lookSpeed
;
var
actualLookSpeed
=
this
.
tdiff
*
this
.
lookSpeed
;
if
(
!
this
.
activeLook
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录