InstancedMesh
Extends Mesh
Uses a mesh to create instances from it. Especially helpful when rendering many small instances
Constructors
InstancedMesh:newInstancedMesh(mesh)
Arguments
mesh (Mesh) The source mesh to create instances from
Returns
Methods
InstancedMesh:getInstancesCount()
Returns the current amount of instances
Returns
(number)
InstancedMesh:clear()
Clear all instances
InstancedMesh:resize(count)
Resize the instanced mesh, preserving previous entries
Arguments
count (number)
InstancedMesh:addInstance(transform, index)
Add another instance
Arguments
transform (Mat4) a mat3x4 matrix, instances do not support shearing, e.g. the last row
index (number) Optional index, else it will append
InstancedMesh:setInstances(instances)
Place instances from an array of mat3x4 transformations, represented as a flat array (mat3 rotation, vec3 position, basically a transposed DreamMat4 with missing last row)
Arguments
instances (number[]) [][]
InstancedMesh:updateBoundingSphere()
Updates the bounding sphere from scratch, called internally when needed
InstancedMesh:extendBoundingSphere(instance)
Extend the bounding sphere by another instance, called internally
Arguments
instance (Mat4)
Mesh:setMaterial(material)
Sets the meshes material
Arguments
material (Material)
Mesh:getMaterial()
Returns
(Material)
Mesh:setVisible(visibility)
Arguments
visibility (boolean)
Mesh:setRenderVisibility(visibility)
Arguments
visibility (boolean)
Mesh:getRenderVisibility()
Mesh:setShadowVisibility(visibility)
Arguments
visibility (boolean)
Mesh:getShadowVisibility()
Mesh:setSkeleton(skeleton)
Arguments
skeleton (Skeleton)
Mesh:getSkeleton()
Mesh:getPixelShader()
Mesh:getVertexShader()
Mesh:getWorldShader()
Mesh:updateBoundingSphere()
Updates the bounding sphere based on mesh data
Mesh:cleanup()
Mesh:preload(force)
Load textures and similar
Arguments
force (boolean) Bypass threaded loading and immediately load things
Mesh:clearMesh()
Deletes the mesh, will regenerate next time needed
Mesh:getMesh(name)
Get a mesh, load automatically if required
Arguments
name (string) optional, default “mesh”
Mesh:applyTransform(transform)
Apply a transformation matrix to all vertices
Arguments
transform (Mat4)
Mesh:applyBones(skeleton)
Apply joints to mesh data directly
Arguments
skeleton (Skeleton) optional
Mesh:getJointMatrix(skeleton, jointIndex)
Returns the final joint transformation based on vertex weights
Arguments
skeleton (Skeleton)
jointIndex (number)
Returns
(Mat4)
Mesh:recalculateTangents()
Mesh:createVertexMap()
Mesh:getMeshFormat()
Returns the required mesh format set by the current pixel shader
Returns
Mesh:create()
Makes this mesh render-able
Mesh:separate()
Separates by loose parts and returns a list of new meshes
Returns
(Mesh[])
Mesh:setMeshDrawMode(meshDrawMode)
Sets the current meshDrawMode, rarely makes sense to set manually
Arguments
meshDrawMode (MeshDrawMode)
Mesh:getMeshDrawMode()
Gets the current meshDrawMode
Returns
(MeshDrawMode)
Mesh:getOrCreateBuffer(name)
Gets or creates an dynamic, typeless buffer
Arguments
name (string) name of buffer
Clonable:clone()
Slow and deep clone
Clonable:instance()
Creates an fast instance
HasShaders:setPixelShader(shader)
Arguments
shader (Shader)
HasShaders:setVertexShader(shader)
Arguments
shader (Shader)
HasShaders:setWorldShader(shader)
Arguments
shader (Shader)
IsNamed:setName(name)
A name has no influence other than being able to print more nicely
Arguments
name (string)
IsNamed:getName()
Gets the name, or “unnamed”
Returns
(string)