跳到主要内容

SurfaceTool

继承

Reference

简要描述

创建几何的帮助工具。

描述

SurfaceTool用于通过分别指定顶点属性来构造Mesh

var st = SurfaceTool.new()
st.begin(Mesh.PRIMITIVE_TRIANGLES)
st.add_color(Color(1, 0, 0))
st.add_uv(Vector2(0, 0))
st.add_vertex(Vector3(0, 0, 0))

上面的SurfaceTool现在包含一个三角形的一个顶点,该三角形具有UV坐标和指定的Color

顶点属性必须在调用add_vertex之前传递。

此外,在添加第一个顶点之前使用的属性决定了网格的格式。

方法

返回值类型方法名称
voidadd_bones(bones: PoolIntArray)
voidadd_color(color: Color)
voidadd_index(index: int)
voidadd_normal(normal: Vector3)
voidadd_smooth_group(smooth: bool)
voidadd_tangent(tangent: Plane)
voidadd_triangle_fan(vertices: PoolVector3Array, uvs: PoolVector2Array = PoolVector2Array( ), colors: PoolColorArray = PoolColorArray( ), uv2s: PoolVector2Array = PoolVector2Array( ), normals: PoolVector3Array = PoolVector3Array( ), tangents: Array = [])
voidadd_uv(uv: Vector2)
voidadd_uv2(uv2: Vector2)
voidadd_vertex(vertex: Vector3)
voidadd_weights(weights: PoolRealArray)
voidappend_from(existing: Mesh, surface: int, transform: Transform)
voidbegin(primitive: int)
voidclear()
ArrayMeshcommit(existing: ArrayMesh = null, flags: int = 97280)
Arraycommit_to_arrays()
voidcreate_from(existing: Mesh, surface: int)
voidcreate_from_blend_shape(existing: Mesh, surface: int, blend_shape: String)
voiddeindex()
voidgenerate_normals(flip: bool = false)
voidgenerate_tangents()
voidindex()
voidset_material(material: Material)

方法说明

  • add_bones add_bones(bones: PoolIntArray)

添加骨骼数组以供下一个顶点使用。


  • add_color add_color(color: Color)

指定要下一个顶点要使用的Color


  • add_index add_index(index: int)

如果使用索引顶点,则将索引添加到索引数组。


  • add_normal add_normal(normal: Vector3)

指定下一个要使用的顶点的法线。


  • add_smooth_group add_smooth_group(smooth: bool)

指定当前顶点(如果仅使用顶点数组)或者当前索引(如果还使用索引数组)应使用平滑法线进行法线计算。


  • add_tangent add_tangent(tangent: Plane)

指定下一个顶点要使用的切线。


  • add_triangle_fan add_triangle_fan(vertices: PoolVector3Array, uvs: PoolVector2Array = PoolVector2Array( ), colors: PoolColorArray = PoolColorArray( ), uv2s: PoolVector2Array = PoolVector2Array( ), normals: PoolVector3Array = PoolVector3Array( ), tangents: Array = [])

将由阵列数据制成的三角形扇插入正在构造的Mesh中。

要求将基本类型设置为Mesh.PRIMITIVE_TRIANGLES


  • add_uv add_uv(uv: Vector2)

指定用于下一个顶点的一组UV坐标。


  • add_uv2 add_uv2(uv2: Vector2)

指定用于下一个顶点的可选第二组UV坐标。


  • add_vertex add_vertex(vertex: Vector3)

指定当前顶点的位置。


  • add_weights add_weights(weights: PoolRealArray)

指定下一个顶点要使用的权重值。


  • append_from append_from(existing: Mesh, surface: int, transform: Transform)

使用指定的Transform将给定Mesh曲面上的顶点附加到当前顶点阵列上。


  • begin begin(primitive: int)

在添加任何顶点之前调用。


  • clear clear()

清除到目前为止传递到曲面工具的所有信息。


  • commit commit(existing: ArrayMesh = null, flags: int = 97280)

从传入的当前信息返回一个构造的ArrayMesh。如果将现有的ArrayMesh作为参数传入,则会为现有的ArrayMesh添加一个额外的表面。

默认标志是Mesh.ARRAY_COMPRESS_DEFAULT


  • commit_to_arrays commit_to_arrays()

将数据提交为ArrayMesh.add_surface_from_arrays使用的相同格式。


  • create_from create_from(existing: Mesh, surface: int)

从现有的Mesh创建一个顶点数组。


  • create_from_blend_shape create_from_blend_shape(existing: Mesh, surface: int, blend_shape: String)

根据现有Mesh的指定混合形状创建顶点数组。


  • deindex deindex()

通过扩展顶点数组来删除索引数组。


  • generate_normals generate_normals(flip: bool = false)

从顶点生成法线,因此您不必手动进行。

需要将图元类型设置为Mesh.PRIMITIVE_TRIANGLES


  • generate_tangents generate_tangents()

为每个顶点生成一个切向量。


  • index index()

通过创建索引数组来缩小顶点数组(避免重用顶点)。


  • set_material set_material(material: Material)

设置由正在构建的Mesh使用的Material