2

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

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

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

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

这将是最好的策略/益智游戏 evar!

4

3 回答 3

2

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

于 2012-07-15T14:10:08.183 回答
2

您在此场景中缺少的是“透视正确插值”,它略微非线性,并且在您提供具有深度信息的坐标时自动完成。

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

于 2012-07-15T14:12:56.900 回答
0

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

在 OpenGL 中用方形纹理映射梯形的纹理 http://www.xyzw.us/~cass/qcoord/ http://hacksoflife.blogspot.com.au/2008/08/perspective-correct-texturing-in-opengl .html

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

于 2012-07-16T07:51:54.680 回答