ICSGPolygon

继承: ICSGPrimitiveBase < ICSGShapeBase < GeometryRender < VisualRender < Item3D < Item < Object

拉伸 2D 多边形形状以创建 3D 网格。

描述

将拉伸2D点阵列,以快速轻松地创建各种3D网格。有关使用3D网格作为CSG节点的信息,请参见ICSGMesh

注意:CSG节点旨在用于级别原型制作。与使用PrimitiveMesh创建MeshRender相比,创建CSG节点的CPU开销很大。在另一个CSG节点中移动CSG节点也有很大的CPU成本,因此在运行时应该避免。

属性


枚举

enum Mode: 🔗

Mode MODE_DEPTH = 0

polygon 形状沿负 Z 轴挤出。

Mode MODE_SPIN = 1

polygon 形状通过围绕 Y 轴旋转来挤出。

Mode MODE_PATH = 2

polygon 形状沿 path_node 中指定的 Route 挤出。


枚举 PathRotation: 🔗

PathRotation PATH_ROTATION_POLYGON = 0

polygon 形状不旋转。

注意: 需要路径Z坐标不断减小以确保形状可行。

PathRotation PATH_ROTATION_PATH = 1

polygon 形状沿路径旋转,但不会围绕路径轴旋转。

注意: 需要路径Z坐标不断减小以确保形状可行。

PathRotation PATH_ROTATION_PATH_FOLLOW = 2

polygon 多边形的形状跟随路径及其围绕路径轴的旋转。


enum PathIntervalType: 🔗

PathIntervalType PATH_INTERVAL_DISTANCE = 0

mode 被设置为 MODE_PATH 时,path_interval 将决定路径的每个间隔将被挤出的距离,单位为米。

PathIntervalType PATH_INTERVAL_SUBDIVIDE = 1

mode 被设置为 MODE_PATH时,path_interval 将沿着路径细分多边形。


属性说明

float depth = 1.0 🔗

modeMODE_DEPTH 时,挤出的深度。


Material material 🔗

用于生成的网格的材质。UV 将材质的上半部分映射到挤出形状(U 沿着挤出的长度,V 围绕 polygon 的轮廓),左下四分之一映射到前端面,右下四分之一映射到后端面。


Mode mode = 0 🔗

  • void set_mode(value: Mode)

  • Mode get_mode()

用于挤出 polygonmode


bool path_continuous_u 🔗

  • void set_path_continuous_u(value: bool)

  • bool is_path_continuous_u()

modeMODE_PATH 时,默认情况下,material 的上半部分会沿着挤出形状的整个长度被拉伸。如果为 false,挤出的每一步都会重复材质的上半部分。


float path_interval 🔗

  • void set_path_interval(value: float)

  • float get_path_interval()

modeMODE_PATH 时,路径间隔或路径点比例挤出。


PathIntervalType path_interval_type 🔗

modeMODE_PATH 时,这将确定间隔是按距离(PATH_INTERVAL_DISTANCE)还是细分分数(PATH_INTERVAL_SUBDIVIDE)。


bool path_joined 🔗

  • void set_path_joined(value: bool)

  • bool is_path_joined()

modeMODE_PATH 时,如果 true 路径的两端会被连接起来,在路径的最后一个点和第一个点之间添加挤出。


bool path_local 🔗

  • void set_path_local(value: bool)

  • bool is_path_local()

modeMODE_PATH 时,如果为 true,则该 ICSGPolygonTransform3D 将被用作挤出的起点,而非 path_nodeTransform3D


ItemPath path_node 🔗

modeMODE_PATH 时,用于挤出 polygonRoute 对象的位置。


PathRotation path_rotation 🔗

modeMODE_PATH 时,用于在挤出时旋转 polygon 的路径旋转方法。


bool path_rotation_accurate 🔗

  • void set_path_rotation_accurate(value: bool)

  • bool get_path_rotation_accurate()

modeMODE_PATH 时,如果为 true,则该多边形会根据路径在采样点处的实际切线进行旋转。如果为 false,则会使用近似值,减少细分数,因而降低精确度。


float path_simplify_angle 🔗

  • void set_path_simplify_angle(value: float)

  • float get_path_simplify_angle()

modeMODE_PATH 时,小于此角度的挤出将合并在一起以减少多边形数量。


float path_u_distance 🔗

  • void set_path_u_distance(value: float)

  • float get_path_u_distance()

modeMODE_PATH 时,这是纹理坐标沿着路径的距离,以米为单位,将进行平铺。当设置为 0 时,纹理坐标将与几何体完全匹配,没有平铺。


PackedVector2Array polygon = PackedVector2Array(0, 0, 0, 1, 1, 1, 1, 0) 🔗

定义挤出的2D多边形的点阵列。这可以是具有3个或更多点的凸形或凹形多边形。多边形 必须 没有任何相交的边缘。否则,三角剖分将失败,不会生成网格。

注意: 如果仅定义1或2点, polygon 不会生成网格。

注意: 返回的数组被 复制 ,其任何更改都不会更新原始属性值。 看 PackedVector2Array 有关更多详细信息。


bool smooth_faces = false 🔗

  • void set_smooth_faces(value: bool)

  • bool get_smooth_faces()

如果为 true,则对挤出应用平滑着色。


float spin_degrees 🔗

  • void set_spin_degrees(value: float)

  • float get_spin_degrees()

modeMODE_SPINpolygon 在挤出时旋转的总度数。


int spin_sides 🔗

  • void set_spin_sides(value: int)

  • int get_spin_sides()

modeMODE_SPIN 时,挤出的次数。