提交 d5f3b249 编写于 作者: M Mr.doob

BufferGeometry: Moved morph/skinned code to fromDirectGeometry()

上级 309dcad1
......@@ -174,40 +174,6 @@ THREE.BufferGeometry.prototype = {
this.fromGeometry( geometry );
var directgeometry = geometry.__directGeometry;
// morphs
if ( object.morphTargetInfluences !== undefined ) {
var morphTargets = directgeometry.morphTargets;
for ( var i = 0, l = morphTargets.length; i < l; i ++ ) {
var morphTarget = morphTargets[ i ];
var attribute = new THREE.Float32Attribute( morphTarget.length * 3, 3 );
this.morphAttributes.push( attribute.copyVector3sArray( morphTarget ) );
}
// TODO normals, colors
}
// skinning
if ( object instanceof THREE.SkinnedMesh ) {
var skinIndices = new THREE.Float32Attribute( directgeometry.skinIndices.length * 4, 4 );
var skinWeights = new THREE.Float32Attribute( directgeometry.skinWeights.length * 4, 4 );
this.addAttribute( 'skinIndex', skinIndices.copyVector4sArray( directgeometry.skinIndices ) );
this.addAttribute( 'skinWeight', skinWeights.copyVector4sArray( directgeometry.skinWeights ) );
}
}
}
......@@ -332,6 +298,44 @@ THREE.BufferGeometry.prototype = {
}
// morphs
if ( geometry.morphTargets.length > 0 ) {
var morphTargets = geometry.morphTargets;
for ( var i = 0, l = morphTargets.length; i < l; i ++ ) {
var morphTarget = morphTargets[ i ];
var attribute = new THREE.Float32Attribute( morphTarget.length * 3, 3 );
this.morphAttributes.push( attribute.copyVector3sArray( morphTarget ) );
}
// TODO normals, colors
}
// skinning
if ( geometry.skinIndices.length > 0 ) {
var skinIndices = new THREE.Float32Attribute( geometry.skinIndices.length * 4, 4 );
this.addAttribute( 'skinIndex', skinIndices.copyVector4sArray( geometry.skinIndices ) );
}
if ( geometry.skinWeights.length > 0 ) {
var skinWeights = new THREE.Float32Attribute( geometry.skinWeights.length * 4, 4 );
this.addAttribute( 'skinWeight', skinWeights.copyVector4sArray( geometry.skinWeights ) );
}
//
if ( geometry.boundingSphere !== null ) {
this.boundingSphere = geometry.boundingSphere.clone();
......
......@@ -191,12 +191,12 @@ THREE.DirectGeometry.prototype = {
this.morphTargets[ j ].push( morphTarget[ face.a ], morphTarget[ face.b ], morphTarget[ face.c ] );
}
/*
for ( var j = 0; j < morphNormalsLength; j ++ ) {
var morphNormal = morphNormals[ j ].normals;
var morphNormal = morphNormals[ j ].vertexNormals[ i ];
this.morphNormals[ j ].push( morphNormal[ face.a ], morphNormal[ face.b ], morphNormal[ face.c ] );
this.morphNormals[ j ].push( morphNormal.a, morphNormal.b, morphNormal.c );
}
......@@ -207,6 +207,7 @@ THREE.DirectGeometry.prototype = {
this.morphColors[ j ].push( morphColor[ face.a ], morphColor[ face.b ], morphColor[ face.c ] );
}
*/
// skins
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册