mk1*_*k12 6 opengl 2d viewport projection-matrix
我无法解决这些问题.首先,在2D游戏中,投影矩阵应设置为正交,左,右,上,下与窗口匹配,对吗?但是当窗口调整大小时,我应该只更改glViewport,而不是投影矩阵吗?我如何保持纵横比?
有人可以解释这两件事的目的,在二维正字游戏中,这样我可以更好地理解它吗?
感觉就像OpenGL在2D设置中做了很多无用的东西.当图像已经存在时,栅格化和计算片段,将顶点坐标转换为NDC仅转换回glViewport已经存在的位置.
另外,传统的免费OpenGL如何制作我们自己的矩阵,而不是我们自己的glViewport计算呢?
谢谢.
不要混淆您输入到GL的内容以及输出内容.
用于计算Ortho矩阵的参数是与输入相关的参数.投影矩阵的输出始终是[-1:1] x [-1:1] x [-1:1]立方体.
视口将该立方体转换为渲染目标坐标.所以这通常是你想要改变以匹配你的新窗口大小(嗯,那和帧缓冲本身).
是的,GL为2D渲染路径做了很多无用的事情.毕竟这是一个3D API ......
我将说完你不必构建矩阵进行2D变换,只要你的顶点着色器输出我前面提到的立方体.如果要编写视口的右上角,可以始终将顶点直接传递为(0,0)(0,1)(1,0)(1,1)并输出.
| 归档时间: |
|
| 查看次数: |
5089 次 |
| 最近记录: |