Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
f396baf5
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,体验更适合开发者的 AI 搜索 >>
提交
f396baf5
编写于
10月 21, 2013
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
r62
上级
ff9aee88
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
8 addition
and
7 deletion
+8
-7
build/three.js
build/three.js
+3
-2
build/three.min.js
build/three.min.js
+3
-3
docs/index.html
docs/index.html
+1
-1
src/Three.js
src/Three.js
+1
-1
未找到文件。
build/three.js
浏览文件 @
f396baf5
...
...
@@ -4,7 +4,7 @@
* @author bhouston / http://exocortex.com
*/
var THREE = { REVISION: '62
dev
' };
var THREE = { REVISION: '62' };
self.console = self.console || {
...
...
@@ -11195,8 +11195,9 @@ THREE.JSONLoader.prototype.parse = function ( json, texturePath ) {
}
geometry.bones = json.bones;
// could change this to json.animations[0] or remove completely
geometry.animation = json.animation;
geometry.animations = json.animations;
};
function parseMorphing( scale ) {
...
...
build/three.min.js
浏览文件 @
f396baf5
// three.js - http://github.com/mrdoob/three.js
'
use strict
'
;
var
THREE
=
{
REVISION
:
"
62
dev
"
};
self
.
console
=
self
.
console
||
{
info
:
function
(){},
log
:
function
(){},
debug
:
function
(){},
warn
:
function
(){},
error
:
function
(){}};
String
.
prototype
.
trim
=
String
.
prototype
.
trim
||
function
(){
return
this
.
replace
(
/^
\s
+|
\s
+$/g
,
""
)};
THREE
.
extend
=
function
(
a
,
b
){
if
(
Object
.
keys
)
for
(
var
c
=
Object
.
keys
(
b
),
d
=
0
,
e
=
c
.
length
;
d
<
e
;
d
++
){
var
f
=
c
[
d
];
Object
.
defineProperty
(
a
,
f
,
Object
.
getOwnPropertyDescriptor
(
b
,
f
))}
else
for
(
f
in
c
=
{}.
hasOwnProperty
,
b
)
c
.
call
(
b
,
f
)
&&
(
a
[
f
]
=
b
[
f
]);
return
a
};
'
use strict
'
;
var
THREE
=
{
REVISION
:
"
62
"
};
self
.
console
=
self
.
console
||
{
info
:
function
(){},
log
:
function
(){},
debug
:
function
(){},
warn
:
function
(){},
error
:
function
(){}};
String
.
prototype
.
trim
=
String
.
prototype
.
trim
||
function
(){
return
this
.
replace
(
/^
\s
+|
\s
+$/g
,
""
)};
THREE
.
extend
=
function
(
a
,
b
){
if
(
Object
.
keys
)
for
(
var
c
=
Object
.
keys
(
b
),
d
=
0
,
e
=
c
.
length
;
d
<
e
;
d
++
){
var
f
=
c
[
d
];
Object
.
defineProperty
(
a
,
f
,
Object
.
getOwnPropertyDescriptor
(
b
,
f
))}
else
for
(
f
in
c
=
{}.
hasOwnProperty
,
b
)
c
.
call
(
b
,
f
)
&&
(
a
[
f
]
=
b
[
f
]);
return
a
};
(
function
(){
for
(
var
a
=
0
,
b
=
[
"
ms
"
,
"
moz
"
,
"
webkit
"
,
"
o
"
],
c
=
0
;
c
<
b
.
length
&&!
self
.
requestAnimationFrame
;
++
c
)
self
.
requestAnimationFrame
=
self
[
b
[
c
]
+
"
RequestAnimationFrame
"
],
self
.
cancelAnimationFrame
=
self
[
b
[
c
]
+
"
CancelAnimationFrame
"
]
||
self
[
b
[
c
]
+
"
CancelRequestAnimationFrame
"
];
void
0
===
self
.
requestAnimationFrame
&&
void
0
!==
self
.
setTimeout
&&
(
self
.
requestAnimationFrame
=
function
(
b
){
var
c
=
Date
.
now
(),
f
=
Math
.
max
(
0
,
16
-
(
c
-
a
)),
h
=
self
.
setTimeout
(
function
(){
b
(
c
+
f
)},
f
);
a
=
c
+
f
;
return
h
});
void
0
===
self
.
cancelAnimationFrame
&&
void
0
!==
self
.
clearTimeout
&&
(
self
.
cancelAnimationFrame
=
function
(
a
){
self
.
clearTimeout
(
a
)})})();
THREE
.
CullFaceNone
=
0
;
THREE
.
CullFaceBack
=
1
;
THREE
.
CullFaceFront
=
2
;
THREE
.
CullFaceFrontBack
=
3
;
THREE
.
FrontFaceDirectionCW
=
0
;
THREE
.
FrontFaceDirectionCCW
=
1
;
THREE
.
BasicShadowMap
=
0
;
THREE
.
PCFShadowMap
=
1
;
THREE
.
PCFSoftShadowMap
=
2
;
THREE
.
FrontSide
=
0
;
THREE
.
BackSide
=
1
;
THREE
.
DoubleSide
=
2
;
THREE
.
NoShading
=
0
;
THREE
.
FlatShading
=
1
;
THREE
.
SmoothShading
=
2
;
THREE
.
NoColors
=
0
;
THREE
.
FaceColors
=
1
;
THREE
.
VertexColors
=
2
;
THREE
.
NoBlending
=
0
;
THREE
.
NormalBlending
=
1
;
THREE
.
AdditiveBlending
=
2
;
THREE
.
SubtractiveBlending
=
3
;
THREE
.
MultiplyBlending
=
4
;
THREE
.
CustomBlending
=
5
;
THREE
.
AddEquation
=
100
;
THREE
.
SubtractEquation
=
101
;
THREE
.
ReverseSubtractEquation
=
102
;
THREE
.
ZeroFactor
=
200
;
THREE
.
OneFactor
=
201
;
THREE
.
SrcColorFactor
=
202
;
THREE
.
OneMinusSrcColorFactor
=
203
;
THREE
.
SrcAlphaFactor
=
204
;
THREE
.
OneMinusSrcAlphaFactor
=
205
;
THREE
.
DstAlphaFactor
=
206
;
THREE
.
OneMinusDstAlphaFactor
=
207
;
THREE
.
DstColorFactor
=
208
;
THREE
.
OneMinusDstColorFactor
=
209
;
...
...
@@ -220,8 +220,8 @@ THREE.JSONLoader.prototype.parse=function(a,b){var c=new THREE.Geometry,d=void 0
s
.
b
=
u
[
g
+
1
];
s
.
c
=
u
[
g
+
3
];
n
=
new
THREE
.
Face3
;
n
.
a
=
u
[
g
+
1
];
n
.
b
=
u
[
g
+
2
];
n
.
c
=
u
[
g
+
3
];
g
+=
4
;
h
&&
(
h
=
u
[
g
++
],
s
.
materialIndex
=
h
,
n
.
materialIndex
=
h
);
h
=
c
.
faces
.
length
;
if
(
e
)
for
(
e
=
0
;
e
<
B
;
e
++
){
r
=
a
.
uvs
[
e
];
c
.
faceVertexUvs
[
e
][
h
]
=
[];
c
.
faceVertexUvs
[
e
][
h
+
1
]
=
[];
for
(
f
=
0
;
4
>
f
;
f
++
)
l
=
u
[
g
++
],
q
=
r
[
2
*
l
],
l
=
r
[
2
*
l
+
1
],
q
=
new
THREE
.
Vector2
(
q
,
l
),
2
!==
f
&&
c
.
faceVertexUvs
[
e
][
h
].
push
(
q
),
0
!==
f
&&
c
.
faceVertexUvs
[
e
][
h
+
1
].
push
(
q
)}
m
&&
(
m
=
3
*
u
[
g
++
],
s
.
normal
.
set
(
w
[
m
++
],
w
[
m
++
],
w
[
m
]),
n
.
normal
.
copy
(
s
.
normal
));
if
(
t
)
for
(
e
=
0
;
4
>
e
;
e
++
)
m
=
3
*
u
[
g
++
],
t
=
new
THREE
.
Vector3
(
w
[
m
++
],
w
[
m
++
],
w
[
m
]),
2
!==
e
&&
s
.
vertexNormals
.
push
(
t
),
0
!==
e
&&
n
.
vertexNormals
.
push
(
t
);
k
&&
(
k
=
u
[
g
++
],
k
=
z
[
k
],
s
.
color
.
setHex
(
k
),
n
.
color
.
setHex
(
k
));
if
(
p
)
for
(
e
=
0
;
4
>
e
;
e
++
)
k
=
u
[
g
++
],
k
=
z
[
k
],
2
!==
e
&&
s
.
vertexColors
.
push
(
new
THREE
.
Color
(
k
)),
0
!==
e
&&
n
.
vertexColors
.
push
(
new
THREE
.
Color
(
k
));
c
.
faces
.
push
(
s
);
c
.
faces
.
push
(
n
)}
else
{
s
=
new
THREE
.
Face3
;
s
.
a
=
u
[
g
++
];
s
.
b
=
u
[
g
++
];
s
.
c
=
u
[
g
++
];
h
&&
(
h
=
u
[
g
++
],
s
.
materialIndex
=
h
);
h
=
c
.
faces
.
length
;
if
(
e
)
for
(
e
=
0
;
e
<
B
;
e
++
){
r
=
a
.
uvs
[
e
];
c
.
faceVertexUvs
[
e
][
h
]
=
[];
for
(
f
=
0
;
3
>
f
;
f
++
)
l
=
u
[
g
++
],
q
=
r
[
2
*
l
],
l
=
r
[
2
*
l
+
1
],
q
=
new
THREE
.
Vector2
(
q
,
l
),
c
.
faceVertexUvs
[
e
][
h
].
push
(
q
)}
m
&&
(
m
=
3
*
u
[
g
++
],
s
.
normal
.
set
(
w
[
m
++
],
w
[
m
++
],
w
[
m
]));
if
(
t
)
for
(
e
=
0
;
3
>
e
;
e
++
)
m
=
3
*
u
[
g
++
],
t
=
new
THREE
.
Vector3
(
w
[
m
++
],
w
[
m
++
],
w
[
m
]),
s
.
vertexNormals
.
push
(
t
);
k
&&
(
k
=
u
[
g
++
],
s
.
color
.
setHex
(
z
[
k
]));
if
(
p
)
for
(
e
=
0
;
3
>
e
;
e
++
)
k
=
u
[
g
++
],
s
.
vertexColors
.
push
(
new
THREE
.
Color
(
z
[
k
]));
c
.
faces
.
push
(
s
)}
if
(
a
.
skinWeights
){
g
=
0
;
for
(
i
=
a
.
skinWeights
.
length
;
g
<
i
;
g
+=
2
)
u
=
a
.
skinWeights
[
g
],
w
=
a
.
skinWeights
[
g
+
1
],
c
.
skinWeights
.
push
(
new
THREE
.
Vector4
(
u
,
w
,
0
,
0
))}
if
(
a
.
skinIndices
){
g
=
0
;
for
(
i
=
a
.
skinIndices
.
length
;
g
<
i
;
g
+=
2
)
u
=
a
.
skinIndices
[
g
],
w
=
a
.
skinIndices
[
g
+
1
],
c
.
skinIndices
.
push
(
new
THREE
.
Vector4
(
u
,
w
,
0
,
0
))}
c
.
bones
=
a
.
bones
;
c
.
animation
=
a
.
animation
;
if
(
void
0
!==
a
.
morphTargets
){
g
=
0
;
for
(
i
=
a
.
morphTargets
.
length
;
g
<
i
;
g
++
){
c
.
morphTargets
[
g
]
=
{};
c
.
morphTargets
[
g
].
name
=
a
.
morphTargets
[
g
].
name
;
c
.
morphTargets
[
g
].
vertices
=
[];
z
=
c
.
morphTargets
[
g
].
vertices
;
B
=
a
.
morphTargets
[
g
].
vertices
;
u
=
0
;
for
(
w
=
B
.
length
;
u
<
w
;
u
+=
3
)
p
=
new
THREE
.
Vector3
,
p
.
x
=
B
[
u
]
*
d
,
p
.
y
=
B
[
u
+
1
]
*
d
,
p
.
z
=
B
[
u
+
2
]
*
d
,
z
.
push
(
p
)}}
if
(
void
0
!==
a
.
morphColors
){
g
=
0
;
for
(
i
=
a
.
morphColors
.
length
;
g
<
i
;
g
++
){
c
.
morphColors
[
g
]
=
{};
c
.
morphColors
[
g
].
name
=
a
.
morphColors
[
g
].
name
;
c
.
morphColors
[
g
].
colors
=
[];
w
=
c
.
morphColors
[
g
].
colors
;
z
=
a
.
morphColors
[
g
].
colors
;
d
=
0
;
for
(
u
=
z
.
length
;
d
<
u
;
d
+=
3
)
B
=
new
THREE
.
Color
(
16755200
),
B
.
setRGB
(
z
[
d
],
z
[
d
+
1
],
z
[
d
+
2
]),
w
.
push
(
B
)}}
c
.
computeCentroids
();
c
.
computeFaceNormals
();
c
.
computeBoundingSphere
();
if
(
void
0
===
a
.
materials
)
return
{
geometry
:
c
};
d
=
this
.
initMaterials
(
a
.
materials
,
b
);
this
.
needsTangents
(
d
)
&&
c
.
computeTangents
();
return
{
geometry
:
c
,
materials
:
d
}};
THREE
.
LoadingManager
=
function
(
a
,
b
,
c
){
var
d
=
this
,
e
=
0
,
f
=
0
;
this
.
onLoad
=
a
;
this
.
onProgress
=
b
;
this
.
onError
=
c
;
this
.
itemStart
=
function
(){
f
++
};
this
.
itemEnd
=
function
(
a
){
e
++
;
if
(
void
0
!==
d
.
onProgress
)
d
.
onProgress
(
a
,
e
,
f
);
if
(
e
===
f
&&
void
0
!==
d
.
onLoad
)
d
.
onLoad
()}};
THREE
.
DefaultLoadingManager
=
new
THREE
.
LoadingManager
;
THREE
.
BufferGeometryLoader
=
function
(
a
){
this
.
manager
=
void
0
!==
a
?
a
:
THREE
.
DefaultLoadingManager
};
i
;
g
+=
2
)
u
=
a
.
skinIndices
[
g
],
w
=
a
.
skinIndices
[
g
+
1
],
c
.
skinIndices
.
push
(
new
THREE
.
Vector4
(
u
,
w
,
0
,
0
))}
c
.
bones
=
a
.
bones
;
c
.
animation
=
a
.
animation
;
c
.
animations
=
a
.
animations
;
if
(
void
0
!==
a
.
morphTargets
){
g
=
0
;
for
(
i
=
a
.
morphTargets
.
length
;
g
<
i
;
g
++
){
c
.
morphTargets
[
g
]
=
{};
c
.
morphTargets
[
g
].
name
=
a
.
morphTargets
[
g
].
name
;
c
.
morphTargets
[
g
].
vertices
=
[];
z
=
c
.
morphTargets
[
g
].
vertices
;
B
=
a
.
morphTargets
[
g
].
vertices
;
u
=
0
;
for
(
w
=
B
.
length
;
u
<
w
;
u
+=
3
)
p
=
new
THREE
.
Vector3
,
p
.
x
=
B
[
u
]
*
d
,
p
.
y
=
B
[
u
+
1
]
*
d
,
p
.
z
=
B
[
u
+
2
]
*
d
,
z
.
push
(
p
)}}
if
(
void
0
!==
a
.
morphColors
){
g
=
0
;
for
(
i
=
a
.
morphColors
.
length
;
g
<
i
;
g
++
){
c
.
morphColors
[
g
]
=
{};
c
.
morphColors
[
g
].
name
=
a
.
morphColors
[
g
].
name
;
c
.
morphColors
[
g
].
colors
=
[];
w
=
c
.
morphColors
[
g
].
colors
;
z
=
a
.
morphColors
[
g
].
colors
;
d
=
0
;
for
(
u
=
z
.
length
;
d
<
u
;
d
+=
3
)
B
=
new
THREE
.
Color
(
16755200
),
B
.
setRGB
(
z
[
d
],
z
[
d
+
1
],
z
[
d
+
2
]),
w
.
push
(
B
)}}
c
.
computeCentroids
();
c
.
computeFaceNormals
();
c
.
computeBoundingSphere
();
if
(
void
0
===
a
.
materials
)
return
{
geometry
:
c
};
d
=
this
.
initMaterials
(
a
.
materials
,
b
);
this
.
needsTangents
(
d
)
&&
c
.
computeTangents
();
return
{
geometry
:
c
,
materials
:
d
}};
THREE
.
LoadingManager
=
function
(
a
,
b
,
c
){
var
d
=
this
,
e
=
0
,
f
=
0
;
this
.
onLoad
=
a
;
this
.
onProgress
=
b
;
this
.
onError
=
c
;
this
.
itemStart
=
function
(){
f
++
};
this
.
itemEnd
=
function
(
a
){
e
++
;
if
(
void
0
!==
d
.
onProgress
)
d
.
onProgress
(
a
,
e
,
f
);
if
(
e
===
f
&&
void
0
!==
d
.
onLoad
)
d
.
onLoad
()}};
THREE
.
DefaultLoadingManager
=
new
THREE
.
LoadingManager
;
THREE
.
BufferGeometryLoader
=
function
(
a
){
this
.
manager
=
void
0
!==
a
?
a
:
THREE
.
DefaultLoadingManager
};
THREE
.
BufferGeometryLoader
.
prototype
=
{
constructor
:
THREE
.
BufferGeometryLoader
,
load
:
function
(
a
,
b
){
var
c
=
this
,
d
=
new
THREE
.
XHRLoader
;
d
.
setCrossOrigin
(
this
.
crossOrigin
);
d
.
load
(
a
,
function
(
a
){
b
(
c
.
parse
(
JSON
.
parse
(
a
)))})},
setCrossOrigin
:
function
(
a
){
this
.
crossOrigin
=
a
},
parse
:
function
(
a
){
var
b
=
new
THREE
.
BufferGeometry
,
c
=
a
.
attributes
,
d
=
a
.
offsets
,
a
=
a
.
boundingSphere
,
e
;
for
(
e
in
c
){
var
f
=
c
[
e
];
b
.
attributes
[
e
]
=
{
itemSize
:
f
.
itemSize
,
array
:
new
self
[
f
.
type
](
f
.
array
)}}
void
0
!==
d
&&
(
b
.
offsets
=
JSON
.
parse
(
JSON
.
stringify
(
d
)));
void
0
!==
a
&&
(
b
.
boundingSphere
=
new
THREE
.
Sphere
((
new
THREE
.
Vector3
).
fromArray
(
void
0
!==
a
.
center
?
a
.
center
:[
0
,
0
,
0
]),
a
.
radius
));
return
b
}};
THREE
.
GeometryLoader
=
function
(
a
){
this
.
manager
=
void
0
!==
a
?
a
:
THREE
.
DefaultLoadingManager
};
THREE
.
GeometryLoader
.
prototype
=
{
constructor
:
THREE
.
GeometryLoader
,
load
:
function
(
a
,
b
){
var
c
=
this
,
d
=
new
THREE
.
XHRLoader
;
d
.
setCrossOrigin
(
this
.
crossOrigin
);
d
.
load
(
a
,
function
(
a
){
b
(
c
.
parse
(
JSON
.
parse
(
a
)))})},
setCrossOrigin
:
function
(
a
){
this
.
crossOrigin
=
a
},
parse
:
function
(){}};
THREE
.
MaterialLoader
=
function
(
a
){
this
.
manager
=
void
0
!==
a
?
a
:
THREE
.
DefaultLoadingManager
};
THREE
.
MaterialLoader
.
prototype
=
{
constructor
:
THREE
.
MaterialLoader
,
load
:
function
(
a
,
b
){
var
c
=
this
,
d
=
new
THREE
.
XHRLoader
;
d
.
setCrossOrigin
(
this
.
crossOrigin
);
d
.
load
(
a
,
function
(
a
){
b
(
c
.
parse
(
JSON
.
parse
(
a
)))})},
setCrossOrigin
:
function
(
a
){
this
.
crossOrigin
=
a
},
parse
:
function
(
a
){
var
b
=
new
THREE
[
a
.
type
];
void
0
!==
a
.
color
&&
b
.
color
.
setHex
(
a
.
color
);
void
0
!==
a
.
ambient
&&
b
.
ambient
.
setHex
(
a
.
ambient
);
void
0
!==
a
.
emissive
&&
b
.
emissive
.
setHex
(
a
.
emissive
);
void
0
!==
a
.
specular
&&
b
.
specular
.
setHex
(
a
.
specular
);
void
0
!==
a
.
shininess
&&
...
...
docs/index.html
浏览文件 @
f396baf5
...
...
@@ -97,7 +97,7 @@
<script
src=
"list.js"
></script>
<script>
var
REVISION
=
'
6
1
'
;
var
REVISION
=
'
6
2
'
;
var
panel
=
document
.
getElementById
(
'
panel
'
);
var
viewer
=
document
.
getElementById
(
'
viewer
'
);
...
...
src/Three.js
浏览文件 @
f396baf5
...
...
@@ -4,7 +4,7 @@
* @author bhouston / http://exocortex.com
*/
var
THREE
=
{
REVISION
:
'
62
dev
'
};
var
THREE
=
{
REVISION
:
'
62
'
};
self
.
console
=
self
.
console
||
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录