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 |
clear_surfaces ( ) |
void |
surface_add_vertex ( Vector3 vertex ) |
void |
surface_add_vertex_2d ( Vector2 vertex ) |
void |
surface_begin ( PrimitiveType primitive, Material material=null ) |
void |
surface_end ( ) |
void |
surface_set_color ( Color color ) |
void |
surface_set_normal ( Vector3 normal ) |
void |
surface_set_tangent ( Plane tangent ) |
void |
surface_set_uv ( Vector2 uv ) |
void |
surface_set_uv2 ( Vector2 uv2 ) |
方法说明¶
void clear_surfaces ( )
清除所有表面。
void surface_add_vertex ( Vector3 vertex )
使用先前设置的当前属性,添加一个 3D 顶点。
void surface_add_vertex_2d ( Vector2 vertex )
使用先前设置的当前属性,添加一个 2D 顶点。
void surface_begin ( PrimitiveType primitive, Material material=null )
开始一个新的表面。
void surface_end ( )
结束并提交当前表面。请注意,在该函数被调用之前,创建的表面将不可见。
void surface_set_color ( Color color )
设置将与下一个顶点一起推送的颜色属性。
void surface_set_normal ( Vector3 normal )
设置将与下一个顶点一起推送的法线属性。
void surface_set_tangent ( Plane tangent )
设置将与下一个顶点一起推送的切线属性。
void surface_set_uv ( Vector2 uv )
设置将与下一个顶点一起推送的 UV 属性。
void surface_set_uv2 ( Vector2 uv2 )
设置将与下一个顶点一起推送的 UV2 属性。