======PolyFrame====== Houdini SOP/Polygons 目录下系列节点,版本://ver 17.0//\\ ---- //PolyFrame// 会为 //Point// 或者 //Vertex// 生成一个**坐标框架属性**(//Coordinate Frame Attribute//)。这些属性包括 //Normal//,//Tangent//,//Bitangent//(切线与法线叉乘得到的向量) 等等向量。//PolyFrame// 是一个很有用的节点,我们可以通过该节点很方便的做如下的运算: * 设置法线(默认是 ''Y'' 轴的正方向) * 求曲线在某一点的切线 * 叉乘(对某点的法线和切线叉乘) 几个需要注意的地方: * 生成的 //Frame// 是标准化的,但并不一定垂直之前的向量。,需要通过 ''Make frame orthogonal'' 选项来强制该点的 //Tangent// 与 //Bitangent// 垂直。 * 使用 //Texture UV Gradient// 方式进行计算需要提供**贴图的坐标属性**(//Point// 或 //Vertex// 均可)。 ===PolyFrame常用参数=== * ''Style: First Edge'':默认该种算法下,//Normal// 是当前 //Point// 的 //Normal//, //Tangent// 的方向与当前两点之间的边方向一致,且重合;而 //Bitangent// 则与 //Normal// 和 //Tangent// 均垂直(也就是 //Normal// 与 //Tangent// 的叉乘)。 * ''Style:Two Edges'':默认该种算法下,//Normal// 是当前 //Point// 的 //Normal//,//Tangent// 的方向是根据连接当前点的两条边来计算的;确切的说,是使用和这两条边重合的向量进行了平均运算,然后将得出的结果作为 //Tangent// 的向量。//Bitangent// 仍然与 //Normal// 和 //Tangent// 垂直 。 \\
\\ \\ * ''Style:Centroid''://Normal// 是当前 //Point// 的 //Normal//,//Tangent// 是当前点向量与面中心向量进行差分(//Difference//)运算后得到的结果,//Bitangent// 与 //Normal// 和 //Tangent// 垂直 。 * ''Texture UV Gradient'':该算法使用 //Vertex// 来进行计算。//Normal// 为多边形表面的 //Normal//,//Tangent// 的方向与 ''u'' 坐标上增长的最快的属性方向一致,而 //Bitangent// 与 ''v'' 坐标上增长的最快的属性方向一致。 * ''Attribute Gradient'':该方法实际上是使用梯度(//Gradient//)作为属性来作为这三个向量的值。 * ''Make frame orthogonal'':启用的时候,上述三个向量会被强制两两垂直。