Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
6de11c6e
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,发现更多精彩内容 >>
提交
6de11c6e
编写于
9月 04, 2012
作者:
A
alteredq
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added handling of bump mapping to SceneLoader.
上级
c9224d03
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
7 deletion
+12
-7
build/three.min.js
build/three.min.js
+2
-2
examples/scenes/test_scene.js
examples/scenes/test_scene.js
+9
-4
src/loaders/SceneLoader.js
src/loaders/SceneLoader.js
+1
-1
未找到文件。
build/three.min.js
浏览文件 @
6de11c6e
...
...
@@ -195,8 +195,8 @@ J.lights[p]=t}for(n in C.fogs){p=C.fogs[n];p.type==="linear"?M=new THREE.Fog(0,p
"
cylinder
"
){
F
=
new
THREE
.
CylinderGeometry
(
n
.
topRad
,
n
.
botRad
,
n
.
height
,
n
.
radSegs
,
n
.
heightSegs
);
J
.
geometries
[
j
]
=
F
}
else
if
(
n
.
type
===
"
torus
"
){
F
=
new
THREE
.
TorusGeometry
(
n
.
radius
,
n
.
tube
,
n
.
segmentsR
,
n
.
segmentsT
);
J
.
geometries
[
j
]
=
F
}
else
if
(
n
.
type
===
"
icosahedron
"
){
F
=
new
THREE
.
IcosahedronGeometry
(
n
.
radius
,
n
.
subdivisions
);
J
.
geometries
[
j
]
=
F
}
else
if
(
n
.
type
===
"
bin_mesh
"
)
c
.
load
(
d
(
n
.
url
,
C
.
urlBaseType
),
e
(
j
));
else
if
(
n
.
type
===
"
ascii_mesh
"
)
E
.
load
(
d
(
n
.
url
,
C
.
urlBaseType
),
e
(
j
));
else
if
(
n
.
type
===
"
embedded_mesh
"
){
n
=
C
.
embeds
[
n
.
id
];
n
.
metadata
=
C
.
metadata
;
n
&&
E
.
createModel
(
n
,
g
(
j
),
""
)}}
for
(
s
in
C
.
textures
){
j
=
C
.
textures
[
s
];
if
(
j
.
url
instanceof
Array
){
N
=
N
+
j
.
url
.
length
;
for
(
n
=
0
;
n
<
j
.
url
.
length
;
n
++
)
i
.
onLoadStart
()}
else
{
N
=
N
+
1
;
i
.
onLoadStart
()}}
Y
=
N
;
for
(
s
in
C
.
textures
){
j
=
C
.
textures
[
s
];
if
(
j
.
mapping
!==
void
0
&&
THREE
[
j
.
mapping
]
!==
void
0
)
j
.
mapping
=
new
THREE
[
j
.
mapping
];
if
(
j
.
url
instanceof
Array
){
n
=
j
.
url
.
length
;
M
=
[];
for
(
c
=
0
;
c
<
n
;
c
++
)
M
[
c
]
=
d
(
j
.
url
[
c
],
C
.
urlBaseType
);
n
=
THREE
.
ImageUtils
.
loadTextureCube
(
M
,
j
.
mapping
,
a
(
n
))}
else
{
n
=
THREE
.
ImageUtils
.
loadTexture
(
d
(
j
.
url
,
C
.
urlBaseType
),
j
.
mapping
,
a
(
1
));
if
(
THREE
[
j
.
minFilter
]
!==
void
0
)
n
.
minFilter
=
THREE
[
j
.
minFilter
];
if
(
THREE
[
j
.
magFilter
]
!==
void
0
)
n
.
magFilter
=
THREE
[
j
.
magFilter
];
if
(
j
.
anisotropy
)
n
.
anisotropy
=
j
.
anisotropy
;
if
(
j
.
repeat
){
n
.
repeat
.
set
(
j
.
repeat
[
0
],
j
.
repeat
[
1
]);
if
(
j
.
repeat
[
0
]
!==
1
)
n
.
wrapS
=
THREE
.
RepeatWrapping
;
if
(
j
.
repeat
[
1
]
!==
1
)
n
.
wrapT
=
THREE
.
RepeatWrapping
}
j
.
offset
&&
n
.
offset
.
set
(
j
.
offset
[
0
],
j
.
offset
[
1
]);
if
(
j
.
wrap
){
M
=
{
repeat
:
THREE
.
RepeatWrapping
,
mirror
:
THREE
.
MirroredRepeatWrapping
};
if
(
M
[
j
.
wrap
[
0
]]
!==
void
0
)
n
.
wrapS
=
M
[
j
.
wrap
[
0
]];
if
(
M
[
j
.
wrap
[
1
]]
!==
void
0
)
n
.
wrapT
=
M
[
j
.
wrap
[
1
]]}}
J
.
textures
[
s
]
=
n
}
for
(
o
in
C
.
materials
){
u
=
C
.
materials
[
o
];
for
(
I
in
u
.
parameters
)
if
(
I
===
"
envMap
"
||
I
===
"
map
"
||
I
===
"
lightMap
"
)
u
.
parameters
[
I
]
=
J
.
textures
[
u
.
parameters
[
I
]];
else
if
(
I
===
"
shading
"
)
u
.
parameters
[
I
]
=
u
.
parameters
[
I
]
==
"
flat
"
?
THREE
.
FlatShading
:
THREE
.
SmoothShading
;
else
if
(
I
===
"
blending
"
)
u
.
parameters
[
I
]
=
u
.
parameters
[
I
]
in
THREE
?
THREE
[
u
.
parameters
[
I
]]:
THREE
.
NormalBlending
;
else
if
(
I
===
"
combine
"
)
u
.
parameters
[
I
]
=
u
.
parameters
[
I
]
==
"
MixOperation
"
?
THREE
.
MixOperation
:
THREE
.
MultiplyOperation
;
else
if
(
I
===
"
vertexColors
"
)
if
(
u
.
parameters
[
I
]
==
"
face
"
)
u
.
parameters
[
I
]
=
THREE
.
FaceColors
;
else
if
(
u
.
parameters
[
I
])
u
.
parameters
[
I
]
=
THREE
.
VertexColors
;
if
(
u
.
parameters
.
opacity
!==
void
0
&&
u
.
parameters
.
opacity
<
1
)
u
.
parameters
.
transparent
=
true
;
if
(
u
.
parameters
.
normalMap
){
s
=
THREE
.
ShaderUtils
.
lib
.
normal
;
a
=
THREE
.
UniformsUtils
.
clone
(
s
.
uniforms
);
j
=
u
.
parameters
.
color
;
n
=
u
.
parameters
.
specular
;
M
=
u
.
parameters
.
ambient
;
c
=
u
.
parameters
.
shininess
;
a
.
tNormal
.
value
=
J
.
textures
[
u
.
parameters
.
normalMap
];
M
[
j
.
wrap
[
0
]];
if
(
M
[
j
.
wrap
[
1
]]
!==
void
0
)
n
.
wrapT
=
M
[
j
.
wrap
[
1
]]}}
J
.
textures
[
s
]
=
n
}
for
(
o
in
C
.
materials
){
u
=
C
.
materials
[
o
];
for
(
I
in
u
.
parameters
)
if
(
I
===
"
envMap
"
||
I
===
"
map
"
||
I
===
"
lightMap
"
||
I
===
"
bumpMap
"
)
u
.
parameters
[
I
]
=
J
.
textures
[
u
.
parameters
[
I
]];
else
if
(
I
===
"
shading
"
)
u
.
parameters
[
I
]
=
u
.
parameters
[
I
]
==
"
flat
"
?
THREE
.
FlatShading
:
THREE
.
SmoothShading
;
else
if
(
I
===
"
blending
"
)
u
.
parameters
[
I
]
=
u
.
parameters
[
I
]
in
THREE
?
THREE
[
u
.
parameters
[
I
]]:
THREE
.
NormalBlending
;
else
if
(
I
===
"
combine
"
)
u
.
parameters
[
I
]
=
u
.
parameters
[
I
]
==
"
MixOperation
"
?
THREE
.
MixOperation
:
THREE
.
MultiplyOperation
;
else
if
(
I
===
"
vertexColors
"
)
if
(
u
.
parameters
[
I
]
==
"
face
"
)
u
.
parameters
[
I
]
=
THREE
.
FaceColors
;
else
if
(
u
.
parameters
[
I
])
u
.
parameters
[
I
]
=
THREE
.
VertexColors
;
if
(
u
.
parameters
.
opacity
!==
void
0
&&
u
.
parameters
.
opacity
<
1
)
u
.
parameters
.
transparent
=
true
;
if
(
u
.
parameters
.
normalMap
){
s
=
THREE
.
ShaderUtils
.
lib
.
normal
;
a
=
THREE
.
UniformsUtils
.
clone
(
s
.
uniforms
);
j
=
u
.
parameters
.
color
;
n
=
u
.
parameters
.
specular
;
M
=
u
.
parameters
.
ambient
;
c
=
u
.
parameters
.
shininess
;
a
.
tNormal
.
value
=
J
.
textures
[
u
.
parameters
.
normalMap
];
u
.
parameters
.
normalMapFactor
&&
a
.
uNormalScale
.
value
.
set
(
u
.
parameters
.
normalMapFactor
,
u
.
parameters
.
normalMapFactor
);
if
(
u
.
parameters
.
map
){
a
.
tDiffuse
.
value
=
u
.
parameters
.
map
;
a
.
enableDiffuse
.
value
=
true
}
if
(
u
.
parameters
.
lightMap
){
a
.
tAO
.
value
=
u
.
parameters
.
lightMap
;
a
.
enableAO
.
value
=
true
}
if
(
u
.
parameters
.
specularMap
){
a
.
tSpecular
.
value
=
J
.
textures
[
u
.
parameters
.
specularMap
];
a
.
enableSpecular
.
value
=
true
}
a
.
uDiffuseColor
.
value
.
setHex
(
j
);
a
.
uSpecularColor
.
value
.
setHex
(
n
);
a
.
uAmbientColor
.
value
.
setHex
(
M
);
a
.
uShininess
.
value
=
c
;
if
(
u
.
parameters
.
opacity
)
a
.
uOpacity
.
value
=
u
.
parameters
.
opacity
;
L
=
new
THREE
.
ShaderMaterial
({
fragmentShader
:
s
.
fragmentShader
,
vertexShader
:
s
.
vertexShader
,
uniforms
:
a
,
lights
:
true
,
fog
:
true
})}
else
L
=
new
THREE
[
u
.
type
](
u
.
parameters
);
J
.
materials
[
o
]
=
L
}
f
(
J
.
scene
,
C
.
objects
);
i
.
callbackSync
(
J
);
h
()};
THREE
.
TextureLoader
=
function
(){
THREE
.
EventTarget
.
call
(
this
);
this
.
crossOrigin
=
null
};
THREE
.
TextureLoader
.
prototype
=
{
constructor
:
THREE
.
TextureLoader
,
load
:
function
(
a
){
var
b
=
this
,
c
=
new
Image
;
c
.
addEventListener
(
"
load
"
,
function
(){
var
a
=
new
THREE
.
Texture
(
c
);
a
.
needsUpdate
=
true
;
b
.
dispatchEvent
({
type
:
"
load
"
,
content
:
a
})},
false
);
c
.
addEventListener
(
"
error
"
,
function
(){
b
.
dispatchEvent
({
type
:
"
error
"
,
message
:
"
Couldn't load URL [
"
+
a
+
"
]
"
})},
false
);
if
(
b
.
crossOrigin
)
c
.
crossOrigin
=
b
.
crossOrigin
;
c
.
src
=
a
}};
...
...
examples/scenes/test_scene.js
浏览文件 @
6de11c6e
...
...
@@ -11,7 +11,7 @@
"
cube1
"
:
{
"
geometry
"
:
"
cubeNormals
"
,
"
materials
"
:
[
"
lambert
_red
"
],
"
materials
"
:
[
"
phong
_red
"
],
"
position
"
:
[
0
,
0
,
0
],
"
rotation
"
:
[
0
,
-
0.3
,
0
],
"
scale
"
:
[
1
,
1
,
1
],
...
...
@@ -336,9 +336,9 @@
"
parameters
"
:
{
"
color
"
:
16777215
,
"
shading
"
:
"
flat
"
}
},
"
lambert
_red
"
:
{
"
type
"
:
"
Mesh
Lambert
Material
"
,
"
parameters
"
:
{
"
color
"
:
16711680
}
"
phong
_red
"
:
{
"
type
"
:
"
Mesh
Phong
Material
"
,
"
parameters
"
:
{
"
color
"
:
16711680
,
"
specular
"
:
16711680
,
"
shininess
"
:
25
,
"
bumpMap
"
:
"
texture_bump
"
,
"
bumpScale
"
:
-
0.75
}
},
"
lambert_green
"
:
{
...
...
@@ -441,6 +441,11 @@
"
anisotropy
"
:
4
},
"
texture_bump
"
:
{
"
url
"
:
"
textures/water.jpg
"
,
"
anisotropy
"
:
4
},
"
texture_minecraft
"
:
{
"
url
"
:
"
textures/minecraft/grass.png
"
,
"
magFilter
"
:
"
NearestFilter
"
,
...
...
src/loaders/SceneLoader.js
浏览文件 @
6de11c6e
...
...
@@ -676,7 +676,7 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
for
(
pp
in
m
.
parameters
)
{
if
(
pp
===
"
envMap
"
||
pp
===
"
map
"
||
pp
===
"
lightMap
"
)
{
if
(
pp
===
"
envMap
"
||
pp
===
"
map
"
||
pp
===
"
lightMap
"
||
pp
===
"
bumpMap
"
)
{
m
.
parameters
[
pp
]
=
result
.
textures
[
m
.
parameters
[
pp
]
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录