SurfaceTool

Inherits: Reference < Object

类别: 核心

简要说明

创建几何图形的辅助工具。

方法

无效

add_bones ( PoolIntArray bones )

无效

add_color ( Color color )

无效

add_index ( int index )

无效

add_normal ( Vector3 normal )

无效

add_smooth_group ( bool smooth )

无效

add_tangent ( Plane tangent )

无效

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

无效

add_uv ( Vector2 uv )

无效

add_uv2 ( Vector2 uv2 )

无效

add_vertex ( Vector3 vertex )

无效

add_weights ( PoolRealArray weights )

无效

append_from ( Mesh existing, int surface, Transform transform )

无效

begin ( PrimitiveType primitive )

无效

clear ( )

ArrayMesh

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

Array

commit_to_arrays ( )

无效

create_from ( Mesh existing, int surface )

无效

create_from_blend_shape ( Mesh existing, int surface, String blend_shape )

无效

deindex ( )

无效

generate_normals ( bool flip=false )

无效

generate_tangents ( )

无效

index ( )

无效

set_material ( Material material )

描述

这个 SurfaceTool 用于构造 Mesh 通过单独指定顶点属性。它可以用来构造 Mesh 从一个脚本。调用前需要添加除索引以外的所有属性 add_vertex . 例如,要添加顶点颜色和UV:

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_uvadd_color ,则使用最后一个值。

必须传递顶点属性 之前 打电话 add_vertex . 如果不这样做,将在向网格提交顶点信息时会导致错误。

此外,添加第一个顶点之前使用的属性确定网格的格式。例如,如果仅向第一个顶点添加UV,则不能向任何后续顶点添加颜色。

方法说明

为下一个要使用的顶点添加骨骼数组。 bones 必须包含4个整数。

  • void add_color ( Color color )

指定 Color 用于下一个顶点。

  • void add_index ( int index )

如果使用索引顶点,则向索引数组添加索引。在添加顶点之前不需要调用。

  • void add_normal ( Vector3 normal )

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

  • void add_smooth_group ( bool smooth )

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

  • void add_tangent ( Plane tangent )

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

将由数组数据构成的三角形风扇插入 Mesh 正在建造。

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

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

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

  • void add_vertex ( Vector3 vertex )

指定当前顶点的位置。应在指定其他顶点属性(例如颜色、UV)后调用。

指定下一个顶点要使用的权重值。 weights 必须包含4个值。

附加给定顶点 Mesh 表面到当前顶点数组 Transform .

在添加任何顶点之前调用。将基元类型作为参数(例如 Mesh.PRIMITIVE_TRIANGLES

  • void clear ( )

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

返回构造的 ArrayMesh 来自传入的当前信息。如果存在 ArrayMesh 作为参数传入,将向现有的 ArrayMesh .

  • Array commit_to_arrays ( )

  • void create_from ( Mesh existing, int surface )

从现有顶点数组创建顶点数组 Mesh .

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

  • void deindex ( )

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

  • void generate_normals ( bool flip=false )

从顶点生成法线,因此不必手动执行。如果 fliptrue ,将反转生成的法线。

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

  • void generate_tangents ( )

为每个顶点生成一个切线向量。要求每个顶点已经设置了UV和法线。

  • void index ( )

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

  • void set_material ( Material material )

集合 Material 用于 Mesh 您正在构造。