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 将沿着路径细分多边形。
属性说明¶
当 mode 为 MODE_DEPTH 时,挤出的深度。
用于生成的网格的材质。UV 将材质的上半部分映射到挤出形状(U 沿着挤出的长度,V 围绕 polygon 的轮廓),左下四分之一映射到前端面,右下四分之一映射到后端面。
当 mode 为MODE_PATH 时,默认情况下,material 的上半部分会沿着挤出形状的整个长度被拉伸。如果为 false,挤出的每一步都会重复材质的上半部分。
当 mode 为 MODE_PATH 时,路径间隔或路径点比例挤出。
PathIntervalType path_interval_type 🔗
void set_path_interval_type(value: PathIntervalType)
PathIntervalType get_path_interval_type()
当 mode 为 MODE_PATH 时,这将确定间隔是按距离(PATH_INTERVAL_DISTANCE)还是细分分数(PATH_INTERVAL_SUBDIVIDE)。
当 mode 为 MODE_PATH 时,如果 true 路径的两端会被连接起来,在路径的最后一个点和第一个点之间添加挤出。
当 mode 为 MODE_PATH 时,如果为 true,则该 ICSGPolygon 的 Transform3D 将被用作挤出的起点,而非 path_node 的 Transform3D。
当 mode 为 MODE_PATH 时,用于挤出 polygon 的 Route 对象的位置。
PathRotation path_rotation 🔗
void set_path_rotation(value: PathRotation)
PathRotation get_path_rotation()
当 mode 为 MODE_PATH 时,用于在挤出时旋转 polygon 的路径旋转方法。
当 mode 为 MODE_PATH 时,如果为 true,则该多边形会根据路径在采样点处的实际切线进行旋转。如果为 false,则会使用近似值,减少细分数,因而降低精确度。
当 mode 为 MODE_PATH 时,小于此角度的挤出将合并在一起以减少多边形数量。
当 mode 为 MODE_PATH 时,这是纹理坐标沿着路径的距离,以米为单位,将进行平铺。当设置为 0 时,纹理坐标将与几何体完全匹配,没有平铺。
PackedVector2Array polygon = PackedVector2Array(0, 0, 0, 1, 1, 1, 1, 0) 🔗
void set_polygon(value: PackedVector2Array)
PackedVector2Array get_polygon()
定义挤出的2D多边形的点阵列。这可以是具有3个或更多点的凸形或凹形多边形。多边形 必须 没有任何相交的边缘。否则,三角剖分将失败,不会生成网格。
注意: 如果仅定义1或2点, polygon 不会生成网格。
注意: 返回的数组被 复制 ,其任何更改都不会更新原始属性值。 看 PackedVector2Array 有关更多详细信息。
如果为 true,则对挤出应用平滑着色。
当 mode 为 MODE_SPIN,polygon 在挤出时旋转的总度数。