What & How & Why

PolyFrame

Houdini SOP/Polygons 目录下系列节点,版本:ver 17.0


PolyFrame 会为 Point 或者 Vertex 生成一个坐标框架属性Coordinate Frame Attribute)。这些属性包括 NormalTangentBitangent(切线与法线叉乘得到的向量) 等等向量。PolyFrame 是一个很有用的节点,我们可以通过该节点很方便的做如下的运算:

  • 设置法线(默认是 Y 轴的正方向)
  • 求曲线在某一点的切线
  • 叉乘(对某点的法线和切线叉乘)

几个需要注意的地方:

  • 生成的 Frame 是标准化的,但并不一定垂直之前的向量。,需要通过 Make frame orthogonal 选项来强制该点的 TangentBitangent 垂直。
  • 使用 Texture UV Gradient 方式进行计算需要提供贴图的坐标属性PointVertex 均可)。

PolyFrame常用参数

  • Style: First Edge:默认该种算法下,Normal 是当前 PointNormalTangent 的方向与当前两点之间的边方向一致,且重合;而 Bitangent 则与 NormalTangent 均垂直(也就是 NormalTangent 的叉乘)。
  • Style:Two Edges:默认该种算法下,Normal 是当前 PointNormalTangent 的方向是根据连接当前点的两条边来计算的;确切的说,是使用和这两条边重合的向量进行了平均运算,然后将得出的结果作为 Tangent 的向量。Bitangent 仍然与 NormalTangent 垂直 。


<html>

<img src=“/_media/vfx/houdini/sop/polyframe_edges1.svg” width=“750”/>

</html>

  • Style:CentroidNormal 是当前 PointNormalTangent 是当前点向量与面中心向量进行差分(Difference)运算后得到的结果,BitangentNormalTangent 垂直 。
  • Texture UV Gradient:该算法使用 Vertex 来进行计算。Normal 为多边形表面的 NormalTangent 的方向与 u 坐标上增长的最快的属性方向一致,而 Bitangentv 坐标上增长的最快的属性方向一致。
  • Attribute Gradient:该方法实际上是使用梯度(Gradient)作为属性来作为这三个向量的值。
  • Make frame orthogonal:启用的时候,上述三个向量会被强制两两垂直。