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) 🔗
设置将与下一个顶点一起推送的切线属性。
void surface_set_uv(uv: Vector2) 🔗
设置将与下一个顶点一起推送的 UV 属性。
void surface_set_uv2(uv2: Vector2) 🔗
设置将与下一个顶点一起推送的 UV2 属性。