尝试将 UV 坐标映射到球体时出现以下问题
这是我用来获取 UV 坐标的代码
glm::vec2 calcUV( glm::vec3 p)
{
p = glm::normalize(p);
const float PI = 3.1415926f;
float u = ((glm::atan(p.x, p.z) / PI) + 1.0f) * 0.5f;
float v = (asin(p.y) / PI) + 0.5f;
return glm::vec2(u, v);
}
这个问题在这个stackoverflow question中得到了很好的解释,虽然,我仍然不明白如何解决它。根据我一直在阅读的内容,我必须创建一对重复的顶点。有谁知道一些好的和有效的方法吗?