Is there scenarios where this is actually good practice? Or does it slow down performance?
//Vertex format is: //X, Y, U, V var myXYs:Vector.<Number> = new <Number>[ -1, -1, 1, -1, 1, 1, -1, 1 ]; var myUVs:Vector.<Number> = new <Number>[ 0, 0, 1, 0, 1, 1, 0, 1 ] //Create actual VertexBuffers.... // ...yaddiyaddiyadda... //Set context3d's vertex-attributes: //Assign 'va0': context3D.setVertexBufferAt(0, bufferXY, 0, Context3DVertexBufferFormat.FLOAT_2); //Assign 'va1': context3D.setVertexBufferAt(1, bufferUV, 0, Context3DVertexBufferFormat.FLOAT_2);
Would the GPU have to constantly internally 'swap' between bufferXY and bufferUV to process the vertex-data? Or does it handle it just as good as a single vertex-buffer?
NOTE: My goal is to figure out a way to minimize uploading data from CPU to GPU for a large number of objects (more than the 128 limit with vertex-constants in Stage3D) by manipulating a list of vertices only responsible for the position of objects rather than the entire geometry + color and/or UV coordinates.