# Appearance

#### new Cesium.Appearance(options)
engine/Source/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
engine/Source/Scene/Appearance.js 116

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

Default Value: `false`

#### readonly fragmentShaderSource : string
engine/Source/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
engine/Source/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
engine/Source/Scene/Appearance.js 100

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

#### translucent : boolean
engine/Source/Scene/Appearance.js 53

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

Default Value: `true`

#### readonly vertexShaderSource : string
engine/Source/Scene/Appearance.js 70

The GLSL source code for the vertex shader.

### Methods

#### getFragmentShaderSource() → string
engine/Source/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
engine/Source/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
engine/Source/Scene/Appearance.js 150

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

##### Returns:

`true` if the appearance is translucent.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.