Class reference
ImmediateMesh
Inherits Mesh
Mesh optimized for creating geometry manually.
Description
A mesh type optimized for creating geometry manually, similar to OpenGL 1.x immediate mode. Here's a sample on how to generate a triangular face:
var mesh = ImmediateMesh.new()
mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES)
mesh.surface_add_vertex(Vector3.LEFT)
mesh.surface_add_vertex(Vector3.FORWARD)
mesh.surface_add_vertex(Vector3.ZERO)
mesh.surface_end()
var mesh = new ImmediateMesh();
mesh.SurfaceBegin(Mesh.PrimitiveType.Triangles);
mesh.SurfaceAddVertex(Vector3.Left);
mesh.SurfaceAddVertex(Vector3.Forward);
mesh.SurfaceAddVertex(Vector3.Zero);
mesh.SurfaceEnd();
Note: Generating complex geometries with ImmediateMesh is highly inefficient. Instead, it is designed to generate simple geometry that changes often.
Methods
void clear_surfaces()
Clear all surfaces.
void surface_add_vertex(Vector3 vertex)
Vector3 vertex)Add a 3D vertex using the current attributes previously set.
void surface_add_vertex_2d(Vector2 vertex)
Vector2 vertex)Add a 2D vertex using the current attributes previously set.
void surface_begin(int primitive, Material material = null)
int primitive, Material material = null)Begin a new surface.
void surface_end()
End and commit current surface. Note that surface being created will not be visible until this function is called.
void surface_set_color(Color color)
Color color)Set the color attribute that will be pushed with the next vertex.
void surface_set_normal(Vector3 normal)
Vector3 normal)Set the normal attribute that will be pushed with the next vertex.
void surface_set_tangent(Plane tangent)
Plane tangent)Set the tangent attribute that will be pushed with the next vertex.
void surface_set_uv(Vector2 uv)
Vector2 uv)Set the UV attribute that will be pushed with the next vertex.
void surface_set_uv2(Vector2 uv2)
Vector2 uv2)Set the UV2 attribute that will be pushed with the next vertex.