What & How & Why

Ray

Ray 的功能是投影一个 Surface 到另一个 Surface 上
Ver 19.5


工作原理及用途

Ray 的工作流程是这样的:

  1. 从连接第一输入端的几何体开始
  2. 按照该几何体上每一个点的法线方向
  3. 将这些点往连接第二输入端的几何体移动
  4. 直到这些点“撞”上第二输入端的几何体后,移动结束。
常见应用
  • 普通列表项目模拟一块布铺到了不规则的表面上,物体与物体之间的包裹
  • 使用 reverse rays 选项可以实现类似印记的效果(脚印,车轱辘印等等)
  • Ray 同样也适用于的投影。

Ray 的理想应用条件是将小的面投影到大的面上。

Ray 使用的法线可以自定义(使用 vector 选项)。

常用参数

ParametersUsage
Method:Project Rays 源几何体上的 Points 按其法线方向投影,直到“撞上” 碰撞几何体(Intersecting)
Method:Minimum Distance 整个投影会直接寻找距离源几何体最近的碰撞点进行投影。不使用法线,做包裹类型的应用时推荐。
Transform Points 碰撞几何体上与投影相交的点,都会移动相交的位置。这个选项勾选后,还有一些用于调整的参数可以使用:Scale:缩放,Lift:Offset,Bias:控制投影起点与相交位置的距离,可以用于控制投影的起始点
Intersect Farthest Surface改变相交的位置条件:从离碰撞几何体最近到最远,通常来说就是几何体的正面和背面。
Point Intersection Normal投影点在相交处得到新的法线值。注意这个法线的值是来自于 Surface Normal,而不是对应相交处点的法线。如果需要得到上述的法线值,直接使用 get point attribute 选项,指定 @N
verse Rays 向 normal 的反方向发射射线。
Max Distance 选 MAX:投影只会找 MAX 值范围内的相交点。如果方法是 minimum distance:直接删除掉所有 Min 范围外的点。
射线不止一条时如何计算投影的最终结果
Sample 指定 Ray 的数量。大于一条的数量会应用 ‘’Ray Combiner‘’ 中的算法进行计算。
RayCombiner 当射线不止一条时,如何计算投影的结果。其所有选项均会影响 Point Intersection Normal 的结果。
RayCombiner:Average ray统计所有与碰撞几何体有相交的 Rays,算出这些 Rays 与相交点之间的距离值,并将得到的结果作为最终投影点的位移。
RayCombiner:Median ray 按 ray 的长度为衡量标准,找出所有 ray 中的中间值,并作为最终的位移结果。
RayCombiner:Shortest ray 以最的射线长度作为最终的位移结果。
RayCombiner:Longest ray 以最的射线长度作为最终的位移结果。
Create Point Group 将相交的所有点编组,可以使用 Ray Hit Group 命名。
处理相交区域属性的选项
Prim Num Attribute 获得属性:相交所在位置的 Primitive 的编号
Prim UVW Attribute 获得属性:相交所在位置的坐标,以UV坐标的形式表现。
Get Point Attributes 以插值的方式获取碰撞区域的点的属性(需要哪些属性通过下面的选项 Point Attributes 来决定 )。因为 Ray Combiner 控制了插值的方法,因此也会影响到该属性最后的结果。该属性没有被 normalized
Prim Num Attribute 指定要获取的点的属性。指定的属性可以不存在,节点会自动创建;也可以与源几何体上的属性同名,会直接覆盖。当指定获取的属性是 @N,那么 Point Intersection Normal 将不再生效,最终的法线结果会通过对碰撞区域的点法线值进行插值来得到。