GeometryInstance
Geometry instancing allows one Geometry object to be positions in several different locations and colored uniquely. For example, one BoxGeometry can be instanced several times, each with a different modelMatrix
to change its position, rotation, and scale.
// Create geometry for a box, and two instances that refer to it.
// One instance positions the box on the bottom and colored aqua.
// The other instance positions the box on the top and color white.
const geometry = BoxGeometry.fromDimensions({
vertexFormat : VertexFormat.POSITION_AND_NORMAL,
dimensions : new Cartesian3(1000000.0, 1000000.0, 500000.0)
});
const instanceBottom = new GeometryInstance({
geometry : geometry,
modelMatrix : Matrix4.multiplyByTranslation(Transforms.eastNorthUpToFixedFrame(
Cartesian3.fromDegrees(-75.59777, 40.03883)), new Cartesian3(0.0, 0.0, 1000000.0), new Matrix4()),
attributes : {
color : ColorGeometryInstanceAttribute.fromColor(Color.AQUA)
},
id : 'bottom'
});
const instanceTop = new GeometryInstance({
geometry : geometry,
modelMatrix : Matrix4.multiplyByTranslation(Transforms.eastNorthUpToFixedFrame(
Cartesian3.fromDegrees(-75.59777, 40.03883)), new Cartesian3(0.0, 0.0, 3000000.0), new Matrix4()),
attributes : {
color : ColorGeometryInstanceAttribute.fromColor(Color.AQUA)
},
id : 'top'
});
See also
Types
Properties
Per-instance attributes like ColorGeometryInstanceAttribute or ShowGeometryInstanceAttribute. Geometry attributes varying per vertex; these attributes are constant for the entire instance.
The 4x4 transformation matrix that transforms the geometry from model to world coordinates. When this is the identity matrix, the geometry is drawn in world coordinates, i.e., Earth's WGS84 coordinates. Local reference frames can be used by providing a different transformation matrix, like that returned by Transforms.eastNorthUpToFixedFrame.