6

我有一个或多或少是 2D 的游戏,但以 3D 呈现。摄像机悬停在 2D 游戏场上方,从完全垂直的角度倾斜约 20 度,以提供一点 3D 视角。

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

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

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

  1. 完美的方形和面向相机,但不需要我移动相机来实现这一点。
  2. 具有受与相机距离影响的大小(与点精灵不同)
4

3 回答 3

10

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

于 2009-02-04T18:14:46.720 回答
0

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

于 2009-02-04T17:49:47.423 回答
0

你仍然可以使用点精灵...使用 glPointParameter() 你可以给它深度衰减。我目前正在使用 0.00025 作为我正在开发的粒子系统的深度衰减。不利的一面是,在第一代机器上(我假设您正在为 iphone 或 ipod touch 执行此操作)您将被困在 64x64 像素的最大精灵大小

于 2009-10-04T04:01:32.410 回答