我需要将 3D 对象投影到球体的表面上(嗯……就像转换阴影一样)。
AFAIR 这应该可以通过投影矩阵实现。
如果“阴影接收器”是一个平面,那么我的投影矩阵将是一个 3D 到 2D 平面的投影,但在这种情况下我的接收器是一个 3D 球面。
那么给定 sphere1(centerpoint,radius),sphere2(othercenter,otherradius) 和一个视点,我如何计算一个矩阵,将所有点从 sphere2 投影到 sphere1(就像转换阴影)。
最佳答案
你的意思是给定一个顶点 v
你想要下面的投影:
v'= 中心点 + (v - 中心点) * (半径/|v - 中心点|)
这对于投影矩阵是不可能的。不过,您可以在着色器中轻松完成。
关于math - 投影矩阵点到球面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4344572/