Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
5523a1a4
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 搜索 >>
提交
5523a1a4
编写于
1月 14, 2017
作者:
K
Kyle Larson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Nurbs are currently working.
上级
d0ca829e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
77 addition
and
2 deletion
+77
-2
examples/js/loaders/FBXLoader2.js
examples/js/loaders/FBXLoader2.js
+77
-2
未找到文件。
examples/js/loaders/FBXLoader2.js
浏览文件 @
5523a1a4
...
...
@@ -144,7 +144,6 @@
var
fileName
=
filePath
;
}
debugger
;
var
texture
=
loader
.
textureLoader
.
load
(
resourceDirectory
+
'
/
'
+
fileName
);
texture
.
name
=
name
;
texture
.
FBX_ID
=
FBX_ID
;
...
...
@@ -563,7 +562,6 @@
}
debugger
;
/**
* @type {{vertexBuffer: number[], normalBuffer: number[], uvBuffer: number[], skinIndexBuffer: number[], skinWeightBuffer: number[], materialIndexBuffer: number[]}}
*/
...
...
@@ -800,6 +798,62 @@
}
/**
* @param {{parents: {ID: number, relationship: string}[], children: {ID: number, relationship: string}[]}} relationships
* @param {Map<number, {map: Map<number, {FBX_ID: number, indices: number[], weights: number[], transform: number[], transformLink: number[], linkMode: string}>, array: {FBX_ID: number, indices: number[], weights: number[], transform: number[], transformLink: number[], linkMode: string}[]}>} deformerMap
*/
function
parseNurbsGeometry
(
geometryNode
,
relationships
,
deformerMap
)
{
if
(
THREE
.
NURBSCurve
===
undefined
)
{
console
.
error
(
"
THREE.FBXLoader relies on THREE.NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry.
"
);
return
new
Geometry
();
}
var
order
=
parseInt
(
geometryNode
.
properties
.
Order
);
if
(
isNaN
(
order
)
)
{
console
.
error
(
"
FBXLoader: Invalid Order
"
+
geometryNode
.
properties
.
Order
+
"
given for geometry ID:
"
+
geometryNode
.
id
);
return
new
Geometry
();
}
var
knots
=
parseFloatArray
(
geometryNode
.
subNodes
.
KnotVector
.
properties
.
a
);
var
controlPoints
=
[];
var
pointsValues
=
parseFloatArray
(
geometryNode
.
subNodes
.
Points
.
properties
.
a
);
for
(
var
i
=
0
;
i
<
pointsValues
.
length
;
i
+=
4
)
{
controlPoints
.
push
(
new
THREE
.
Vector4
(
pointsValues
[
i
],
pointsValues
[
i
+
1
],
pointsValues
[
i
+
2
],
pointsValues
[
i
+
3
]
)
);
}
if
(
geometryNode
.
properties
.
Form
===
'
Closed
'
)
{
controlPoints
.
push
(
controlPoints
[
0
]
);
}
var
curve
=
new
THREE
.
NURBSCurve
(
order
-
1
,
knots
,
controlPoints
);
var
vertices
=
curve
.
getPoints
(
controlPoints
.
length
*
1.5
);
var
vertexBuffer
=
[];
vertices
.
forEach
(
function
(
position
)
{
var
array
=
position
.
toArray
();
vertexBuffer
=
vertexBuffer
.
concat
(
array
);
}
);
var
geometry
=
new
THREE
.
BufferGeometry
();
geometry
.
addAttribute
(
'
position
'
,
new
THREE
.
BufferAttribute
(
new
Float32Array
(
vertexBuffer
),
3
)
);
return
geometry
;
}
}
}
...
...
@@ -909,6 +963,11 @@
}
if
(
geometry
.
FBX_Deformer
)
{
// materials.forEach( function ( material ) {
// material.skinning = true;
// } );
model
=
new
THREE
.
SkinnedMesh
(
geometry
,
material
);
}
else
{
...
...
@@ -918,6 +977,22 @@
}
break
;
case
"
NurbsCurve
"
:
var
geometry
=
null
;
conns
.
children
.
forEach
(
function
(
child
)
{
if
(
geometryMap
.
has
(
child
.
ID
)
)
{
geometry
=
geometryMap
.
get
(
child
.
ID
);
}
}
);
model
=
new
THREE
.
Line
(
geometry
);
break
;
default
:
model
=
new
THREE
.
Object3D
();
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录