如何将纹理映射到八面体?

时间:2010-06-13 07:06:55

标签: 3d textures coords

我快要发疯了。我不能为我的生活弄清楚纹理坐标。我有一个由下面8个三角形定义的八面体。我想在它上面绘制地球的纹理。在此处查看纹理:http://img37.imageshack.us/f/earthmap1k.jpg/

我希望北极位于顶点,南极位于对位点,赤道环绕中心点。有人能告诉我每个点的UV来映射纹理吗?

 0,  0,  1
 1, -1,  0
 1,  1,  0

-1,  1,  0
 0,  0,  1
 1,  1,  0

 0,  0,  1
-1,  1,  0
-1, -1,  0

 1, -1,  0
 0,  0,  1
-1, -1,  0

 1, -1,  0
 0,  0, -1
 1,  1,  0

 0,  0, -1
-1,  1,  0
 1,  1,  0

 0,  0, -1
-1, -1,  0
-1,  1,  0

 0,  0, -1
 1, -1,  0
-1, -1,  0

2 个答案:

答案 0 :(得分:0)

考虑它的一个简单方法就是像这样展开你的八面体:

   /\     /\     /\     /\   
  /  \   /  \   /  \   /  \  
 /    \ /    \ /    \ /    \ 
X------X------X------X------X
 \    / \    / \    / \    / 
  \  /   \  /   \  /   \  /  
   \/     \/     \/     \/

然后,您可以将平面上的点映射到纹理坐标

答案 1 :(得分:0)

我不确定紫外线是什么意思,但是八面体的每个面都对应于地图的矩形区域。这将涉及拉伸和压缩,但没有切割,没有丢失的地方。

首先将地图划分为两个矩形,北部和南部。现在从北到南进行三次切割,将地图切割成8个相等的矩形。左上角的矩形包含北美的西半部,北太平洋的东半部和夏威夷。让我们将它映射到你描述的第一个三角形上。

如果我们在矩形中放置一个坐标系,从(0,0)(赤道中太平洋)到(1,0)(在Equador附近),最多(0,1)和{{1 (两个北极),然后我们可以将它映射到八面体,如下所示:

(1,1)

应该清楚其他面孔的相同方法。