ImmediateGeometry

Inherits: GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object

Draws simple geometry from code.

Description

Draws simple geometry from code. Uses a drawing mode similar to OpenGL 1.x.

See also ArrayMesh, MeshDataTool and SurfaceTool for procedural geometry generation.

Note: ImmediateGeometry3D is best suited to small amounts of mesh data that change every frame. It will be slow when handling large amounts of mesh data. If mesh data doesn't change often, use ArrayMesh, MeshDataTool or SurfaceTool instead.

Note: Redot uses clockwise winding order for front faces of triangle primitive modes.

Note: In case of missing points when handling large amounts of mesh data, try increasing its buffer size limit under ProjectSettings.rendering/limits/buffers/immediate_buffer_size_kb.

Methods

void

add_sphere ( int lats, int lons, float radius, bool add_uv=true )

void

add_vertex ( Vector3 position )

void

begin ( PrimitiveType primitive, Texture texture=null )

void

clear ( )

void

end ( )

void

set_color ( Color color )

void

set_normal ( Vector3 normal )

void

set_tangent ( Plane tangent )

void

set_uv ( Vector2 uv )

void

set_uv2 ( Vector2 uv )


Method Descriptions

void add_sphere ( int lats, int lons, float radius, bool add_uv=true )

Simple helper to draw an UV sphere with given latitude, longitude and radius.


void add_vertex ( Vector3 position )

Adds a vertex in local coordinate space with the currently set color/uv/etc.


void begin ( PrimitiveType primitive, Texture texture=null )

Begin drawing (and optionally pass a texture override). When done call end. For more information on how this works, search for glBegin() and glEnd() references.

For the type of primitive, see the PrimitiveType enum.


void clear ( )

Clears everything that was drawn using begin/end.


void end ( )

Ends a drawing context and displays the results.


void set_color ( Color color )

The current drawing color.


void set_normal ( Vector3 normal )

The next vertex's normal.


void set_tangent ( Plane tangent )

The next vertex's tangent (and binormal facing).


void set_uv ( Vector2 uv )

The next vertex's UV.


void set_uv2 ( Vector2 uv )

The next vertex's second layer UV.