我正在创建一个涉及渲染多达数千个多维数据集的ARCore Android应用程序,当然每个对象都使用一个Node和ModelRenderable对象。可以理解的是,如果不遇到内存问题,我将无法做到这一点,因此我正在寻找优化方法。到目前为止,我的想法是:
我知道这个问题有点模糊,但是如果有人有想法,我很想听听他们的想法。
我尝试删除所有没有空格的多维数据集,因为这些多维数据集将不可见。从长远来看,这将是不够的。
由于这个问题更多地是在寻找编写代码的想法,因此我没有太多的代码可以证明与之相关,但是基本上我将拥有大量的代码:
// Where position is a Vector3 and material is a Material object.
ModelRenderable cube = ShapeFactory.makeCube(new Vector3(CUBE_WIDTH, CUBE_WIDTH, CUBE_WIDTH), position, material);
Node node = new Node();
node.setRenderable(cube);
我不是每次都在创建新材料,而是在启动时生成它们。
编辑-更多信息-
我还考虑过将相同类型的多维数据集分组为较大的多维数据集。在一个示例中,屏幕上可能呈现16x16x16。每个多维数据集都是具有其自身类型的单个单元。因此,就我的分组想法而言,我将所有具有相同类型的多维数据集替换为一个较大的多维数据集或长方体。