A primitive represents geometry in the Scene
. The geometry can be from a single GeometryInstance
as shown in example 1 below, or from an array of instances, even if the geometry is from different geometry types, e.g., an RectangleGeometry
and an EllipsoidGeometry
as shown in Code Example 2.
A primitive combines geometry instances with an Appearance
that describes the full shading, including Material
and RenderState
. Roughly, the geometry instance defines the structure and placement, and the appearance defines the visual characteristics. Decoupling geometry and appearance allows us to mix and match most of them and add a new geometry or appearance independently of each other.
Combining multiple instances into one primitive is called batching, and significantly improves performance for static data. Instances can be individually picked; Scene#pick
returns their GeometryInstance#id
. Using per-instance appearances like PerInstanceColorAppearance
, each instance can also have a unique color.
Geometry
can either be created and batched on a web worker or the main thread. The first two examples show geometry that will be created on a web worker by using the descriptions of the geometry. The third example shows how to create the geometry on the main thread by explicitly calling the createGeometry
method.
网友评论