# Interface: MeshOptions\<GEOMETRY, SHADER\>

**`Advanced`**

Options for creating a Mesh instance.

## Extends

- `MeshOptions`.[`ContainerOptions`](scene.ContainerOptions.html.md)

## Type Parameters

### GEOMETRY

`GEOMETRY` *extends* [`Geometry`](rendering.Geometry.html.md) = [`MeshGeometry`](scene.MeshGeometry.html.md)

### SHADER

`SHADER` *extends* [`Shader`](rendering.Shader.html.md) = [`TextureShader`](scene.TextureShader.html.md)

## Properties

### geometry

> **geometry**: `GEOMETRY`

Includes vertex positions, face indices, colors, UVs, and
custom attributes within buffers, reducing the cost of passing all
this data to the GPU. Can be shared between multiple Mesh objects.

***

### roundPixels?

> `optional` **roundPixels**: `boolean`

Whether or not to round the x/y position.

***

### shader?

> `optional` **shader**: `SHADER`

Represents the vertex and fragment shaders that processes the geometry and runs on the GPU.
Can be shared between multiple Mesh objects.

***

### state?

> `optional` **state**: [`State`](rendering.State.html.md)

The state of WebGL required to render the mesh.

***

### texture?

> `optional` **texture**: [`Texture`](rendering.Texture.html.md)

The texture that the Mesh uses. Null for non-MeshMaterial shaders
