将纹理映射到球体OpenGL ES

时间:2010-09-27 09:24:57

标签: iphone opengl-es geometry texture-mapping

对,我刚刚进入OpenGL ES,如果我说实话,这是非常令人生畏的。

只需要一点指导就可以指出我当前挑战的正确方向。

我有一些产生3D球体的代码,它有一个贴在其上的纹理(A Globe)。

我可以在球体上获得触摸坐标,并对其进行处理,但我的问题是如何在该球体上添加另一种纹理?

我希望能够触摸地球,然后“突出显示”特定区域,因此我有“突出显示图像”,然后我想在触摸时将该图像映射到地球上。

此图像将在触摸点处环绕球体。

我认为这是在已经纹理化的球体中添加另一个纹理的情​​况吗?什么是正确的方法?

我是否需要创建要映射的2D纹理,还是需要3D纹理(有这样的东西吗?)

我是否需要对整个球体进行纹理处理?

这一切都非常令人困惑,一些一般的指针将受到高度赞赏。

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

如果您要将高亮图像应用于被触摸的点,那么,简而言之,您可以先将高光图像应用于基本纹理(只需在单独的渲染中将一个高亮显示在另一个上面)传递),然后使用复合图像作为您的纹理。

需要考虑的事项:

  • 纹理坐标与几何体的坐标无关,所以如果还没有,则应该在触摸点和纹理上的点(坐标对)之间进行映射
  • 要使突出显示包裹边缘,您必须设置适当的纹理参数 - 在这种情况下,GL_REPEAT应该正常工作

关于你的其他问题,是的,有3D textures in OpenGL;但是,我认为它们与你的任务无关。