What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
上一修订版两侧同时换到之后的修订记录
vfx:houdini:sop:copy [2019/02/21 09:28] – [Copy to points] codingharevfx:houdini:sop:node:copy [2021/11/11 08:07] codinghare
行 2: 行 2:
 Houdini SOP/Copy 目录下系列节点,版本://ver 16.0//\\ Houdini SOP/Copy 目录下系列节点,版本://ver 16.0//\\
  
-===== ===== +----
-Houdini 的复制大体上分为两部分: +
-  * //Copy//:主要是将目标 geo 拷贝到对应的 //Points// 上。 +
-  * //Point Instancing//:只发生在 //Render time// 的拷贝,也就是说该拷贝只有在渲染的时候才能看到结果,在 Viewer 里是看不见的。 +
-====变换优先级==== +
-变换的本质是矩阵的乘法。Houdini 中复制体的变换规则如下: +
- <code linenums:1> +
-Key:  +
-X = pivot matrix (translate by -pivot) // 重心的属性 +
-O = orient matrix //也就是 orient 属性 +
-S = scale matrix (scale * pscale)   +
-L = alignment matrix (*) //该矩阵由 法线、up 向量、复制体的速度决定。 +
-R = rot matrix //旋转矩阵 +
-T = trans matrix (trans + P) //位移 +
-M = transform matrix //最终的结果+
  
-(*) The alignment matrix (L) is defined by N or v and up.  
- 
-IF N exists AND up exists and isnt {0,0,0}:  
-   L = mlookatup(N,0,up) //mlookatup 是一个已知 up 计算矩阵的方法 
-ELSE IF N exists:  
-   L = dihedral({0,0,1},N) //dihedral 通过两个向量计算其夹角的变换矩阵(二面角公式) 
-ELSE IF v exists AND up exists and isnt {0,0,0}:  
-   L = mlookatup(v,0,up)  
-ELSE IF v exists:  
-   L = dihedral({0,0,1},v)  
- 
-IF transform exists: 
-   Transform = X*M*T 
-ELSE IF orient exists:  
-   Transform = X*S*(O*R)*T 
-ELSE:  
-   Transform = X*S*L*R*T 
-</code> 
 ====Copy to points==== ====Copy to points====
 这个节点非常适用于**拷贝重复的元素**,比如雪花、树、建筑等等。特别是拷贝一些东西到 particles 上的时候特别有用。 这个节点非常适用于**拷贝重复的元素**,比如雪花、树、建筑等等。特别是拷贝一些东西到 particles 上的时候特别有用。
行 45: 行 13:
 | <color #900>Transform Using Point Orientations</color>    |将复制体的方向旋转到拷贝到的点法线方向上。比如一个 box,面朝 X 轴。现在拷贝到一个 circle 上, circle 上的点法线都面向 Z 。如果点选这个选项,那么拷贝后所有 box 都会面朝  Z 了。 |  | <color #900>Transform Using Point Orientations</color>    |将复制体的方向旋转到拷贝到的点法线方向上。比如一个 box,面朝 X 轴。现在拷贝到一个 circle 上, circle 上的点法线都面向 Z 。如果点选这个选项,那么拷贝后所有 box 都会面朝  Z 了。 | 
 | <color #900>Attribute fields</color> |就是下面那个方框。这个区域用于组合拷贝和被拷贝物体的属性。通过这么一个类似于矩阵似的东西,我们可以根据要求得到复制体中的属性。 | | <color #900>Attribute fields</color> |就是下面那个方框。这个区域用于组合拷贝和被拷贝物体的属性。通过这么一个类似于矩阵似的东西,我们可以根据要求得到复制体中的属性。 |
-| <color #900>Set</color> |拷贝 template 中的属性。 |+| <color #900>Set</color> |拷贝 ''template'' 中的属性。 |
 | <color #900>Mult</color> |将 ''template'' 中的属性与对应的拷贝源相乘。 | | <color #900>Mult</color> |将 ''template'' 中的属性与对应的拷贝源相乘。 |
 | <color #900>Add / Sub</color> |目标同上,操作相加(减)。 | | <color #900>Add / Sub</color> |目标同上,操作相加(减)。 |