2012-08-14 26 views
0

我想写一个fft的3d版本。 (像这样:https://wiki.mozilla.org/File:Fft.png) 所以我创建了几个小节,并且在外部函数中,我的第一个问题是将lengthY设置为一个值。然后我打电话给bar.modified()强制重绘。修改某些立方体的长度y很慢

如果我现在使用的棒数超过50个,它会非常慢(在我的4核CPU上)。我想有更好的方法去做,对吧?

来源:

var elements = new Array(); 

create3d = function(len) { 
    var r = new X.renderer3D(); 

    r.init(); 

    if(a.length == 0){ 
    for (var y = 0; y < len; y++) { 
     var c = new X.cube(); 
     a.push(c); 
    } 
    } 

    for (var i = 0; i < len; i++) { 
     a[i].center = [i*2 , 0, 0]; 
     a[i].lengthX = 1; 
     a[i].lengthY = 20; 
     a[i].lengthZ = 1; 

     a[i].color = [i%2,0,0]; 

     r.add(a[i]); 
    } 
    r.render(); 
}; 

function setVal(index,val){ 
    var element = a[index]; 
    element.lengthY = val; 
    element.modified(); 
} 
+0

是您的功能数字或模拟?在这种情况下,最好也许是分解立方体总和中的每个值,然后当您更改值时,将一部分立方体设置为不可见?事实上,你在着色器中做的最多的就是它的速度。不透明度被计算到我认为的着色器中。 – Ricola3D 2012-08-14 07:38:39

回答

相关问题