PrimitiveMesh
Наследует: Mesh < Resource < RefCounted < Object
Наследуется от: BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PointMesh, PrismMesh, RibbonTrailMesh, SphereMesh, TextMesh, TorusMesh, TubeTrailMesh
Базовый класс для всех примитивных сеток. Обрабатывает и применяет Material к примитивной сетке.
Описание
Базовый класс для всех примитивных сеток. Обрабатывает и применяет Material к примитивной сетке. Примеры включают BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PrismMesh и SphereMesh.
Свойства
|
||
|
||
|
||
|
Методы
_create_mesh_array() virtual const |
|
get_mesh_arrays() const |
|
void |
Описания свойств
Если установлено, генерирует UV2 UV-координаты, применяя заполнение с помощью настройки uv2_padding. UV2 необходим для светового отображения.
AABB custom_aabb = AABB(0, 0, 0, 0, 0, 0) 🔗
Переопределяет AABB на определенный пользователем для использования с отсечением по усеченной пирамиде. Особенно полезно для избежания неожиданного отсечения при использовании шейдера для смещения вершин.
Если true, порядок вершин в каждом треугольнике меняется на обратный, в результате чего рисуется задняя сторона сетки.
Это дает тот же результат, что и использование BaseMaterial3D.CULL_FRONT в BaseMaterial3D.cull_mode.
Текущий Material примитивной сетки.
Если задан 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())
var c = new CylinderMesh();
var arrMesh = new ArrayMesh();
arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c.GetMeshArrays());
void request_update() 🔗
Запросите обновление этой примитивной сетки на основе ее свойств.