Table of Contents

Class PrimitiveMesh

Base class for all primitive meshes. Handles applying a Material to a primitive mesh.

Inheritance
PrimitiveMesh
Derived

Remarks

Base class for all primitive meshes. Handles applying a Material to a primitive mesh. Examples include BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PrismMesh, and SphereMesh.

Properties

add_uv2

If set, generates UV2 UV coordinates applying a padding using the uv2_padding setting. UV2 is needed for lightmapping.

var add_uv2 : bool = false

Property Value

bool

Remarks

  • void set_add_uv2(bool value)
  • bool get_add_uv2

custom_aabb

Overrides the AABB with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.

var custom_aabb : AABB = AABB(0, 0, 0, 0, 0, 0)

Property Value

AABB

Remarks

  • void set_custom_aabb(AABB value)
  • AABB get_custom_aabb

flip_faces

If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn.

This gives the same result as using BaseMaterial3D.CULL_FRONT in cull_mode.

var flip_faces : bool = false

Property Value

bool

Remarks

  • void set_flip_faces(bool value)
  • bool get_flip_faces

material

The current Material of the primitive mesh.

var material : Material

Property Value

Material

Remarks

uv2_padding

If add_uv2 is set, specifies the padding in pixels applied along seams of the mesh. Lower padding values allow making better use of the lightmap texture (resulting in higher texel density), but may introduce visible lightmap bleeding along edges.

If the size of the lightmap texture can't be determined when generating the mesh, UV2 is calculated assuming a texture size of 1024x1024.

var uv2_padding : float = 2.0

Property Value

float

Remarks

  • void set_uv2_padding(float value)
  • float get_uv2_padding

Methods

_create_mesh_array

Qualifiers: virtualconst

Override this method to customize how this primitive mesh should be generated. Should return an Array where each element is another Array of values required for the mesh (see the ArrayType constants).

Array _create_mesh_array

get_mesh_arrays

Qualifiers: const

Returns the mesh arrays used to make up the surface of this primitive mesh.

Example: Pass the result to ArrayMesh.add_surface_from_arrays to create a new surface:

var c = CylinderMesh.new()
var arr_mesh = ArrayMesh.new()
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c.get_mesh_arrays())

Array get_mesh_arrays

request_update

Request an update of this primitive mesh based on its properties.

void request_update