【发布时间】:2012-03-21 08:30:57
【问题描述】:
在 OpenGL 中绘制 2D 视图很简单:只需使用 GLOrtho。但据我所知,这总是会给你一个矩形视图。但是,如果您想要更复杂的视角怎么办?
假设我有一张比我的视口大得多的地图,我想将它绘制成一个透视梯形视图,其中底部(近)边比远边窄。但我仍然希望一切都是 2D 的。
如何将视口设置为以这种方式显示,理想情况下无需更改我的实际绘图代码?我希望能够设置一个新的视口,然后将所有内容绘制到相同的坐标并让 OpenGL 计算出透视图。
我正在寻找的效果类型的基本说明:最终幻想 4 的飞艇视图
有人知道怎么设置吗?假设只是为了提供一些数字,我的基本视口是 800x600,我希望梯形视图在底部显示相同的 800 像素,但在顶部显示 1200 像素。
【问题讨论】:
-
@K.G.:是的,我看过那篇文章。它说“伪透视”需要在每个扫描线的基础上创造性地使用矩阵(OpenGL 中不存在的概念)并且它没有说明需要什么样的矩阵数学.
-
当然可以!在“公式”标题下查看。 “使用模式 7 图形的平面纹理贴图是通过使用 2D 仿射变换将屏幕坐标转换为背景坐标生成的......”
-
@K.G.:我看到了。请看下一段,它解释了该技术的局限性,并明确指出其他事情,包括透视图,需要未指定的每扫描线操作技巧。
-
明白了。它没有回答你的问题,我只是觉得这是一个有趣的好奇心。顺便说一句,你看过Nicol Bolas' OpenGL tutorial series吗?