PrimitiveMesh

Наследует: Mesh < Resource < RefCounted < Object

Наследуется от: BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PointMesh, PrismMesh, RibbonTrailMesh, SphereMesh, TextMesh, TorusMesh, TubeTrailMesh

Базовый класс для всех примитивных сеток. Обрабатывает и применяет Material к примитивной сетке.

Описание

Базовый класс для всех примитивных сеток. Обрабатывает и применяет Material к примитивной сетке. Примеры включают BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PrismMesh и SphereMesh.

Свойства

bool

add_uv2

false

AABB

custom_aabb

AABB(0, 0, 0, 0, 0, 0)

bool

flip_faces

false

Material

material

float

uv2_padding

2.0

Методы

Array

_create_mesh_array() virtual const

Array

get_mesh_arrays() const

void

request_update()


Описания свойств

bool add_uv2 = false 🔗

  • void set_add_uv2(value: bool)

  • bool get_add_uv2()

Если установлено, генерирует UV2 UV-координаты, применяя заполнение с помощью настройки uv2_padding. UV2 необходим для светового отображения.


AABB custom_aabb = AABB(0, 0, 0, 0, 0, 0) 🔗

  • void set_custom_aabb(value: AABB)

  • AABB get_custom_aabb()

Переопределяет AABB на определенный пользователем для использования с отсечением по усеченной пирамиде. Особенно полезно для избежания неожиданного отсечения при использовании шейдера для смещения вершин.


bool flip_faces = false 🔗

  • void set_flip_faces(value: bool)

  • bool get_flip_faces()

Если true, порядок вершин в каждом треугольнике меняется на обратный, в результате чего рисуется задняя сторона сетки.

Это дает тот же результат, что и использование BaseMaterial3D.CULL_FRONT в BaseMaterial3D.cull_mode.


Material material 🔗

Текущий Material примитивной сетки.


float uv2_padding = 2.0 🔗

  • void set_uv2_padding(value: float)

  • float get_uv2_padding()

Если задан add_uv2, задает отступ в пикселях, применяемый вдоль швов сетки. Более низкие значения отступа позволяют лучше использовать текстуру карты освещения (что приводит к более высокой плотности текселей), но могут привести к видимому кровотечению карты освещения вдоль краев.

Если размер текстуры карты освещения не может быть определен при генерации сетки, UV2 рассчитывается с учетом размера текстуры 1024x1024.


Описания метода

Array _create_mesh_array() virtual const 🔗

Переопределите этот метод, чтобы настроить, как должна генерироваться эта примитивная сетка. Должен возвращать Array, где каждый элемент — это другой массив значений, требуемых для сетки (см. константы ArrayType).


Array get_mesh_arrays() const 🔗

Возвращает массивы сеток, используемые для создания поверхности этой примитивной сетки.

Пример: Передайте результат в ArrayMesh.add_surface_from_arrays(), чтобы создать новую поверхность:

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

void request_update() 🔗

Запросите обновление этой примитивной сетки на основе ее свойств.