======PolyExtrude====== //Extrudes polygonal faces and edges.// \\ //Ver 19.5// ---- ====Overview==== 非常常用的“挤出”节点,主要的功能有: * 对面和边的挤出 * 使挤出的部分跟随指定的曲线 * 对挤出的部分进行编组 需要注意的是,在 polyextrude 中,面分为三个部分://front、back、side//。而这三个部分是针对于**挤出**的部分来说的: {{ :vfx:houdini:sop:poly_extrude_1-min.png?600 |}} 新版的 //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== |Interpolation|Rotating 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==== * [[https://vimeo.com/142470680|PolyExtrude | Curve Input]] * [[https://www.sidefx.com/docs/houdini/nodes/sop/polyextrude.html|Poly Extrude 2.0 geometry node]]