pc.MeshInstance
An instance of a pc.Mesh. A single mesh can be referenced by many mesh instances that can have different transforms and materials.
// Create a mesh instance pointing to a 1x1x1 'cube' mesh
var mesh = pc.createBox(graphicsDevice);
var material = new pc.StandardMaterial();
var node = new pc.GraphNode();
var meshInstance = new pc.MeshInstance(node, mesh, material);
Summary
Properties
| aabb | The world space axis-aligned bounding box for this mesh instance. |
| calculateSortDistance | In some circumstances mesh instances are sorted by a distance calculation to determine their rendering order. |
| castShadow | Controls whether the mesh instance casts shadows. |
| cull | Controls whether the mesh instance can be culled by with frustum culling (pc.CameraComponent#frustumCulling). |
| drawOrder | Use this value to affect rendering order of mesh instances. |
| instancingCount | Number of instances when using hardware instancing to render the mesh. |
| mask | Mask controlling which pc.LightComponents light this mesh instance, which pc.CameraComponent sees it and in which pc.Layer it is rendered. |
| material | The material used by this mesh instance. |
| mesh | The graphics mesh being instanced. |
| node | The graph node defining the transform for this instance. |
| renderStyle | The render style of the mesh instance. |
| visible | Enable rendering for this mesh instance. |
| visibleThisFrame | Read this value in pc.Layer#onPostCull to determine if the object is actually going to be rendered. |
Methods
| setInstancing | Sets up pc.MeshInstance to be rendered using Hardware Instancing. |
Details
Constructor
MeshInstance(node, mesh, material)
Create a new mesh instance.
// Create a mesh instance pointing to a 1x1x1 'cube' mesh
var mesh = pc.createBox(graphicsDevice);
var material = new pc.StandardMaterial();
var node = new pc.GraphNode();
var meshInstance = new pc.MeshInstance(node, mesh, material);
Parameters
| node | pc.GraphNode | The graph node defining the transform for this instance. |
| mesh | pc.Mesh | The graphics mesh being instanced. |
| material | pc.Material | The material used to render this instance. |
Properties
In some circumstances mesh instances are sorted by a distance calculation to determine their rendering order. Set this callback to override the default distance calculation, which gives the dot product of the camera forward vector and the vector between the camera position and the center of the mesh instance's axis-aligned bounding box. This option can be particularly useful for rendering transparent meshes in a better order than default.
Controls whether the mesh instance can be culled by with frustum culling (pc.CameraComponent#frustumCulling).
Use this value to affect rendering order of mesh instances. Only used when mesh instances are added to a pc.Layer with pc.Layer#opaqueSortMode or pc.Layer#transparentSortMode (depending on the material) set to pc.SORTMODE_MANUAL.
Mask controlling which pc.LightComponents light this mesh instance, which pc.CameraComponent sees it and in which pc.Layer it is rendered. Defaults to 1.
The render style of the mesh instance. Can be:
Defaults to pc.RENDERSTYLE_SOLID.
Enable rendering for this mesh instance. Use visible property to enable/disable rendering without overhead of removing from scene. But note that the mesh instance is still in the hierarchy and still in the draw call list.
Read this value in pc.Layer#onPostCull to determine if the object is actually going to be rendered.
Methods
setInstancing(vertexBuffer)
Sets up pc.MeshInstance to be rendered using Hardware Instancing.
Parameters
| vertexBuffer | pc.VertexBuffer, null | Vertex buffer to hold per-instance vertex data (usually world matrices). Pass null to turn off hardware instancing. |