ImmediateMesh
继承: Mesh < Resource < RefCounted < Object
为手动创建几何体,而优化的网格。
描述
针对手动创建几何体优化的网格类型,与 OpenGL 1.x 的立即模式类似。
以下是生成三角形面的示例:
GDScriptC#
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 属性。