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

At Loader.js, as far as I can see we don't need all that `stride` stuff. ...

At Loader.js, as far as I can see we don't need all that `stride` stuff.  Removed/Simplified from createModel() by now. That saves *a lot* of multiplications at init of the geometry.
上级 55baeb7e
此差异已折叠。
此差异已折叠。
......@@ -604,11 +604,11 @@ THREE.Loader.prototype = {
var i, l, x, y, z;
for( i = 0, l = data.vertices.length/3; i < l; i++ ) {
for( i = 0, l = data.vertices.length; i < l; i += 3 ) {
x = data.vertices[ i*3 ];
y = data.vertices[ i*3 + 1 ];
z = data.vertices[ i*3 + 2 ];
x = data.vertices[ i ];
y = data.vertices[ i + 1 ];
z = data.vertices[ i + 2 ];
THREE.Loader.prototype.v( scope, x, y, z );
......@@ -618,114 +618,114 @@ THREE.Loader.prototype = {
function init_faces() {
function add_tri( src, i, stride ) {
function add_tri( src, i ) {
var a, b, c, m;
a = src[ i*stride ];
b = src[ i*stride + 1 ];
c = src[ i*stride + 2 ];
a = src[ i ];
b = src[ i + 1 ];
c = src[ i + 2 ];
m = src[ i*stride + 3 ];
m = src[ i + 3 ];
THREE.Loader.prototype.f3( scope, a, b, c, m );
}
function add_tri_n( src, i, stride ) {
function add_tri_n( src, i ) {
var a, b, c, m, na, nb, nc;
a = src[ i*stride ];
b = src[ i*stride + 1 ];
c = src[ i*stride + 2 ];
a = src[ i ];
b = src[ i + 1 ];
c = src[ i + 2 ];
m = src[ i*stride + 3 ];
m = src[ i + 3 ];
na = src[ i*stride + 4 ];
nb = src[ i*stride + 5 ];
nc = src[ i*stride + 6 ];
na = src[ i + 4 ];
nb = src[ i + 5 ];
nc = src[ i + 6 ];
THREE.Loader.prototype.f3n( scope, data.normals, a, b, c, m, na, nb, nc );
}
function add_quad( src, i, stride ) {
function add_quad( src, i ) {
var a, b, c, d, m;
a = src[ i*stride ];
b = src[ i*stride + 1 ];
c = src[ i*stride + 2 ];
d = src[ i*stride + 3 ];
a = src[ i ];
b = src[ i + 1 ];
c = src[ i + 2 ];
d = src[ i + 3 ];
m = src[ i*stride + 4 ];
m = src[ i + 4 ];
THREE.Loader.prototype.f4( scope, a, b, c, d, m );
}
function add_quad_n( src, i, stride ) {
function add_quad_n( src, i ) {
var a, b, c, d, m, na, nb, nc, nd;
a = src[ i*stride ];
b = src[ i*stride + 1 ];
c = src[ i*stride + 2 ];
d = src[ i*stride + 3 ];
a = src[ i ];
b = src[ i + 1 ];
c = src[ i + 2 ];
d = src[ i + 3 ];
m = src[ i*stride + 4 ];
m = src[ i + 4 ];
na = src[ i*stride + 5 ];
nb = src[ i*stride + 6 ];
nc = src[ i*stride + 7 ];
nd = src[ i*stride + 8 ];
na = src[ i + 5 ];
nb = src[ i + 6 ];
nc = src[ i + 7 ];
nd = src[ i + 8 ];
THREE.Loader.prototype.f4n( scope, data.normals, a, b, c, d, m, na, nb, nc, nd );
}
function add_uv3( src, i, stride, offset ) {
function add_uv3( src, i ) {
var uva, uvb, uvc, u1, u2, u3, v1, v2, v3;
uva = src[ i*stride + offset ];
uvb = src[ i*stride + offset + 1 ];
uvc = src[ i*stride + offset + 2 ];
uva = src[ i ];
uvb = src[ i + 1 ];
uvc = src[ i + 2 ];
u1 = data.uvs[ uva*2 ];
v1 = data.uvs[ uva*2 + 1 ];
u1 = data.uvs[ uva * 2 ];
v1 = data.uvs[ uva * 2 + 1 ];
u2 = data.uvs[ uvb*2 ];
v2 = data.uvs[ uvb*2 + 1 ];
u2 = data.uvs[ uvb * 2 ];
v2 = data.uvs[ uvb * 2 + 1 ];
u3 = data.uvs[ uvc*2 ];
v3 = data.uvs[ uvc*2 + 1 ];
u3 = data.uvs[ uvc * 2 ];
v3 = data.uvs[ uvc * 2 + 1 ];
THREE.Loader.prototype.uv( scope, u1, v1, u2, v2, u3, v3 );
}
function add_uv4( src, i, stride, offset ) {
function add_uv4( src, i ) {
var uva, uvb, uvc, uvd, u1, u2, u3, u4, v1, v2, v3, v4;
uva = src[ i*stride + offset ];
uvb = src[ i*stride + offset + 1 ];
uvc = src[ i*stride + offset + 2 ];
uvd = src[ i*stride + offset + 3 ];
uva = src[ i ];
uvb = src[ i + 1 ];
uvc = src[ i + 2 ];
uvd = src[ i + 3 ];
u1 = data.uvs[ uva*2 ];
v1 = data.uvs[ uva*2 + 1 ];
u1 = data.uvs[ uva * 2 ];
v1 = data.uvs[ uva * 2 + 1 ];
u2 = data.uvs[ uvb*2 ];
v2 = data.uvs[ uvb*2 + 1 ];
u2 = data.uvs[ uvb * 2 ];
v2 = data.uvs[ uvb * 2 + 1 ];
u3 = data.uvs[ uvc*2 ];
v3 = data.uvs[ uvc*2 + 1 ];
u3 = data.uvs[ uvc * 2 ];
v3 = data.uvs[ uvc * 2 + 1 ];
u4 = data.uvs[ uvd*2 ];
v4 = data.uvs[ uvd*2 + 1 ];
u4 = data.uvs[ uvd * 2 ];
v4 = data.uvs[ uvd * 2 + 1 ];
THREE.Loader.prototype.uv( scope, u1, v1, u2, v2, u3, v3, u4, v4 );
......@@ -733,56 +733,56 @@ THREE.Loader.prototype = {
var i, l;
for( i = 0, l = data.triangles.length/4; i < l; i++ ) {
for ( i = 0, l = data.triangles.length; i < l; i += 4 ) {
add_tri( data.triangles, i, 4 );
add_tri( data.triangles, i );
}
for( i = 0, l = data.triangles_uv.length/7; i < l; i++ ) {
for ( i = 0, l = data.triangles_uv.length; i < l; i+= 7 ) {
add_tri( data.triangles_uv, i, 7 );
add_uv3( data.triangles_uv, i, 7, 4 );
add_tri( data.triangles_uv, i );
add_uv3( data.triangles_uv, i + 4 );
}
for( i = 0, l = data.triangles_n.length/7; i < l; i++ ) {
for ( i = 0, l = data.triangles_n.length; i < l; i += 7 ) {
add_tri_n( data.triangles_n, i, 7 );
add_tri_n( data.triangles_n, i );
}
for( i = 0, l = data.triangles_n_uv.length/10; i < l; i++ ) {
for ( i = 0, l = data.triangles_n_uv.length; i < l; i += 10 ) {
add_tri_n( data.triangles_n_uv, i, 10 );
add_uv3( data.triangles_n_uv, i, 10, 7 );
add_tri_n( data.triangles_n_uv, i );
add_uv3( data.triangles_n_uv, i + 7 );
}
for( i = 0, l = data.quads.length/5; i < l; i++ ) {
for ( i = 0, l = data.quads.length; i < l; i += 5 ) {
add_quad( data.quads, i, 5 );
add_quad( data.quads, i );
}
for( i = 0, l = data.quads_uv.length/9; i < l; i++ ) {
for ( i = 0, l = data.quads_uv.length; i < l; i += 9 ) {
add_quad( data.quads_uv, i, 9 );
add_uv4( data.quads_uv, i, 9, 5 );
add_quad( data.quads_uv, i );
add_uv4( data.quads_uv, i + 5 );
}
for( i = 0, l = data.quads_n.length/9; i < l; i++ ) {
for ( i = 0, l = data.quads_n.length; i < l; i += 9 ) {
add_quad_n( data.quads_n, i, 9 );
add_quad_n( data.quads_n, i );
}
for( i = 0, l = data.quads_n_uv.length/13; i < l; i++ ) {
for ( i = 0, l = data.quads_n_uv.length; i < l; i += 13 ) {
add_quad_n( data.quads_n_uv, i, 13 );
add_uv4( data.quads_n_uv, i, 13, 9 );
add_quad_n( data.quads_n_uv, i );
add_uv4( data.quads_n_uv, i + 9 );
}
......@@ -883,7 +883,7 @@ THREE.Loader.prototype = {
scope.materials = [];
for( var i = 0; i < materials.length; ++i ) {
for ( var i = 0; i < materials.length; ++i ) {
scope.materials[i] = [ THREE.Loader.prototype.createMaterial( materials[i], urlbase ) ];
......@@ -891,7 +891,7 @@ THREE.Loader.prototype = {
},
createMaterial: function( m, urlbase ) {
createMaterial: function ( m, urlbase ) {
function is_pow2( n ) {
......@@ -909,7 +909,7 @@ THREE.Loader.prototype = {
var material, texture, image, color;
if( m.map_diffuse && urlbase ) {
if ( m.map_diffuse && urlbase ) {
texture = document.createElement( 'canvas' );
material = new THREE.MeshBitmapMaterial( texture );
......@@ -938,12 +938,12 @@ THREE.Loader.prototype = {
image.src = urlbase + "/" + m.map_diffuse;
} else if( m.col_diffuse ) {
} else if ( m.col_diffuse ) {
color = (m.col_diffuse[0]*255 << 16) + (m.col_diffuse[1]*255 << 8) + m.col_diffuse[2]*255;
material = new THREE.MeshColorFillMaterial( color, m.transparency );
} else if( m.a_dbg_color ) {
} else if ( m.a_dbg_color ) {
material = new THREE.MeshColorFillMaterial( m.a_dbg_color );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册