# Appearance

#### new Cesium.Appearance(options)
Scene/Appearance.js 33

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` | Object |  | optional Optional render state to override the default render state.

##### Demo:

- Geometry and Appearances Demo

##### See:

- MaterialAppearance
- EllipsoidSurfaceAppearance
- PerInstanceColorAppearance
- DebugAppearance
- PolylineColorAppearance
- PolylineMaterialAppearance

### Members

#### readonly closed : Boolean
Scene/Appearance.js 116

When `true`, the geometry is expected to be closed.

Default Value: `false`

#### readonly fragmentShaderSource : String
Scene/Appearance.js 86

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.

#### material : Material
Scene/Appearance.js 44

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

#### readonly renderState : Object
Scene/Appearance.js 100

The WebGL fixed-function state to use when rendering the geometry.

#### translucent : Boolean
Scene/Appearance.js 53

When `true`, the geometry is expected to appear translucent.

Default Value: `true`

#### readonly vertexShaderSource : String
Scene/Appearance.js 70

The GLSL source code for the vertex shader.

### Methods

#### getFragmentShaderSource() → String
Scene/Appearance.js 129

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.

#### getRenderState() → Object
Scene/Appearance.js 164

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.

#### isTranslucent() → Boolean
Scene/Appearance.js 150

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

##### Returns:

`true` if the appearance is translucent.