我一直在四处寻找,但我无法找到答案,但我所做的就是创建一个立方体/盒子,相机将根据我所看到的位置进行挤压和拉伸。当屏幕完全正方形时,这似乎都解决了这个问题,但当我使用16:9时,它会伸展并压扁形状。有可能改变这个吗?
16:9
这是500px X 500px
作为一个侧面问题,是否可以改变背景的颜色"天空"?
答案 0 :(得分:0)
OpenGL使用立方体[-1,1] ^ 3来表示标准化设备坐标中的平截头体。视口变换在x和y方向上将其拉伸为[0,宽度]和[0,高度]。因此,要获得正确的输出宽高比,在将顶点转换为剪辑空间时,必须考虑视口尺寸。通常,这是投影矩阵的一部分。旧的固定函数gluPerspective()
函数具有直接为给定宽高比创建平截头体的参数。由于您没有显示任何代码,因此很难建议您实际应该更改的内容,但它应该非常简单,因为它可以归结为沿x和y的简单缩放操作。
对于旁边的问题:该颜色由清除颜色缓冲区时设置的值定义。您可以通过glClearColor()
设置颜色。