1

绘制 2D 图形只需要两个坐标,默认情况下 Z 坐标为 0。是否可以使用该 Z 坐标来调整图形大小。假设对于较大的屏幕,我将 Z 设置为 0,但当屏幕较小(ldpi)时,我将 z 设置为 -5 个单位,整个图形适合屏幕。这是好习惯吗?甚至可以这样做吗?

4

4 回答 4

1

看起来您打算使用 z 坐标来放大或缩小,以便场景正确地适合屏幕。这是有效的一点,您可以通过这种方式“破解”投影矩阵来轻松做到这一点。我真正看到的唯一缺点是您需要为每个顶点再向管道发送一个坐标。只设置一个全局缩放因子会容易得多,它要么存储在模型视图投影矩阵中,要么传递给顶点着色器。

于 2012-12-24T06:22:24.440 回答
1

要将图形调整为屏幕大小(和旋转),您应该调整 opengl 视口大小。

不知道你到底打算用 z 坐标做什么,但这对我来说看起来不是一个好方法。

于 2012-12-23T11:35:18.233 回答
0

所以你想为你的 2D 应用程序添加一个“假”深度?

  • 使用正交投影(在大多数 2D 渲染世界中使用),它将完全没用。
  • 使用透视投影,当发生纹理缩小时,肯定会导致许多亚像素毛刺,或者在放大的情况下会变得模糊。

您可以调整精灵的大小,或者 - 更好的是 - 您可以创建一组不同大小的烘焙精灵。

于 2012-12-23T15:08:45.060 回答
0

我的猜测是(我的意思是不尊重)您对 2D 渲染知之甚少,并提出了这个想法。实际上并没有那么糟糕,这是一个很好的第一种方法,但该地区的情况非常好。你应该坚持标准的处理方式,除非你真的知道你在做什么。

标准方法是使用投影矩阵(或更高抽象级别的相机)。使用投影时,您可以定义“世界坐标”。投影将您的世界映射到 GL 视口(通常是孔屏幕),因此无论设备屏幕大小如何,您始终显示世界的同一部分。请注意,您必须处理拉伸。

我不知道我是否真的在回答你的问题。这不是你真正问的,而是我想你想问的。如果使用正交投影(这是 2D 的典型特征),您不应该为 z 分量而烦恼。

于 2012-12-23T20:19:45.513 回答