在几何体节点中,如何将实例与曲线和地平面对齐



给定这个简单的设置:

节点树

视口预览

如何对齐平面实例,使每个平面的y轴平行于曲线,平面的x轴平行于地平面(x和y轴(?

我已经尝试了各种与";将Eular与Vector对齐";节点,但一旦曲线不面向特定的轴,平面就会倾斜,并且失去与地平面的对齐。

有什么建议吗?

所以经过一些研究,我找到了自己问题的解决方案。我会把它贴出来,以防其他人发现。请注意,我不是数学家,可能有一个较短的解决方案(或者我不知道的特定节点可以执行一些步骤(。还要注意的是,这是一个适用于直线上实例的解决方案,这正是我的目标,我没有在曲线上测试这个设置,但我猜测它不会起作用。为此,您需要对每一点或类似的内容执行步骤3。

好的,我们开始:

  1. 在点节点上生成一条线上的实例。

  2. 根据直线的法线将Euler与向量节点对齐,在z轴上自动调整实例的方向。

  3. 计算直线上两个点之间的矢量(哪个点不重要,因为直线是直的,但减法的顺序重要!(。要计算从点1到点2的矢量,必须从点2减去点1(类似于:点2-点1(。

  4. 计算新矢量和地平面矢量[0,0,1]之间的角度。要做到这一点,请使用以下公式:

    θ = arccosine ( dot product/ ( length(v1) * length(v2) ) ).
    
  5. 计算90度的补角-θ

***将90转换为弧度的

  1. 根据结果值在x轴上旋转实例

节点树结果

如果有更短/更简单的解决方案,请告诉我。

最新更新