[Little Case]Reconstruct Tangent From Point Cloud
从事先bake好ST的点云中构造切线。说起来极其简单,自适应的根据点的数目生成一个类似于棋盘格的加速结构,随后在每个网格内部进行搜索。示意图如下,
因为标记为Best的那个样本最接近于vec2(1,0),也就是保证了一个方向上的连续性,计算结果为当前采样点(五角星表示)的dPds。相同的道理,我们也可以得到dPdt。当然,我们也可以在RSL中手工计算这两个分量。
在我的笔记本上T2250+2G的机器上跑了3秒,在E6550+2G的台式机上跑了1秒,速度还是可以的。生成的图如下,注意为了显示已经把向量数值缩放。
这样计算对ST分布有要求,就是不能颠倒物体方向,导致P不能在ST空间内连续,所以模型上肯定会有一块不会连续了。或者更加智能的,bake出ObjectID一样的玩意,这样就在物体的每个部分内独立计算切线了。