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)