Appearance - Cesium Documentation

# Appearance

#### new Appearance(options)

  An appearance defines the full GLSL vertex and fragment shaders and the render state used to draw a `Primitive`. All appearances implement this base `Appearance` interface.

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  optional Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `translucent` | Boolean | `true` | optional When `true`, the geometry is expected to appear translucent so `Appearance#renderState` has alpha blending enabled.
  `closed` | Boolean | `false` | optional When `true`, the geometry is expected to be closed so `Appearance#renderState` has backface culling enabled.
  `material` | Material | `Material.ColorType` | optional The material used to determine the fragment color.
  `vertexShaderSource` | String |  | optional Optional GLSL vertex shader source to override the default vertex shader.
  `fragmentShaderSource` | String |  | optional Optional GLSL fragment shader source to override the default fragment shader.
  `renderState` | RenderState |  | optional Optional render state to override the default render state.

  ##### Demo:

  - Geometry and Appearances Demo

  ##### See:

  - MaterialAppearance
  - EllipsoidSurfaceAppearance
  - PerInstanceColorAppearance
  - DebugAppearance
  - PolylineColorAppearance
  - PolylineMaterialAppearance
  Source: Scene/Appearance.js, line 45

### Members

#### readonlyclosed :Boolean

  When `true`, the geometry is expected to be closed.
  Default Value: `false`
  Source: Scene/Appearance.js, line 128

#### readonlyfragmentShaderSource :String

  The GLSL source code for the fragment shader. The full fragment shader source is built procedurally taking into account the `Appearance#material`. Use `Appearance#getFragmentShaderSource` to get the full source.
  Source: Scene/Appearance.js, line 98

#### material :Material

  The material used to determine the fragment color. Unlike other `Appearance` properties, this is not read-only, so an appearance's material can change on the fly.

  ##### See:

  - Fabric
  Source: Scene/Appearance.js, line 56

#### readonlyrenderState :Object

  The WebGL fixed-function state to use when rendering the geometry.
  Source: Scene/Appearance.js, line 112

#### translucent :Boolean

  When `true`, the geometry is expected to appear translucent.
  Default Value: `true`
  Source: Scene/Appearance.js, line 65

#### readonlyvertexShaderSource :String

  The GLSL source code for the vertex shader.
  Source: Scene/Appearance.js, line 82

### Methods

#### getFragmentShaderSource() → String

  Procedurally creates the full GLSL fragment shader source for this appearance taking into account `Appearance#fragmentShaderSource` and `Appearance#material`.

  ##### Returns:

  The full GLSL fragment shader source.
  Source: Scene/Appearance.js, line 141

#### getRenderState() → Object

  Creates a render state. This is not the final render state instance; instead, it can contain a subset of render state properties identical to the render state created in the context.

  ##### Returns:

  The render state.
  Source: Scene/Appearance.js, line 173

#### isTranslucent() → Boolean

  Determines if the geometry is translucent based on `Appearance#translucent` and `Material#isTranslucent`.

  ##### Returns:

  `true` if the appearance is translucent.
  Source: Scene/Appearance.js, line 162