ImmediateMesh
Наследует: Mesh < Resource < RefCounted < Object
Сетка оптимизирована для создания геометрии вручную.
Описание
Тип сетки, оптимизированный для создания геометрии вручную, аналогичный непосредственному режиму OpenGL 1.x.
Вот пример того, как сгенерировать треугольную грань:
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();
Примечание: Генерация сложной геометрии с помощью ImmediateMesh крайне неэффективна. Вместо этого она предназначена для генерации простой геометрии, которая часто меняется.
Обучающие материалы
Методы
void |
|
void |
surface_add_vertex(vertex: Vector3) |
void |
surface_add_vertex_2d(vertex: Vector2) |
void |
surface_begin(primitive: PrimitiveType, material: Material = null) |
void |
|
void |
surface_set_color(color: Color) |
void |
surface_set_normal(normal: Vector3) |
void |
surface_set_tangent(tangent: Plane) |
void |
surface_set_uv(uv: Vector2) |
void |
surface_set_uv2(uv2: Vector2) |
Описания метода
void clear_surfaces() 🔗
Очистить все поверхности.
void surface_add_vertex(vertex: Vector3) 🔗
Добавьте 3D-вершину, используя текущие атрибуты, установленные ранее.
void surface_add_vertex_2d(vertex: Vector2) 🔗
Добавьте 2D-вершину, используя текущие атрибуты, установленные ранее.
void surface_begin(primitive: PrimitiveType, material: Material = null) 🔗
Начните новую поверхность.
void surface_end() 🔗
Завершить и зафиксировать текущую поверхность. Обратите внимание, что создаваемая поверхность не будет видна, пока не будет вызвана эта функция.
void surface_set_color(color: Color) 🔗
Установите атрибут цвета, который будет добавлен вместе со следующей вершиной.
void surface_set_normal(normal: Vector3) 🔗
Установите атрибут нормали, который будет добавлен вместе со следующей вершиной.
void surface_set_tangent(tangent: Plane) 🔗
Установите атрибут касательной, который будет добавлен к следующей вершине.
Примечание: Хотя tangent является Plane, он не представляет собой непосредственно касательную плоскость. Его Plane.x, Plane.y и Plane.z представляют собой касательный вектор, а Plane.d должен быть либо -1, либо 1. См. также Mesh.ARRAY_TANGENT.
void surface_set_uv(uv: Vector2) 🔗
Установите атрибут UV, который будет добавлен вместе со следующей вершиной.
void surface_set_uv2(uv2: Vector2) 🔗
Установите атрибут UV2, который будет добавляться вместе со следующей вершиной.