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> | 
            
            
            
                false | 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 Primitive({
  geometryInstances : new GeometryInstance({
    geometry : new SimplePolylineGeometry({
      positions : ellipsoid.cartographicArrayToCartesianArray([
        Cartographic.fromDegrees(0.0, 0.0),
        Cartographic.fromDegrees(5.0, 0.0)
      ])
    }),
    color : new Color(1.0, 1.0, 1.0, 1.0)
  }),
  appearance : new PerInstanceColorAppearance({
    flat : true,
    translucent : false
  })
}));
// Two extents in a primitive, each with a different color
var instance = new GeometryInstance({
  geometry : new ExtentGeometry({
    extent : Extent.fromDegrees(0.0, 20.0, 10.0, 30.0)
  }),
  color : new Color(1.0, 0.0, 0.0, 0.5)
});
var anotherInstance = new GeometryInstance({
  geometry : new ExtentGeometry({
    extent : Extent.fromDegrees(0.0, 40.0, 10.0, 50.0)
  }),
  color : new Color(0.0, 0.0, 1.0, 0.5)
});
var extentPrimitive = new Primitive({
  geometryInstances : [instance, anotherInstance],
  appearance : new PerInstanceColorAppearance()
});
    
	
	
	
	
Members
- 
    
<readonly> closed
 - 
    
    When
true, 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
 - 
    
    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.- Default Value:
 - false
 
 - 
    
<readonly> flat
 - 
    
    When
true, 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.
 - 
    
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 to
renderStatepassed 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
 - 
    
    When
true, 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 is
false. This requires only apositionattribute. - 
    
<static, constant> VERTEX_FORMAT :VertexFormat
 - 
    
    The VertexFormat that all PerInstanceColorAppearance instances are compatible with. This requires only
positionandstattributes. 
