让精灵在OpenGLES中正确面对相机

时间:2009-02-04 17:13:07

标签: opengl-es

我有一个或多或少2D的游戏,但是用3D渲染。相机在2D游戏区域上方盘旋,从完全垂直方向倾斜约20度,为其提供一点3D视角。

我有一些需要渲染完美正方形的精灵,因为它们代表球形物体。我的第一种方法是在2D场上渲染四边形,使它们正确定位,但是精灵受到透视变形的影响并且它看起来并不总是圆形。

我目前的方法是渲染精灵时,我将摄像机移动到垂直于游戏区域(和精灵),这样可以保证四边形不会被视角扭曲。缺点是精灵的位置与相机倾斜时的位置略有不同。

那么,我怎样才能渲染出精灵:

  1. 完全正方形和相机面对,但不需要我移动相机来实现这一目标。
  2. 尺寸受相机距离影响(与点精灵不同)

3 个答案:

答案 0 :(得分:10)

您可以使用始终面向相机的多边形来实现您想要的效果。这被称为“广告牌”。 Here is一个很好的教程,似乎解释了所涉及的数学以及如何使用OpenGL实现它

答案 1 :(得分:0)

按照建议垂直于相机绘制四边形,但将它们放置在场地上方稍微一点。上面的距离应该是球体的半径。

答案 2 :(得分:0)

你仍然可以使用点精灵...使用glPointParameter()你可以给它深度衰减。我目前正在使用0.00025来深度衰减我正在开发的粒子系统。在第一代机器(我假设你正在为iphone或ipod触摸这样做),你将被困在64x64像素的最大精灵尺寸