View on GitHub

3DreamEngine

3DreamEngine is an *awesome* 3d engine for LÖVE.

Sprite

Extends Mesh

A sprite represents a simple, textured quad

Constructors

Sprite:newSprite(texture, emissionTexture, normalTexture, quad)

Creates a new sprite, that is, a textured quad mesh

Arguments

texture (Texture) optional

emissionTexture (Texture) optional

normalTexture (Texture) optional

quad (Quad) optional

Returns

(Sprite)


Methods

Sprite:getSpriteTransform(x, y, z, rotation, sx, sy, camera)

Returns a transform to place the quad camera facing at given position with given scale and rotation

Arguments

x (number)

y (number)

z (number)

rotation (number) rotation at the Z axis, default 0

sx (number) default 1

sy (number) default sx

camera (Camera) defaults to the default camera


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

(MeshFormat)


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)