将纹理映射到球体 OpenGL ES
-
25-09-2019 - |
题
是的,我刚刚开始接触 OpenGL ES,老实说,这非常令人畏惧。
只是需要一点指导来为我当前的挑战指明正确的方向。
我有一些代码可以生成 3D 球体,该球体上映射有纹理(地球仪)。
我可以获取球体上的触摸坐标,并对其进行处理,但我的问题是如何向该球体添加另一个纹理?
我希望能够触摸地球仪,然后“突出显示”特定区域,所以我有“突出显示图像”,然后我想在触摸时将该图像映射到地球仪上。
该图像将在触摸点处环绕球体。
我是否正确地认为这是向已有纹理的球体添加另一个纹理的情况?正确的做法是什么?
我是否需要只创建要映射的 2D 纹理,还是需要 3D 纹理(有这样的东西吗?)
我需要重新纹理整个球体吗?
这一切都非常令人困惑,一些一般性的指示将受到高度赞赏。
提前谢谢了!
解决方案
如果您想要将高光图像应用到被触摸的点,那么,简而言之,您可以首先将高光图像应用到基础纹理(只需在单独的渲染过程中将一个渲染到另一个之上),然后使用复合图像作为纹理。
需要考虑的事项:
- 纹理坐标与几何体的坐标无关,因此如果您还没有这样做,您应该计算出触摸点和纹理上的点(坐标对)之间的映射
- 要使高光包裹在边缘上,您必须设置适当的纹理参数 - 在本例中,
GL_REPEAT
应该管用
至于你的其他问题,是的,还有 OpenGL 中的 3D 纹理;但是,我不认为它们与您的任务相关。
不隶属于 StackOverflow