多个 collada 对象产生滞后

问题描述

我试图让多个 collada 对象同时在 WorldWind 中移动。为此,我使用线程来移动它们。

当我只有一个 collada 对象来移动应用程序时,效果很好。当我加载多个 collada 对象并将它们添加到图层时,它们开始滞后。我不知道是我使用线程的方式错误、collada 模型还是导致延迟的某些内存泄漏。

添加模型的方式是使用 ColladaRoot 解析对象,使用 ColladaController 和 Layer 创建可渲染层并将其添加到 WorldWind。

如果您有任何想法,请告诉我。

编辑:所以我这样做的方式是:

public void run()
        {
          Boolean p = false;
          this.start = true;
          Iterator<Map.Entry<String,ArrayList<Position>>> itr = satPath.entrySet().iterator();
          Map.Entry<String,ArrayList<Position>> entry = itr.next();
            while(start == true && entry.getValue().size() != 1){
              RenderableLayer layer = new RenderableLayer();
              for(String nm : satPath.keySet()) {
                try
                  {
                    Boolean a = appFrame.getWwd().getModel().getGlobe() instanceof FlatGlobe;
                    final ColladaRoot colladaRoot = ColladaRoot.createAndParse(this.colladaSource);
                    colladaRoot.setAltitudeMode(WorldWind.RELATIVE_TO_GROUND);
                    Vec4 scale = new Vec4(1000000,1000000,1000000);
                    colladaRoot.setModelScale(scale);
                    colladaRoot.setPosition(satPath.get(nm).get(0));
                    satPath.get(nm).remove(0);
                    System.out.println(satPath.get(nm).size());
                                   
                    final String satName = nm;
                                    
                    Layer x = appFrame.getWwd().getModel().getLayers().getLayerByName("Sat1" + nm);
                    if(x != null) {
                      appFrame.getWwd().getModel().getLayers().remove(x);
                    }
                    ColladaController colladaController = new ColladaController(colladaRoot);
                                    
                    layer.addRenderable(colladaController);
                    layer.setName("Sat1" + nm);
                    
                }

这是我做的一个方法,以防我需要运行多个线程来使运动更好。我有一个包含卫星名称的 HashMap 及其课程,创建 ColladaRoot,添加属性,然后删除一个卫星,并添加一个具有下一个位置的卫星。

方法是为 Runnable 类制作的,问题是有 1 个卫星它工作流畅,当我添加 2 个卫星时,无论是否在同一线程上,动画都会变得滞后。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)