What & How & Why

PolyExtrude

Extrudes polygonal faces and edges.
Ver 19.5


Overview

非常常用的“挤出”节点,主要的功能有:

  • 对面和边的挤出
  • 使挤出的部分跟随指定的曲线
  • 对挤出的部分进行编组

需要注意的是,在 polyextrude 中,面分为三个部分:front、back、side。而这三个部分是针对于挤出的部分来说的:

新版的 PolyExtrude 不再支持 local variable / per-primitive/edge expressions。如有需要可以通过 local control 中的属性来控制。

挤出方向与法线

  • 如果挤出的是内部的边(共享边),那么使用 surface normal 作为方向
  • 如果是边缘边(非共享边),那么使用 surface direction 作为方向

Distance vs. transform

默认情况下,Poly extrude 有两种方式进行挤出:

  • 使用 Distance 挤出:沿着法线的方向进行挤出
  • 使用 Transform extruded front 进行挤出:这种方法实际上就是在对挤出面进行变换操作。该挤出分为两种情况:local 和 global,分别对应 local space / world space(也就是沿着 X,Y,Z 轴进行变换)。

Distance / twist 会对 Transform extruded front 造成影响,因此应该尽可能的只是用其中的一项。

Multiple extrusions

  • 有多个挤出存在的时候,所有相连的部分会被视作一个组(edges / faces)。
  • 可以通过改变 Divide into 模式至 Individual components 达到同样的效果。
  • 每个挤出的组均使用自身的 local space,除非强制设置了 global。

Splitting groups

在选定了挤出的区域之后,一般可以通过 Splitting group 来控制挤出的间隔。每个间隔之间的 faces / edges 会作为一整个挤出源来进行挤出(也就是以相邻的面或者边为一个整体单位)。

操作方法很简单,勾选好 split group,再点击右边的箭头,选中所有需要的间隔即可。

需要注意的是,如果挤出源是 face,那么需要 edge 作为间隔,反之亦然。

常用参数

Split Group 以 edge / face 作为间隔,间隔之间所有相连的元素作为一个整体进行挤出
Spine shape 可以通过选择 Curve From Second Input 来通过指定曲线挤出

Extrusion

Front transform 允许对已经挤出的面(front)进行变换操作,实际上就是单独对挤出部分应用 transform,连参数都是一样的。
Transform Space global 是针对所有的 front 做变换,变换方向参考坐标轴。
Output Geometry and Groups
Front / Back Boundary Group 对 front / back 和 side 的边界(border)边进行编组。Front 组显示为绿色,Back 组显示为红色。
Preserve Groups若挤出源所在 face / edge 属于任意组,那么由该源挤出的部分也将被添加到源所在的组中。
Insetting
Limit insetting保证挤出的 front 的质量(无退化 / 压缩 / 零大小等等问题)。
Use common limit关闭后允许 inset 将 front 收缩到零大小。
Normals

默认情况下,如果输入端自带发现属性,polyextrude 会自动将该属性添加到挤出的部分上。(经测试,需要点选 Add Vertex Normals 选项,之前自定义的 N 才能覆盖到挤出的 front 上。)

Cusp All Front / Back Boundary Edges对挤出的 front 边缘边进行锐化,忽略 cusp angle。

Spine Control

Shape Adjustment
InterpolationRotating frame 方法可能在处理带扭曲的挤出部分上可能更佳。
Spacing控制挤出部分上细分的分布。Uniform 是平均分布,Curvature Sensitive 指在弯曲的地方添加更多的细分。
External Spine
Reverse Direction翻转挤出的方向。
Front / Back Blend该属性控制挤出部分的末尾 / 开端 与挤出源之间的blend。
Thickness

该属性可以通过 Ramp / 属性控制挤出部分的大小,非常好用(同 twist)。有两点要注意:

  • Thickness Attribute 的值会与 Thickness scale 相乘,与 Thickness Ramp 相加。
  • Thickness Ramp 的初值不是 0 而是 0.5,超过该值是“放”,小于该值是“缩”。

Local Control

Local Control 中的 Scale 经常配合 attribute 一起使用,比如来自于 attribute paint 的数据。需要注意的是:

  • 源数据类型必须是 primitive attribute
  • 某些变形效果需要打开 Divide into - individual Elements

Local Control 允许创建一系列属性,这些属性可以对标准挤出方式的数值进行缩放(相乘)。

References