|
@@ -506,8 +506,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
geometryGroup.__webglUVBuffer = _gl.createBuffer();
|
|
|
geometryGroup.__webglUV2Buffer = _gl.createBuffer();
|
|
|
|
|
|
- geometryGroup.__webglSkinVertexABuffer = _gl.createBuffer();
|
|
|
- geometryGroup.__webglSkinVertexBBuffer = _gl.createBuffer();
|
|
|
geometryGroup.__webglSkinIndicesBuffer = _gl.createBuffer();
|
|
|
geometryGroup.__webglSkinWeightsBuffer = _gl.createBuffer();
|
|
|
|
|
@@ -582,8 +580,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
_gl.deleteBuffer( geometryGroup.__webglUVBuffer );
|
|
|
_gl.deleteBuffer( geometryGroup.__webglUV2Buffer );
|
|
|
|
|
|
- _gl.deleteBuffer( geometryGroup.__webglSkinVertexABuffer );
|
|
|
- _gl.deleteBuffer( geometryGroup.__webglSkinVertexBBuffer );
|
|
|
_gl.deleteBuffer( geometryGroup.__webglSkinIndicesBuffer );
|
|
|
_gl.deleteBuffer( geometryGroup.__webglSkinWeightsBuffer );
|
|
|
|
|
@@ -772,8 +768,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
if ( object.geometry.skinWeights.length && object.geometry.skinIndices.length ) {
|
|
|
|
|
|
- geometryGroup.__skinVertexAArray = new Float32Array( nvertices * 4 );
|
|
|
- geometryGroup.__skinVertexBArray = new Float32Array( nvertices * 4 );
|
|
|
geometryGroup.__skinIndexArray = new Float32Array( nvertices * 4 );
|
|
|
geometryGroup.__skinWeightArray = new Float32Array( nvertices * 4 );
|
|
|
|
|
@@ -1555,8 +1549,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
tangentArray = geometryGroup.__tangentArray,
|
|
|
colorArray = geometryGroup.__colorArray,
|
|
|
|
|
|
- skinVertexAArray = geometryGroup.__skinVertexAArray,
|
|
|
- skinVertexBArray = geometryGroup.__skinVertexBArray,
|
|
|
skinIndexArray = geometryGroup.__skinIndexArray,
|
|
|
skinWeightArray = geometryGroup.__skinWeightArray,
|
|
|
|
|
@@ -1589,8 +1581,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
obj_colors = geometry.colors,
|
|
|
|
|
|
- obj_skinVerticesA = geometry.skinVerticesA,
|
|
|
- obj_skinVerticesB = geometry.skinVerticesB,
|
|
|
obj_skinIndices = geometry.skinIndices,
|
|
|
obj_skinWeights = geometry.skinWeights,
|
|
|
|
|
@@ -1870,48 +1860,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
skinIndexArray[ offset_skin + 10 ] = si3.z;
|
|
|
skinIndexArray[ offset_skin + 11 ] = si3.w;
|
|
|
|
|
|
- // vertices A
|
|
|
-
|
|
|
- sa1 = obj_skinVerticesA[ face.a ];
|
|
|
- sa2 = obj_skinVerticesA[ face.b ];
|
|
|
- sa3 = obj_skinVerticesA[ face.c ];
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin ] = sa1.x;
|
|
|
- skinVertexAArray[ offset_skin + 1 ] = sa1.y;
|
|
|
- skinVertexAArray[ offset_skin + 2 ] = sa1.z;
|
|
|
- skinVertexAArray[ offset_skin + 3 ] = 1; // pad for faster vertex shader
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin + 4 ] = sa2.x;
|
|
|
- skinVertexAArray[ offset_skin + 5 ] = sa2.y;
|
|
|
- skinVertexAArray[ offset_skin + 6 ] = sa2.z;
|
|
|
- skinVertexAArray[ offset_skin + 7 ] = 1;
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin + 8 ] = sa3.x;
|
|
|
- skinVertexAArray[ offset_skin + 9 ] = sa3.y;
|
|
|
- skinVertexAArray[ offset_skin + 10 ] = sa3.z;
|
|
|
- skinVertexAArray[ offset_skin + 11 ] = 1;
|
|
|
-
|
|
|
- // vertices B
|
|
|
-
|
|
|
- sb1 = obj_skinVerticesB[ face.a ];
|
|
|
- sb2 = obj_skinVerticesB[ face.b ];
|
|
|
- sb3 = obj_skinVerticesB[ face.c ];
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin ] = sb1.x;
|
|
|
- skinVertexBArray[ offset_skin + 1 ] = sb1.y;
|
|
|
- skinVertexBArray[ offset_skin + 2 ] = sb1.z;
|
|
|
- skinVertexBArray[ offset_skin + 3 ] = 1; // pad for faster vertex shader
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin + 4 ] = sb2.x;
|
|
|
- skinVertexBArray[ offset_skin + 5 ] = sb2.y;
|
|
|
- skinVertexBArray[ offset_skin + 6 ] = sb2.z;
|
|
|
- skinVertexBArray[ offset_skin + 7 ] = 1;
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin + 8 ] = sb3.x;
|
|
|
- skinVertexBArray[ offset_skin + 9 ] = sb3.y;
|
|
|
- skinVertexBArray[ offset_skin + 10 ] = sb3.z;
|
|
|
- skinVertexBArray[ offset_skin + 11 ] = 1;
|
|
|
-
|
|
|
offset_skin += 12;
|
|
|
|
|
|
}
|
|
@@ -1974,72 +1922,12 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
skinIndexArray[ offset_skin + 14 ] = si4.z;
|
|
|
skinIndexArray[ offset_skin + 15 ] = si4.w;
|
|
|
|
|
|
- // vertices A
|
|
|
-
|
|
|
- sa1 = obj_skinVerticesA[ face.a ];
|
|
|
- sa2 = obj_skinVerticesA[ face.b ];
|
|
|
- sa3 = obj_skinVerticesA[ face.c ];
|
|
|
- sa4 = obj_skinVerticesA[ face.d ];
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin ] = sa1.x;
|
|
|
- skinVertexAArray[ offset_skin + 1 ] = sa1.y;
|
|
|
- skinVertexAArray[ offset_skin + 2 ] = sa1.z;
|
|
|
- skinVertexAArray[ offset_skin + 3 ] = 1; // pad for faster vertex shader
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin + 4 ] = sa2.x;
|
|
|
- skinVertexAArray[ offset_skin + 5 ] = sa2.y;
|
|
|
- skinVertexAArray[ offset_skin + 6 ] = sa2.z;
|
|
|
- skinVertexAArray[ offset_skin + 7 ] = 1;
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin + 8 ] = sa3.x;
|
|
|
- skinVertexAArray[ offset_skin + 9 ] = sa3.y;
|
|
|
- skinVertexAArray[ offset_skin + 10 ] = sa3.z;
|
|
|
- skinVertexAArray[ offset_skin + 11 ] = 1;
|
|
|
-
|
|
|
- skinVertexAArray[ offset_skin + 12 ] = sa4.x;
|
|
|
- skinVertexAArray[ offset_skin + 13 ] = sa4.y;
|
|
|
- skinVertexAArray[ offset_skin + 14 ] = sa4.z;
|
|
|
- skinVertexAArray[ offset_skin + 15 ] = 1;
|
|
|
-
|
|
|
- // vertices B
|
|
|
-
|
|
|
- sb1 = obj_skinVerticesB[ face.a ];
|
|
|
- sb2 = obj_skinVerticesB[ face.b ];
|
|
|
- sb3 = obj_skinVerticesB[ face.c ];
|
|
|
- sb4 = obj_skinVerticesB[ face.d ];
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin ] = sb1.x;
|
|
|
- skinVertexBArray[ offset_skin + 1 ] = sb1.y;
|
|
|
- skinVertexBArray[ offset_skin + 2 ] = sb1.z;
|
|
|
- skinVertexBArray[ offset_skin + 3 ] = 1; // pad for faster vertex shader
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin + 4 ] = sb2.x;
|
|
|
- skinVertexBArray[ offset_skin + 5 ] = sb2.y;
|
|
|
- skinVertexBArray[ offset_skin + 6 ] = sb2.z;
|
|
|
- skinVertexBArray[ offset_skin + 7 ] = 1;
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin + 8 ] = sb3.x;
|
|
|
- skinVertexBArray[ offset_skin + 9 ] = sb3.y;
|
|
|
- skinVertexBArray[ offset_skin + 10 ] = sb3.z;
|
|
|
- skinVertexBArray[ offset_skin + 11 ] = 1;
|
|
|
-
|
|
|
- skinVertexBArray[ offset_skin + 12 ] = sb4.x;
|
|
|
- skinVertexBArray[ offset_skin + 13 ] = sb4.y;
|
|
|
- skinVertexBArray[ offset_skin + 14 ] = sb4.z;
|
|
|
- skinVertexBArray[ offset_skin + 15 ] = 1;
|
|
|
-
|
|
|
offset_skin += 16;
|
|
|
|
|
|
}
|
|
|
|
|
|
if ( offset_skin > 0 ) {
|
|
|
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinVertexABuffer );
|
|
|
- _gl.bufferData( _gl.ARRAY_BUFFER, skinVertexAArray, hint );
|
|
|
-
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinVertexBBuffer );
|
|
|
- _gl.bufferData( _gl.ARRAY_BUFFER, skinVertexBArray, hint );
|
|
|
-
|
|
|
_gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinIndicesBuffer );
|
|
|
_gl.bufferData( _gl.ARRAY_BUFFER, skinIndexArray, hint );
|
|
|
|
|
@@ -3030,8 +2918,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
delete geometryGroup.__faceArray;
|
|
|
delete geometryGroup.__vertexArray;
|
|
|
delete geometryGroup.__lineArray;
|
|
|
- delete geometryGroup.__skinVertexAArray;
|
|
|
- delete geometryGroup.__skinVertexBArray;
|
|
|
delete geometryGroup.__skinIndexArray;
|
|
|
delete geometryGroup.__skinWeightArray;
|
|
|
|
|
@@ -3461,15 +3347,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
}
|
|
|
|
|
|
if ( material.skinning &&
|
|
|
- attributes.skinVertexA >= 0 && attributes.skinVertexB >= 0 &&
|
|
|
attributes.skinIndex >= 0 && attributes.skinWeight >= 0 ) {
|
|
|
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinVertexABuffer );
|
|
|
- _gl.vertexAttribPointer( attributes.skinVertexA, 4, _gl.FLOAT, false, 0, 0 );
|
|
|
-
|
|
|
- _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinVertexBBuffer );
|
|
|
- _gl.vertexAttribPointer( attributes.skinVertexB, 4, _gl.FLOAT, false, 0, 0 );
|
|
|
-
|
|
|
_gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinIndicesBuffer );
|
|
|
_gl.vertexAttribPointer( attributes.skinIndex, 4, _gl.FLOAT, false, 0, 0 );
|
|
|
|
|
@@ -4695,11 +4574,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
if ( attributes.tangent >= 0 ) _gl.enableVertexAttribArray( attributes.tangent );
|
|
|
|
|
|
if ( material.skinning &&
|
|
|
- attributes.skinVertexA >=0 && attributes.skinVertexB >= 0 &&
|
|
|
attributes.skinIndex >= 0 && attributes.skinWeight >= 0 ) {
|
|
|
|
|
|
- _gl.enableVertexAttribArray( attributes.skinVertexA );
|
|
|
- _gl.enableVertexAttribArray( attributes.skinVertexB );
|
|
|
_gl.enableVertexAttribArray( attributes.skinIndex );
|
|
|
_gl.enableVertexAttribArray( attributes.skinWeight );
|
|
|
|
|
@@ -5937,8 +5813,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
"#ifdef USE_SKINNING",
|
|
|
|
|
|
- "attribute vec4 skinVertexA;",
|
|
|
- "attribute vec4 skinVertexB;",
|
|
|
"attribute vec4 skinIndex;",
|
|
|
"attribute vec4 skinWeight;",
|
|
|
|
|
@@ -6051,7 +5925,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
identifiers = [
|
|
|
|
|
|
"position", "normal", "uv", "uv2", "tangent", "color",
|
|
|
- "skinVertexA", "skinVertexB", "skinIndex", "skinWeight"
|
|
|
+ "skinIndex", "skinWeight"
|
|
|
|
|
|
];
|
|
|
|