SurfaceTool¶
类别: 核心
简要说明¶
创建几何图形的辅助工具。
方法¶
无效 |
add_bones ( PoolIntArray bones ) |
无效 |
|
无效 |
|
无效 |
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_vertex ( Vector3 vertex ) |
无效 |
add_weights ( PoolRealArray weights ) |
无效 |
append_from ( Mesh existing, int surface, Transform transform ) |
无效 |
begin ( PrimitiveType primitive ) |
无效 |
clear ( ) |
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 ) |
无效 |
|
无效 |
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_uv 或 add_color ,则使用最后一个值。
必须传递顶点属性 之前 打电话 add_vertex . 如果不这样做,将在向网格提交顶点信息时会导致错误。
此外,添加第一个顶点之前使用的属性确定网格的格式。例如,如果仅向第一个顶点添加UV,则不能向任何后续顶点添加颜色。
方法说明¶
void add_bones ( PoolIntArray bones )
为下一个要使用的顶点添加骨骼数组。 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 )
指定要使用的下一个顶点的切线。
void add_triangle_fan ( PoolVector3Array vertices, PoolVector2Array uvs=PoolVector2Array( ), PoolColorArray colors=PoolColorArray( ), PoolVector2Array uv2s=PoolVector2Array( ), PoolVector3Array normals=PoolVector3Array( ), Array tangents=[ ] )
将由数组数据构成的三角形风扇插入 Mesh 正在建造。
要求将基元类型设置为 Mesh.PRIMITIVE_TRIANGLES .
void add_uv ( Vector2 uv )
指定要用于下一个顶点的一组UV坐标。
void add_uv2 ( Vector2 uv2 )
指定用于下一个顶点的可选第二组UV坐标。
void add_vertex ( Vector3 vertex )
指定当前顶点的位置。应在指定其他顶点属性(例如颜色、UV)后调用。
void add_weights ( PoolRealArray weights )
指定下一个顶点要使用的权重值。 weights
必须包含4个值。
附加给定顶点 Mesh 表面到当前顶点数组 Transform .
void begin ( PrimitiveType primitive )
在添加任何顶点之前调用。将基元类型作为参数(例如 Mesh.PRIMITIVE_TRIANGLES )
void clear ( )
清除到目前为止传递到曲面工具的所有信息。
返回构造的 ArrayMesh 来自传入的当前信息。如果存在 ArrayMesh 作为参数传入,将向现有的 ArrayMesh .
Array commit_to_arrays ( )
从现有顶点数组创建顶点数组 Mesh .
void deindex ( )
通过展开顶点数组来删除索引数组。
void generate_normals ( bool flip=false )
从顶点生成法线,因此不必手动执行。如果 flip
是 true
,将反转生成的法线。
要求将基元类型设置为 Mesh.PRIMITIVE_TRIANGLES .
void generate_tangents ( )
为每个顶点生成一个切线向量。要求每个顶点已经设置了UV和法线。
void index ( )
通过创建索引数组缩小顶点数组(避免重复使用顶点)。
void set_material ( Material material )