我正在通过一系列挤压构建 3D 花网格(在 Unity 4 环境中工作)。对于每朵花,都有定义每个分支、花瓣、叶子等的样条线。在每个样条线周围都有一个沿该样条线挤出的形状。以及在样条曲线中的每个点定义形状的厚度的厚度曲线。
我正在尝试使用参数为这个网格设置动画(即看向太阳,随风弯曲)。
我已经为此工作了近两个月,我的算法归结为基本上重建花的“每一帧”,通过迭代每个样条点的形状,将其转换为当前空间并从中计算新的顶点位置,并行传输帧的一个版本。
对于每个顶点:
v = p + q * e * w
在哪里
p = point on the path
e = vertex position in the local space of shape being extruded
q = quaternion to transform into the local space of the p (by its direction towards next path point)
w = width at point p
我相信这是挤出模型的一小步。我基本上需要为模型中的每个顶点执行一次。
我达到了这对于我当前的场景来说太慢的地步。我需要有 5-6 朵花,总共有大约 60k 个顶点,我得出的结论是这是瓶颈。
我可以看到这是与骨骼动画类似的问题,其中每个关节都将控制挤出形状的横截面。这不是一个直接的问题,但我想知道是否有人可以详细说明我是否可以从骨骼动画中窃取一些技术来加速这个过程。从我目前的角度来看,我只是不知道如何避免每个顶点至少进行一次计算,在这种情况下,我只是选择每帧重建网格。