Fixed bug related to morphColors in JSONLoader. Changed reading of custom attributes from geometry group to material to let material instead of geometry rule of the source of data.

This commit is contained in:
Mikael Emtinger
2011-04-18 22:36:23 +02:00
parent aa9193e43c
commit 40eae8ae10
2 changed files with 22 additions and 2 deletions
+1 -1
View File
@@ -367,7 +367,7 @@ THREE.JSONLoader.prototype.createModel = function ( json, callback, texture_path
for ( c = 0, cl = srcColors.length; c < cl; c += 3 ) {
color = new THREE.Color( 0xffaa00 );
color.setRGB( srcColors[ v ], srcColors[ v + 1 ], srcColors[ v + 2 ] );
color.setRGB( srcColors[ c ], srcColors[ c + 1 ], srcColors[ c + 2 ] );
dstColors.push( color );
}
+21 -1
View File
@@ -665,6 +665,7 @@ THREE.WebGLRenderer = function ( parameters ) {
attribute.needsUpdate = true;
attribute.array = new Float32Array( nvertices * size );
attribute.buffer = _gl.createBuffer();
attribute.buffer.belongsToAttribute = a;
}
@@ -2484,7 +2485,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// custom attributes
if ( geometryGroup.__webglCustomAttributes ) {
/* if ( geometryGroup.__webglCustomAttributes ) {
for( a in geometryGroup.__webglCustomAttributes ) {
@@ -2499,9 +2500,28 @@ THREE.WebGLRenderer = function ( parameters ) {
}
}*/
if ( material.attributes ) {
for( a in material.attributes ) {
if( attributes[ a ] >= 0 ) {
attribute = material.attributes[ a ];
_gl.bindBuffer( _gl.ARRAY_BUFFER, attribute.buffer );
_gl.vertexAttribPointer( attributes[ a ], attribute.size, _gl.FLOAT, false, 0, 0 );
}
}
}
// colors
if ( attributes.color >= 0 ) {