Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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, который будет добавляться вместе со следующей вершиной.