是的,我刚刚开始接触 OpenGL ES,老实说,这非常令人畏惧。

只是需要一点指导来为我当前的挑战指明正确的方向。

我有一些代码可以生成 3D 球体,该球体上映射有纹理(地球仪)。

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

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

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

我是否正确地认为这是向已有纹理的球体添加另一个纹理的情​​况?正确的做法是什么?

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

我需要重新纹理整个球体吗?

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

提前谢谢了!

有帮助吗?

解决方案

如果您想要将高光图像应用到被触摸的点,那么,简而言之,您可以首先将高光图像应用到基础纹理(只需在单独的渲染过程中将一个渲染到另一个之上),然后使用复合图像作为纹理。

需要考虑的事项:

  • 纹理坐标与几何体的坐标无关,因此如果您还没有这样做,您应该计算出触摸点和纹理上的点(坐标对)之间的映射
  • 要使高光包裹在边缘上,您必须设置适当的纹理参数 - 在本例中, GL_REPEAT 应该管用

至于你的其他问题,是的,还有 OpenGL 中的 3D 纹理;但是,我不认为它们与您的任务相关。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top