如何根据 UV 坐标计算球体旋转
How to calculate sphere rotation based off of UV coordinates
我有一个纹理环绕着一个类似于维基百科上这张图片的球体。
https://upload.wikimedia.org/wikipedia/commons/0/04/UVMapping.png
我想要实现的是从纹理中获取 UV 坐标,比方说 (0.8,0.8),在上面的示例中,它大致位于俄罗斯附近。
使用此 UV 以某种方式计算旋转,我需要将其应用于球体以使该 UV 以球体为中心。
有人可以指出我需要计算这个数学方程式的正确方向吗?
编辑 - 有人指出我实际上是在寻找球体的旋转,因此 uv 以相机为中心。所以从 0,0,0 的旋转开始,我的相机指向 uv (0,0.5)
谢谢
这种特殊类型的球形映射具有非常方便的 属性 UV 坐标 线性 与相应的 极坐标 成正比] 坐标.
为方便起见,我们假设:
- UV
(0.5, 0.5)
对应格林威治子午线/赤道 - 即 (0° N, 0° E)
- 网格最初是 axis-aligned
- 纹理以球面坐标为中心
(θ, φ) = (π/2, 0)
- 即 X-axis
演示图:
使用边界条件:
U = 0 -> φ = -π
U = 1 -> φ = +π
V = 1 -> θ = 0
V = 0 -> θ = π
我们可以推导出所需的方程,以及球体的局部中对应的方向向量r
space:
假设球体有旋转矩阵 R
并且以 c
为中心,只需使用 lookAt
和:
- 排名
c + d * (R * r)
- 方向
-(R * r)
我有一个纹理环绕着一个类似于维基百科上这张图片的球体。
https://upload.wikimedia.org/wikipedia/commons/0/04/UVMapping.png
我想要实现的是从纹理中获取 UV 坐标,比方说 (0.8,0.8),在上面的示例中,它大致位于俄罗斯附近。
使用此 UV 以某种方式计算旋转,我需要将其应用于球体以使该 UV 以球体为中心。
有人可以指出我需要计算这个数学方程式的正确方向吗?
编辑 - 有人指出我实际上是在寻找球体的旋转,因此 uv 以相机为中心。所以从 0,0,0 的旋转开始,我的相机指向 uv (0,0.5)
谢谢
这种特殊类型的球形映射具有非常方便的 属性 UV 坐标 线性 与相应的 极坐标 成正比] 坐标.
为方便起见,我们假设:
- UV
(0.5, 0.5)
对应格林威治子午线/赤道 - 即(0° N, 0° E)
- 网格最初是 axis-aligned
- 纹理以球面坐标为中心
(θ, φ) = (π/2, 0)
- 即 X-axis
演示图:
使用边界条件:
U = 0 -> φ = -π
U = 1 -> φ = +π
V = 1 -> θ = 0
V = 0 -> θ = π
我们可以推导出所需的方程,以及球体的局部中对应的方向向量r
space:
假设球体有旋转矩阵 R
并且以 c
为中心,只需使用 lookAt
和:
- 排名
c + d * (R * r)
- 方向
-(R * r)