我在遇到麻烦缠绕我的头围绕如何这些工作。首先,在2D游戏的投影矩阵,应设置为邻与左,右,上,下匹配窗口,对不对?但是,当调整窗口大小,我应该只是改变glViewport,没有投影矩阵?和如何保持纵横比?

有人能解释一下这两个东西的目的,在2D游戏正投影,让我能更好地理解它?

感觉就像OpenGL的是做了很多无用的东西在2D设置。光栅化并且当所述图像是已经在那里计算片段,变换顶点坐标到NDC仅被转换返回到他们已经在由glViewport。

另外,怎么进来的旧的免费的OpenGL我们必须做我们自己的矩阵,而不是我们自己的计算方法,glViewport呢?

感谢。

有帮助吗?

解决方案

不要把你输入到GL以及它输出到。

您使用计算正交矩阵的参数是那些关联到你的输入的。投影矩阵的输出始终是[-1:1]×[-1:1]×[-1:1]立方体

视口转换是立方体的渲染目标的坐标。所以这就是通常你想改变什么,以配合新的窗口大小(当然,这和帧缓冲本身)。

是,GL做了很多无用的东西用于2D再现路径。这一切都...

后3D API

我会说,你不必构建矩阵做2D转换完成后,只要你的顶点着色器在我前面提到的立方体输出。如果你想写视口的右上角,你总是可以通过你的顶点直接为(0,0),(0,1),(1,0),(1,1)和简单的输出。

其他提示

不知道用什么语言你在使用OpenGL,但如果你正在寻找C ++这个网站,的http:// nehe.gamedev.net/ 几乎涵盖一切,并有教程,从简单的“Hello World”的一路攀升到基本的游戏和3D效果。

希望它帮助

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top