What & How & Why

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
后一修订版两侧同时换到之后的修订记录
vfx:houdini:sop:node:manipulate:ray [2021/11/11 08:08] codingharevfx:houdini:sop:node:manipulate:ray [2023/01/20 07:22] – [常用参数] 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)|
行 22: 行 24:
 |<color #900>Intersect Farthest Surface</color>|改变相交的位置条件:从离碰撞几何体最近到最远,通常来说就是几何体的正面和背面。| |<color #900>Intersect Farthest Surface</color>|改变相交的位置条件:从离碰撞几何体最近到最远,通常来说就是几何体的正面和背面。|
 |<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>verse Rays</color>| 向 normal 的**反方向**发射射线。|
 |<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: 行 35:
 |<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'' 将不再生效,最终的法线结果会通过对碰撞区域的点法线值进行插值来得到。|