首页 > 其他分享 >ModelInstanceCollection 加载大量模型

ModelInstanceCollection 加载大量模型

时间:2023-03-09 09:57:43浏览次数:37  
标签:Cesium gridSize modelMatrix 模型 instances var ModelInstanceCollection Math 加载

function getInstances() {

    var instances = [];

    var gridSize = Math.sqrt(10000);

    var cLon = data.longitude;

    var cLat = data.latitude;

    var spacing = 0.01;

    var height = 0.0;

    for (var y = 0; y < gridSize; ++y) {

        for (var x = 0; x < gridSize; ++x) {

            var longitude = cLon + spacing * (x - gridSize / 2);

            var latitude = cLat + spacing * (y - gridSize / 2);

            var position = Cesium.Cartesian3.fromDegrees(

                longitude,

                latitude,

                height

            );

            var heading = Math.random();

            var pitch = Math.random();

            var roll = Math.random();

            var scale = (Math.random() + 1.0) / 2.0 * 100;

            var modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(

                position,

                new Cesium.HeadingPitchRoll(heading, pitch, roll)

            );

            Cesium.Matrix4.multiplyByUniformScale(

                modelMatrix,

                scale,

                modelMatrix

            );

            instances.push({

                modelMatrix: modelMatrix

            });

        }

    }

    return instances;

}

function createCollection() {

    var instances = getInstances();

    instanceCollection = viewer.scene.primitives.add(

        new Cesium.ModelInstanceCollection({

            url: "./data/model/tree/tree.gltf",

            instances: instances

        })

    );

}

标签:Cesium,gridSize,modelMatrix,模型,instances,var,ModelInstanceCollection,Math,加载
From: https://www.cnblogs.com/hustshu/p/17197199.html

相关文章