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 に関連するものを見つけることができませんでした。
助けてくれてありがとう。