簡體   English   中英

A框架:幾何緩存/從GLTF注冊新的幾何

[英]A-Frame: Geometry Caching / Registering new Geometry from GLTF

我希望通過A-Frame使用幾何實例化獲得一些幫助。 我試圖弄清楚我的Web應用程序的瓶頸,在實現了對場景中創建的物理對象的池化之后,看到每個新對象的繪制調用數量都在增加-我以為是通過利用資產管理系統在A-Frame中,我的模型被自動緩存,但是我認為我弄錯了。

我想知道,如果我使用AFRAME.registerGeometry注冊模型的AFRAME.registerGeometry ,是否可以利用幾何圖形實例化? 我看到使用A-Frame幾何圖元從對象池中創建並不會增加每個實體的場景幾何數。 我拍攝了一個加載GLTF並從網格中注冊幾何形狀的鏡頭,但是我從一個我不理解的節點收到了一個錯誤:

<script>
AFRAME.registerGeometry('ramshorn', {
  schema: {
    depth: {default: 1, min: 0},
    height: {default: 1, min: 0},
    width: {default: 1, min: 0},
  },

  init: function(data) {
    var model = null;
    var geometry = null;

    var manager = new THREE.LoadingManager();
    manager.onLoad = function () {
      console.log(geometry);
      this.geometry = geometry;
      console.log(this.geometry);
    }
    var gltfLoader = new THREE.GLTFLoader(manager);
    gltfLoader.setCrossOrigin('anonymous');
    const src = "./assets/ramsHorn/Ram's Horn 2.gltf";
    gltfLoader.load(src, function ( gltf ) {
      console.log("Gltf: " + gltf);
      model = gltf.scene;
      console.log("Model: " + model)
      model.children.forEach((child) => {
        console.log(child);
      });
      gltf.scene.traverse(function (o) {
        if (o.isMesh) {
          geometry = o.geometry;
            //console.log(geometry);
            //tried assigning "this.geometry" here
          }
        });

      }, undefined, function ( error ) {
        console.error(error);
      });
     //tried assigning "this.geometry" here
  }
});
</script>

錯誤:

core:a-node:error Failure loading node:   TypeError: "t is undefined"
aframe-master.min.js:19:658

任何幫助,將不勝感激! 謝謝

aframe-master.min.js中19:658處的代碼試圖運行帶有變量t但尚未聲明。

通過使用aframe-master.js ,可能會得到更有意義的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM