Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
59eca2c8
T
three.js
项目概览
车家大少爷
/
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 搜索 >>
提交
59eca2c8
编写于
9月 27, 2017
作者:
M
Mr.doob
提交者:
GitHub
9月 27, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12276 from sneha-belkhale/dev
loading of multiple uv coordinates
上级
65f19f18
3ca73f19
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
53 addition
and
24 deletion
+53
-24
examples/js/loaders/FBXLoader.js
examples/js/loaders/FBXLoader.js
+53
-24
未找到文件。
examples/js/loaders/FBXLoader.js
浏览文件 @
59eca2c8
...
...
@@ -730,7 +730,14 @@
if
(
subNodes
.
LayerElementUV
)
{
var
uvInfo
=
getUVs
(
subNodes
.
LayerElementUV
[
0
]
);
var
uvInfo
=
[];
var
i
=
0
;
while
(
subNodes
.
LayerElementUV
[
i
]
){
uvInfo
.
push
(
getUVs
(
subNodes
.
LayerElementUV
[
i
]
));
i
++
;
}
}
...
...
@@ -873,7 +880,12 @@
if
(
uvInfo
)
{
vertex
.
uv
.
fromArray
(
getData
(
polygonVertexIndex
,
polygonIndex
,
vertexIndex
,
uvInfo
)
);
for
(
var
i
=
0
;
i
<
uvInfo
.
length
;
i
++
)
{
uvTemp
=
new
THREE
.
Vector2
();
vertex
.
uv
.
push
(
uvTemp
.
fromArray
(
getData
(
polygonVertexIndex
,
polygonIndex
,
vertexIndex
,
uvInfo
[
i
]
)
)
);
}
}
...
...
@@ -927,11 +939,23 @@
geo
.
addAttribute
(
'
normal
'
,
new
THREE
.
Float32BufferAttribute
(
bufferInfo
.
normalBuffer
,
3
)
);
}
if
(
bufferInfo
.
uvBuffer
.
length
>
0
)
{
if
(
bufferInfo
.
uvBuffers
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
bufferInfo
.
uvBuffers
.
length
;
i
++
)
{
geo
.
addAttribute
(
'
uv
'
,
new
THREE
.
Float32BufferAttribute
(
bufferInfo
.
uvBuffer
,
2
)
);
var
name
=
'
uv
'
+
(
i
+
1
).
toString
();
if
(
i
==
0
)
{
name
=
'
uv
'
;
}
geo
.
addAttribute
(
name
,
new
THREE
.
Float32BufferAttribute
(
bufferInfo
.
uvBuffers
[
i
],
2
)
);
}
}
if
(
subNodes
.
LayerElementColor
)
{
geo
.
addAttribute
(
'
color
'
,
new
THREE
.
Float32BufferAttribute
(
bufferInfo
.
colorBuffer
,
3
)
);
...
...
@@ -3655,10 +3679,10 @@
this
.
normal
=
new
THREE
.
Vector3
();
/**
* UV coordinates of the vertex.
* @type {THREE.Vector2}
*
Array of
UV coordinates of the vertex.
* @type {
Array of
THREE.Vector2}
*/
this
.
uv
=
new
THREE
.
Vector2
()
;
this
.
uv
=
[]
;
/**
* Color of the vertex
...
...
@@ -3696,11 +3720,15 @@
},
flattenToBuffers
:
function
(
vertexBuffer
,
normalBuffer
,
uvBuffer
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
)
{
flattenToBuffers
:
function
(
vertexBuffer
,
normalBuffer
,
uvBuffer
s
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
)
{
this
.
position
.
toArray
(
vertexBuffer
,
vertexBuffer
.
length
);
this
.
normal
.
toArray
(
normalBuffer
,
normalBuffer
.
length
);
this
.
uv
.
toArray
(
uvBuffer
,
uvBuffer
.
length
);
for
(
var
i
=
0
;
i
<
this
.
uv
.
length
;
i
++
)
{
this
.
uv
[
i
].
toArray
(
uvBuffers
[
i
],
uvBuffers
[
i
].
length
);
}
this
.
color
.
toArray
(
colorBuffer
,
colorBuffer
.
length
);
this
.
skinIndices
.
toArray
(
skinIndexBuffer
,
skinIndexBuffer
.
length
);
this
.
skinWeights
.
toArray
(
skinWeightBuffer
,
skinWeightBuffer
.
length
);
...
...
@@ -3737,14 +3765,13 @@
},
flattenToBuffers
:
function
(
vertexBuffer
,
normalBuffer
,
uvBuffer
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
)
{
flattenToBuffers
:
function
(
vertexBuffer
,
normalBuffer
,
uvBuffer
s
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
)
{
var
vertices
=
this
.
vertices
;
for
(
var
i
=
0
,
l
=
vertices
.
length
;
i
<
l
;
++
i
)
{
vertices
[
i
].
flattenToBuffers
(
vertexBuffer
,
normalBuffer
,
uvBuffer
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
);
vertices
[
i
].
flattenToBuffers
(
vertexBuffer
,
normalBuffer
,
uvBuffers
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
);
}
}
...
...
@@ -3796,14 +3823,14 @@
},
flattenToBuffers
:
function
(
vertexBuffer
,
normalBuffer
,
uvBuffer
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
,
materialIndexBuffer
)
{
flattenToBuffers
:
function
(
vertexBuffer
,
normalBuffer
,
uvBuffer
s
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
,
materialIndexBuffer
)
{
var
triangles
=
this
.
triangles
;
var
materialIndex
=
this
.
materialIndex
;
for
(
var
i
=
0
,
l
=
triangles
.
length
;
i
<
l
;
++
i
)
{
triangles
[
i
].
flattenToBuffers
(
vertexBuffer
,
normalBuffer
,
uvBuffer
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
);
triangles
[
i
].
flattenToBuffers
(
vertexBuffer
,
normalBuffer
,
uvBuffer
s
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
);
append
(
materialIndexBuffer
,
[
materialIndex
,
materialIndex
,
materialIndex
]
);
}
...
...
@@ -3818,7 +3845,7 @@
function
Geometry
()
{
/**
* @type {{triangles: {vertices: {position: THREE.Vector3, normal: THREE.Vector3, uv: THREE.Vector2, skinIndices: THREE.Vector4, skinWeights: THREE.Vector4}[]}[], materialIndex: number}[]}
* @type {{triangles: {vertices: {position: THREE.Vector3, normal: THREE.Vector3, uv:
Array of
THREE.Vector2, skinIndices: THREE.Vector4, skinWeights: THREE.Vector4}[]}[], materialIndex: number}[]}
*/
this
.
faces
=
[];
...
...
@@ -3832,31 +3859,34 @@
Object
.
assign
(
Geometry
.
prototype
,
{
/**
* @returns {{vertexBuffer: number[], normalBuffer: number[], uvBuffer
:
number[], skinIndexBuffer: number[], skinWeightBuffer: number[], materialIndexBuffer: number[]}}
* @returns {{vertexBuffer: number[], normalBuffer: number[], uvBuffer
s: Array of
number[], skinIndexBuffer: number[], skinWeightBuffer: number[], materialIndexBuffer: number[]}}
*/
flattenToBuffers
:
function
()
{
flattenToBuffers
:
function
()
{
var
vertexBuffer
=
[];
var
normalBuffer
=
[];
var
uvBuffer
=
[];
var
uvBuffer
s
=
[];
var
colorBuffer
=
[];
var
skinIndexBuffer
=
[];
var
skinWeightBuffer
=
[];
var
materialIndexBuffer
=
[];
var
faces
=
this
.
faces
;
for
(
var
i
=
0
,
l
=
faces
.
length
;
i
<
l
;
++
i
)
{
for
(
var
i
=
0
;
i
<
faces
[
0
].
triangles
[
0
].
vertices
[
0
].
uv
.
length
;
i
++
)
{
uvBuffers
.
push
([]);
faces
[
i
].
flattenToBuffers
(
vertexBuffer
,
normalBuffer
,
uvBuffer
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
,
materialIndexBuffer
);
}
for
(
var
i
=
0
,
l
=
faces
.
length
;
i
<
l
;
++
i
)
{
faces
[
i
].
flattenToBuffers
(
vertexBuffer
,
normalBuffer
,
uvBuffers
,
colorBuffer
,
skinIndexBuffer
,
skinWeightBuffer
,
materialIndexBuffer
);
}
return
{
vertexBuffer
:
vertexBuffer
,
normalBuffer
:
normalBuffer
,
uvBuffer
:
uvBuffer
,
uvBuffer
s
:
uvBuffers
,
colorBuffer
:
colorBuffer
,
skinIndexBuffer
:
skinIndexBuffer
,
skinWeightBuffer
:
skinWeightBuffer
,
...
...
@@ -3864,8 +3894,7 @@
};
}
}
);
});
function
TextParser
()
{}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录