Three.js 使用自定义网格和 Material 进行 GPU 实例化

标签 three.js

尝试按照 instances/gpu three.js example 实现 GPU 实例化.

但是,不知何故,在我的尝试中似乎没有加载任何内容:http://designs.playgami.com/webgl_loader_fbx3.html

(这里是非 GPU 实例化版本 - http://designs.playgami.com/webgl_loader_fbx2.1.html )

这是我尝试仅加载一次 fbx 模型,然后实例化的地方。我正在尝试使用 var object = new THREE.Mesh( geo ); 进行实例化,但不知何故这不起作用?

  function CreateCraneScape(texturearray,squareside,armyside){
                var total = texturearray.length;
                var halfside = Math.floor(squareside*0.5);

                loader.load( '/11272018-crane.fbx', function ( geo ) {
                    var k = 0;
                    // create cranes
                    for(var i=-halfside;i<=halfside;i++){
                        for(var j=-halfside;j<=halfside;j++){
                            var object = new THREE.Mesh( geo );
                            CraneApplyTexture(object,texturearray[k]); 
                            CranePosRot(object,i,j);
                            k++;
                        }   
                    }

                    // create army
                    
                    for(var i=-(halfside+armyside);i<=(halfside+armyside);i++){ 
                            for(var j=-(halfside+armyside);j<=(halfside+armyside);j++){ 
                                if(j<-halfside||j>halfside || (i<-halfside||i>halfside)){ 
                                    var object = new THREE.Mesh( geo );
                                    CraneApplyTexture(object,''); 
                                    CreatePosRot(object,i,j);
                                }
                            }   
                    }

                });
   }

最佳答案

显然 FBXLoader 不仅加载网格几何体,而且实际上加载整个 Three.js 游戏对象。因此,网格实例化需要引用第一个子项的几何形状。

geo = geo.children[0].geometry;

关于Three.js 使用自定义网格和 Material 进行 GPU 实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861208/

相关文章:

javascript - 如何避免标签在 JavaScript 中重叠?

three.js - Threejs 如何为圆柱体的顶面指定不同的颜色?

three.js - THREE.PlaneGeometry 没有被渲染

javascript - 如何在 Three.js 中将对象渲染为 'icons'?

javascript - 使用 Threejs 计算 Delta 四元数

Three.js 黑视频 CORS 问题?

three.js - 需要有关 THREE.js TextGeometry 的帮助

javascript - Three.js 平面几何动画

javascript - 在 Three.js 中动态添加和旋转几何体