我使用 Away3D 4.1(2500 个立方体)创建了一个简单的测试,但性能比我预期的要低很多 - 只有 10 FPS。
我假设我犯了一个菜鸟错误(作为菜鸟和所有)所以这里是相关的代码片段:
灯光:
var light1:DirectionalLight = new DirectionalLight();
light1.position = new Vector3D(400, 300, -200);
light1.lookAt(new Vector3D());
light1.color = 0xFFFFFF;
light1.ambient = 0.25;
lightPicker = new StaticLightPicker([light1]);
创建立方体:
var material:ColorMaterial = new ColorMaterial(0x999999);
material.lightPicker = lightPicker;
material.specular = 0;
var mesh:Mesh = new Mesh(new CubeGeometry(50, 50, 50), material);
for (var i:uint = 0; i < 50; i++)
{
for (var j:uint = 0; j < 50; j++)
{
var cube:Mesh = Mesh(mesh.clone());
cube.x = 100*(i-25);
cube.y = 25;
cube.z = 100*(j-25);
scene.addChild(cube);
}
}
还有相机:
camera = new Camera3D();
camera.position = new Vector3D(0, 1000, -5000);
camera.lookAt(new Vector3D(0, 0, 0));
camera.lens.far = 10000;
Scout 中的 Stage3D 输出显示每个 drawTriangles 调用之间有很多调用,而我的基本理解告诉我 drawTriangle 调用应该是“批处理”的。
我知道其他一些框架有批处理方法,但我找不到任何与 Away3D 相关的东西。
提前感谢您的帮助。