SDF弯曲模型函数问题
- 背景
- 问题是什么
- 怎么回事
- mesh
- sdf
- 怎么在mesh里计算
- 方案A
- 方案B
背景
sdf中,可以对position进行旋转xy或者yz或者xz达到弯曲的效果
问题是什么
我尝试建立了一个mesh,在vertexShader里使用这种弯曲手法,直接对mesh的点根据position.y进行旋转,旋转矩阵取的逆矩阵,发现结果和sdf的模型位置并对不上
怎么回事
我仔细思考了一下,
mesh
是空间一个点P,mat2=cos(p.y) -sin(p.y) sin(p.y) cos(p.y),
mat2*P得到的才是已知点P0,位于mesh表面,要反推P是多少,然后再拿到mat2的逆矩阵才对
sdf
IQ的图
是根据o+dir * t得到cur,此时刚刚好转到localspace后的cur.y作为mat2的y,构造的mat2 * P 和cur的距离小于0.001这种。也就是其实也不知道P在哪,刚刚好ray能经过,就不需要数值解P了
怎么在mesh里计算
方案A
直接拖进建模软件,掰弯到差不多位置即可
方案B
思考中