【问题标题】:Emulating a perspective rectangle on 2D在 2D 上模拟透视矩形
【发布时间】:2012-07-16 15:51:54
【问题描述】:

所以,我目前正在开发某种益智游戏,但我遇到了一些我不知道如何解决的问题。

从下面的屏幕截图中可以看出,主正方形旁边的文本沿四边形的对角线扭曲。这是因为这不是 3D 环境的屏幕截图,而是 2D 环境,其中正方形被拉伸到看起来像是 3D 的方式。

我尝试过使用 3D 透视和改变深度,虽然它解决了扭曲边的问题,但我想知道是否可以在不使用 3D 透视的情况下解决这个问题。主要是因为当前的网格转换方案需要一段时间才能实现,并且将其转换为适用于 3D 空间的东西是额外的工作,可能是可以避免的。

我觉得这是不可避免的,但我很好奇是否有人知道解决方案。我目前正在使用 OpenGL ES 1。

【问题讨论】:

    标签: graphics opengl-es 3d


    【解决方案1】:

    可能不是您想要的答案,但我会选择 3d 转换,因为它不仅可以为您节省这种失真,而且可以简化许多其他事情,并让您有机会做出漂亮的效果。

    【讨论】:

      【解决方案2】:

      你在这个场景中缺少的是“perspective-correct interpolation”,它有点非线性,当你提供带有深度信息的坐标时会自动完成。

      也许可以用另一种方式模拟它(尽管您的选择有限,因为您没有可用的着色器),但它们的效率都可能低于使用 GPU 的专用功能。我建议您切换到使用 3D 坐标。

      【讨论】:

        【解决方案3】:

        其实,我刚刚找到了答案。原来有一个 Q 坐标,您可以使用它来处理梯形纹理失真:

        texture mapping a trapezoid with a square texture in OpenGL http://www.xyzw.us/~cass/qcoord/ http://hacksoflife.blogspot.com.au/2008/08/perspective-correct-texturing-in-opengl.html

        看起来它不像 3D 那样正确,但我想现在使用起来会更容易。

        【讨论】:

          猜你喜欢
          • 2013-02-17
          • 2014-03-12
          • 1970-01-01
          • 1970-01-01
          • 2010-12-20
          • 2016-05-25
          • 1970-01-01
          • 1970-01-01
          • 2011-07-11
          相关资源
          最近更新 更多