What & How & Why

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
后一修订版两侧同时换到之后的修订记录
vfx:houdini:sop:node:manipulate:ray [2019/09/12 12:00] – ↷ 页面vfx:houdini:sop:manipulate:ray被移动至vfx:houdini:sop:node:manipulate:ray codingharevfx:houdini:sop:node:manipulate:ray [2023/01/20 07:20] – [常见应用] codinghare
行 1: 行 1:
 ======Ray====== ======Ray======
-<color #7092be>**//Ray// 的功能是投影一个 Surface 到另一个 Surface 上。**</color> +//Ray 的功能是投影一个 Surface 到另一个 Surface 上// 
-===== ===== +\\ //Ver 19.5// 
-\\ +---- 
-<wrap lo>//Ray// 工作原理及用途</wrap>+===工作原理及用途===
  
 //Ray// 的工作流程是这样的: //Ray// 的工作流程是这样的:
   - 从连接第一输入端的几何体开始   - 从连接第一输入端的几何体开始
-  - 通过该几何体上每一个点的**法线方向**+  - 按照该几何体上每一个点的**法线方向**
   - 将这些点往连接第二输入端的几何体移动   - 将这些点往连接第二输入端的几何体移动
   - 直到这些点“撞”上第二输入端的几何体后,移动结束。   - 直到这些点“撞”上第二输入端的几何体后,移动结束。
-这个节点可以模拟一块布铺到了不规则的表面上,物体与物体之间的包裹等等+==常见应== 
 +  * 普通列表项目模拟一块布铺到了不规则的表面上,物体与物体之间的包裹 
 +  * 使用 ''reverse rays'' 选项可以实现类似印记的效果(脚印,车轱辘印等等
 <WRAP center round info 100%> <WRAP center round info 100%>
 //Ray// 的理想应用条件是将小的面投影到大的面上。 //Ray// 的理想应用条件是将小的面投影到大的面上。
 </WRAP> </WRAP>
 \\ \\
-<wrap lo>Useful Parameters</wrap>+===常用参数===
 ^Parameters^Usage^ ^Parameters^Usage^
 |<color #900>Method://Project Rays//</color>| 源几何体上的 Points 按其法线方向投影,直到“撞上” 碰撞几何体(Intersecting)| |<color #900>Method://Project Rays//</color>| 源几何体上的 Points 按其法线方向投影,直到“撞上” 碰撞几何体(Intersecting)|
行 23: 行 25:
 |<color #900>Point Intersection Normal</color>|投影点在相交处得到新的法线值。注意这个法线的值是来自于 Surface Normal,而不是对应相交处点的法线。如果需要得到上述的法线值,直接使用 ''get point attribute'' 选项,指定 ''@N''。| |<color #900>Point Intersection Normal</color>|投影点在相交处得到新的法线值。注意这个法线的值是来自于 Surface Normal,而不是对应相交处点的法线。如果需要得到上述的法线值,直接使用 ''get point attribute'' 选项,指定 ''@N''。|
 |<color #900>Max Distance</color>| 选 MAX:投影只会找 MAX 值范围内的相交点。如果方法是 ''minimum distance'':直接删除掉所有 Min 范围外的点。| |<color #900>Max Distance</color>| 选 MAX:投影只会找 MAX 值范围内的相交点。如果方法是 ''minimum distance'':直接删除掉所有 Min 范围外的点。|
-**射线不止一条时如何计算投影的最终结果:**+==射线不止一条时如何计算投影的最终结果==
 |<color #900>Sample</color>| 指定 Ray 的数量。大于一条的数量会应用 ‘’Ray Combiner‘’ 中的算法进行计算。| |<color #900>Sample</color>| 指定 Ray 的数量。大于一条的数量会应用 ‘’Ray Combiner‘’ 中的算法进行计算。|
 |<color #900>RayCombiner</color>| 当射线不止一条时,如何计算投影的结果。其所有选项均会影响 ''Point Intersection Normal'' 的结果。| |<color #900>RayCombiner</color>| 当射线不止一条时,如何计算投影的结果。其所有选项均会影响 ''Point Intersection Normal'' 的结果。|
行 31: 行 33:
 |<color #900>RayCombiner://Longest ray//</color>| 以最**长**的射线长度作为最终的位移结果。| |<color #900>RayCombiner://Longest ray//</color>| 以最**长**的射线长度作为最终的位移结果。|
 |<color #900>Create Point Group</color>| 将相交的所有点编组,可以使用 ''Ray Hit Group '' 命名。| |<color #900>Create Point Group</color>| 将相交的所有点编组,可以使用 ''Ray Hit Group '' 命名。|
-**一系列处理相交区域属性的选项:**+==处理相交区域属性的选项==
 |<color #900>Prim Num Attribute</color>| 获得属性:相交所在位置的 Primitive 的**编号**。| |<color #900>Prim Num Attribute</color>| 获得属性:相交所在位置的 Primitive 的**编号**。|
 |<color #900>Prim UVW Attribute</color>| 获得属性:相交所在位置的**坐标**,以UV坐标的形式表现。| |<color #900>Prim UVW Attribute</color>| 获得属性:相交所在位置的**坐标**,以UV坐标的形式表现。|
 |<color #900>Get Point Attributes</color>| 以插值的方式获取碰撞区域的点的属性(需要哪些属性通过下面的选项 Point Attributes 来决定 )。因为 Ray Combiner 控制了插值的方法,因此也会影响到该属性最后的结果。//该属性没有被 normalized//。| |<color #900>Get Point Attributes</color>| 以插值的方式获取碰撞区域的点的属性(需要哪些属性通过下面的选项 Point Attributes 来决定 )。因为 Ray Combiner 控制了插值的方法,因此也会影响到该属性最后的结果。//该属性没有被 normalized//。|
 |<color #900>Prim Num Attribute</color>| 指定要获取的点的属性。指定的属性可以不存在,节点会自动创建;也可以与源几何体上的属性同名,会直接覆盖。当指定获取的属性是 ''@N'',那么 '' Point Intersection Normal'' 将不再生效,最终的法线结果会通过对碰撞区域的点法线值进行插值来得到。| |<color #900>Prim Num Attribute</color>| 指定要获取的点的属性。指定的属性可以不存在,节点会自动创建;也可以与源几何体上的属性同名,会直接覆盖。当指定获取的属性是 ''@N'',那么 '' Point Intersection Normal'' 将不再生效,最终的法线结果会通过对碰撞区域的点法线值进行插值来得到。|