Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
3b59e217
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,发现更多精彩内容 >>
提交
3b59e217
编写于
5月 24, 2015
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
DirectGeometry: Rescued MorphTargets.
上级
c17fc1df
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
78 addition
and
33 deletion
+78
-33
src/core/BufferGeometry.js
src/core/BufferGeometry.js
+17
-27
src/core/DirectGeometry.js
src/core/DirectGeometry.js
+61
-6
未找到文件。
src/core/BufferGeometry.js
浏览文件 @
3b59e217
...
...
@@ -170,53 +170,43 @@ THREE.BufferGeometry.prototype = {
}
else
if
(
object
instanceof
THREE
.
Mesh
)
{
if
(
geometry
instanceof
THREE
.
DirectGeometry
)
{
this
.
fromDirectGeometry
(
geometry
);
}
else
if
(
geometry
instanceof
THREE
.
Geometry
)
{
if
(
geometry
instanceof
THREE
.
Geometry
)
{
this
.
fromGeometry
(
geometry
);
}
// skinning
// skinning
if
(
object
instanceof
THREE
.
SkinnedMesh
)
{
if
(
object
instanceof
THREE
.
SkinnedMesh
)
{
/*
var skinIndices = new THREE.Float32Attribute( geometry.skinIndices.length * 4, 4 );
var skinWeights = new THREE.Float32Attribute( geometry.skinWeights.length * 4, 4 );
/*
var skinIndices = new THREE.Float32Attribute( geometry.skinIndices.length * 4, 4
);
var skinWeights = new THREE.Float32Attribute( geometry.skinWeights.length * 4, 4 );
this.addAttribute( 'skinIndex', skinIndices.copyVector4sArray( geometry.skinIndices ) );
this.addAttribute( 'skinWeight', skinWeights.copyVector4sArray( geometry.skinWeights )
);
*/
this.addAttribute( 'skinIndex', skinIndices.copyVector4sArray( geometry.skinIndices ) );
this.addAttribute( 'skinWeight', skinWeights.copyVector4sArray( geometry.skinWeights ) );
*/
}
// morphs
}
if
(
object
.
morphTargetInfluences
!==
undefined
)
{
// morphs
/*
var morphTargets = geometry.morphTargets;
if
(
object
.
morphTargetInfluences
!==
undefined
)
{
if ( morphTargets.length > 0 ) {
var
morphTargets
=
geometry
.
__directGeometry
.
morphTargets
;
for
(
var
i
=
0
,
l
=
morphTargets
.
length
;
i
<
l
;
i
++
)
{
var
morphTarget
=
morphTargets
[
i
];
var attribute = new THREE.Float32Attribute( morphTarget.
vertices.
length * 3, 3 );
var
attribute
=
new
THREE
.
Float32Attribute
(
morphTarget
.
length
*
3
,
3
);
this.morphAttributes.push( attribute.copyVector3sArray( morphTarget
.vertices
) );
this
.
morphAttributes
.
push
(
attribute
.
copyVector3sArray
(
morphTarget
)
);
}
}
*/
// TODO normals, colors
// TODO normals, colors
}
}
...
...
src/core/DirectGeometry.js
浏览文件 @
3b59e217
...
...
@@ -18,6 +18,10 @@ THREE.DirectGeometry = function () {
this
.
uvs
=
[];
this
.
uvs2
=
[];
this
.
morphTargets
=
[];
this
.
morphColors
=
[];
this
.
morphNormals
=
[];
// this.lineDistances = [];
this
.
boundingBox
=
null
;
...
...
@@ -65,6 +69,37 @@ THREE.DirectGeometry.prototype = {
var
hasFaceVertexUv
=
faceVertexUvs
[
0
]
&&
faceVertexUvs
[
0
].
length
>
0
;
var
hasFaceVertexUv2
=
faceVertexUvs
[
1
]
&&
faceVertexUvs
[
1
].
length
>
0
;
// morphs
var
morphTargets
=
geometry
.
morphTargets
;
var
morphTargetsLength
=
morphTargets
.
length
;
for
(
var
i
=
0
;
i
<
morphTargetsLength
;
i
++
)
{
this
.
morphTargets
[
i
]
=
[];
}
var
morphNormals
=
geometry
.
morphNormals
;
var
morphNormalsLength
=
morphNormals
.
length
;
for
(
var
i
=
0
;
i
<
morphNormalsLength
;
i
++
)
{
this
.
morphNormals
[
i
]
=
[];
}
var
morphColors
=
geometry
.
morphColors
;
var
morphColorsLength
=
morphColors
.
length
;
for
(
var
i
=
0
;
i
<
morphColorsLength
;
i
++
)
{
this
.
morphColors
[
i
]
=
[];
}
//
for
(
var
i
=
0
;
i
<
faces
.
length
;
i
++
)
{
var
face
=
faces
[
i
];
...
...
@@ -135,6 +170,32 @@ THREE.DirectGeometry.prototype = {
}
// morphs
for
(
var
j
=
0
;
j
<
morphTargetsLength
;
j
++
)
{
var
morph
=
morphTargets
[
j
].
vertices
;
this
.
morphTargets
[
j
].
push
(
morph
[
face
.
a
],
morph
[
face
.
b
],
morph
[
face
.
c
]
);
}
for
(
var
j
=
0
;
j
<
morphNormalsLength
;
j
++
)
{
var
morph
=
morphNormals
[
j
].
normals
;
this
.
morphNormals
[
j
].
push
(
morph
[
face
.
a
],
morph
[
face
.
b
],
morph
[
face
.
c
]
);
}
for
(
var
j
=
0
;
j
<
morphColorsLength
;
j
++
)
{
var
morph
=
morphColors
[
j
].
colors
;
this
.
morphColors
[
j
].
push
(
morph
[
face
.
a
],
morph
[
face
.
b
],
morph
[
face
.
c
]
);
}
}
this
.
verticesNeedUpdate
=
geometry
.
verticesNeedUpdate
;
...
...
@@ -145,14 +206,8 @@ THREE.DirectGeometry.prototype = {
return
this
;
/*
if ( geometry.morphTargets ) this.morphTargets = geometry.morphTargets.slice( 0 );
if ( geometry.morphColors ) this.morphColors = geometry.morphColors.slice( 0 );
if ( geometry.morphNormals ) this.morphNormals = geometry.morphNormals.slice( 0 );
if ( geometry.skinIndices ) this.skinIndices = geometry.skinIndices.slice( 0 );
if ( geometry.skinWeights ) this.skinWeights = geometry.skinWeights.slice( 0 );
return this;
*/
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录