类: LOD

Cesium. LOD

new LOD(options)

Parameters:
Name Type Description
options Object | geometry
Properties
Name Type Attributes Default Description
show Boolean <optional>
true
position Cesium.Cartesian3 <optional>
rotation Cesium.Rotation <optional>
scale Cesium.Cartesian3 <optional>
Properties:
Name Type Description
show Boolean
position Cesium.Cartesian3
rotation Cesium.Rotation
scale Cesium.Cartesian3
needUpdate Boolean
Source:
Example
MeshVisualizer = Cesium.MeshVisualizer;
        Mesh = Cesium.Mesh;
        MeshMaterial = Cesium.MeshMaterial; 
        LOD = Cesium.LOD;

        var center = Cesium.Cartesian3.fromDegrees(homePosition[0], homePosition[1], 50000);
        var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(center);

        var meshVisualizer = new MeshVisualizer({
            modelMatrix: modelMatrix,
            up: { z: 1 }
        });
        viewer.scene.primitives.add(meshVisualizer);


        var material = new MeshMaterial({
            defaultColor: "rgba(200,0,0,1.0)",
            wireframe: true,
            side: MeshMaterial.Sides.FRONT
        });
        var radius = 20000;
        var sphereL0 = Cesium.SphereGeometry.createGeometry(new Cesium.SphereGeometry({
            radius: radius,
            vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
            stackPartitions:4,
            slicePartitions: 4
        }));
        var sphereL1 = Cesium.SphereGeometry.createGeometry(new Cesium.SphereGeometry({
            radius: radius,
            vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
            stackPartitions: 8,
            slicePartitions: 8
        }));
        var sphereL2 = Cesium.SphereGeometry.createGeometry(new Cesium.SphereGeometry({
            radius: radius,
            vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
            stackPartitions: 16,
            slicePartitions: 16
        }));
        var sphereL3 = Cesium.SphereGeometry.createGeometry(new Cesium.SphereGeometry({
            radius: radius,
            vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
            stackPartitions: 32,
            slicePartitions: 32
        }));
        var sphereL4 = Cesium.SphereGeometry.createGeometry(new Cesium.SphereGeometry({
            radius: radius,
            vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
            stackPartitions: 64,
            slicePartitions: 64
        }));

        var geometries = [
					[sphereL4, 5],
					[sphereL3, 200],
					[sphereL2, 300],
					[sphereL1, 500],
					[sphereL0, 2000]
        ];

        var maxAvailableDistance = 10000000;

        var i, j, mesh, lod;
        var scale = new Cesium.Cartesian3(1, 1, 1);
        for (j = 0; j < 1000; j++) {

            lod = new LOD();

            for (i = 0; i < geometries.length; i++) {

                mesh = new Mesh(geometries[i][0], material);
                mesh.scale = scale;

                lod.addLevel(mesh, geometries[i][1] * 1000);
            }
            lod.maxAvailableDistance = maxAvailableDistance;
            lod.position.x = 1500000 * (0.5 - Math.random());
            lod.position.y = 1750000 * (0.5 - Math.random());
            lod.position.z = 130000 * (0.5 - Math.random());

            meshVisualizer.add(lod);

        }

Methods

addLevel(mesh, distance)

Parameters:
Name Type Description
mesh Cesium.Mesh
distance Number
Source:

setPosition(x, y, z)

Parameters:
Name Type Description
x Number
y Number
z Number
Source:

setScale(x, y, z)

Parameters:
Name Type Description
x Number
y Number
z Number
Source: