new PerInstanceColorAppearance
An appearance for GeometryInstance instances with color attributes. This allows several geometry instances, each with a different color, to be drawn with the same Primitive as shown in the second example below.
Parameters:
| Name | Type | Argument | Default | Description | 
|---|---|---|---|---|
| options.flat | Boolean | <optional> | false | When true, flat shading is used in the fragment shader, which means lighting is not taking into account. | 
| options.faceForward | Boolean | <optional> | !options.closed | When true, the fragment shader flips the surface normal as needed to ensure that the normal faces the viewer to avoid dark spots.  This is useful when both sides of a geometry should be shaded like WallGeometry. | 
| options.translucent | Boolean | <optional> | true | When true, the geometry is expected to appear translucent so PerInstanceColorAppearance#renderState has alpha blending enabled. | 
| options.closed | Boolean | <optional> | false | When true, the geometry is expected to be closed so PerInstanceColorAppearance#renderState has backface culling enabled. | 
| options.vertexShaderSource | String | <optional> | undefined | Optional GLSL vertex shader source to override the default vertex shader. | 
| options.fragmentShaderSource | String | <optional> | undefined | Optional GLSL fragment shader source to override the default fragment shader. | 
| options.renderState | RenderState | <optional> | undefined | Optional render state to override the default render state. | 
Example
// A solid white line segment
var primitive = new Cesium.Primitive({
  geometryInstances : new Cesium.GeometryInstance({
    geometry : new Cesium.SimplePolylineGeometry({
      positions : ellipsoid.cartographicArrayToCartesianArray([
        Cesium.Cartographic.fromDegrees(0.0, 0.0),
        Cesium.Cartographic.fromDegrees(5.0, 0.0)
      ])
    }),
    attributes : {
      color : Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1.0, 1.0, 1.0, 1.0))
    }
  }),
  appearance : new Cesium.PerInstanceColorAppearance({
    flat : true,
    translucent : false
  })
}));
// Two rectangles in a primitive, each with a different color
var instance = new Cesium.GeometryInstance({
  geometry : new Cesium.RectangleGeometry({
    rectangle : Cesium.Rectangle.fromDegrees(0.0, 20.0, 10.0, 30.0)
  }),
  color : new Cesium.Color(1.0, 0.0, 0.0, 0.5)
});
var anotherInstance = new Cesium.GeometryInstance({
  geometry : new Cesium.RectangleGeometry({
    rectangle : Cesium.Rectangle.fromDegrees(0.0, 40.0, 10.0, 50.0)
  }),
  color : new Cesium.Color(0.0, 0.0, 1.0, 0.5)
});
var rectanglePrimitive = new Cesium.Primitive({
  geometryInstances : [instance, anotherInstance],
  appearance : new Cesium.PerInstanceColorAppearance()
});
    
	
	
Source:
Members
- 
    <readonly> closed
- 
    
    Whentrue, the geometry is expected to be closed so PerInstanceColorAppearance#renderState has backface culling enabled. If the viewer enters the geometry, it will not be visible.- Default Value:
- false
 
 
- 
    <readonly> faceForward
- 
    
    Whentrue, the fragment shader flips the surface normal as needed to ensure that the normal faces the viewer to avoid dark spots. This is useful when both sides of a geometry should be shaded like WallGeometry.- Default Value:
- false
 
 
- 
    <readonly> flat
- 
    
    Whentrue, flat shading is used in the fragment shader, which means lighting is not taking into account.- Default Value:
- false
 
 
- 
    <readonly> fragmentShaderSource :String
- 
    
    The GLSL source code for the fragment shader. The full fragment shader source is built procedurally taking into account PerInstanceColorAppearance#flat, and PerInstanceColorAppearance#faceForward. Use PerInstanceColorAppearance#getFragmentShaderSource to get the full source.
- 
    getFragmentShaderSource
- 
    
    Procedurally creates the full GLSL fragment shader source. For PerInstanceColorAppearance, this is derived from PerInstanceColorAppearance#fragmentShaderSource, PerInstanceColorAppearance#flat, and PerInstanceColorAppearance#faceForward.
- 
    getRenderState
- 
    
    Creates a render state. This is not the final RenderState instance; instead, it can contain a subset of render state properties identical torenderStatepassed to Context#createRenderState.
- 
    isTranslucent
- 
    
    Determines if the geometry is translucent based on PerInstanceColorAppearance#translucent.
- 
    material :Material
- 
    
    This property is part of the Appearance interface, but is not used by PerInstanceColorAppearance since a fully custom fragment shader is used.- Default Value:
- undefined
 
 
- 
    <readonly> renderState :Object
- 
    
    The render state. This is not the final RenderState instance; instead, it can contain a subset of render state properties identical torenderStatepassed to Context#createRenderState.The render state can be explicitly defined when constructing a PerInstanceColorAppearance instance, or it is set implicitly via PerInstanceColorAppearance#translucent and PerInstanceColorAppearance#closed. 
- 
    <readonly> translucent
- 
    
    Whentrue, the geometry is expected to appear translucent so PerInstanceColorAppearance#renderState has alpha blending enabled.- Default Value:
- true
 
 
- 
    <readonly> vertexFormat :VertexFormat
- 
    
    The VertexFormat that this appearance instance is compatible with. A geometry can have more vertex attributes and still be compatible - at a potential performance cost - but it can't have less.
- 
    <readonly> vertexShaderSource :String
- 
    
    The GLSL source code for the vertex shader.
- 
    <static, constant> FLAT_VERTEX_FORMAT :VertexFormat
- 
    
    The VertexFormat that all PerInstanceColorAppearance instances are compatible with when PerInstanceColorAppearance#flat isfalse. This requires only apositionattribute.
- 
    <static, constant> VERTEX_FORMAT :VertexFormat
- 
    
    The VertexFormat that all PerInstanceColorAppearance instances are compatible with. This requires onlypositionandstattributes.
