opengl - 在 OpenGL 中渲染裁剪的图像

标签 opengl viewport frustum

我想用分辨率非常高(比如 20,000 x 20,000 像素)的特定相机参数渲染场景,但实际上我只对图像平面的 640x480 小部分感兴趣。

我不一定只想放大该部分并改变相机指向的位置。我希望相机保持指向同一方向,我只想渲染场景的一小部分。

我附上了一张图片来尝试展示我在说什么:
Uploaded image

关于如何正确设置带有 OpenGL 调用的相机矩阵的任何提示?

最佳答案

您需要做的就是选择不同的投影矩阵。 glFrustum 的旧引用页描述如何创建这样的矩阵:

projection matrix

左侧、右侧、顶部和底部参数指定视锥体的边缘(如图片所示)。要制作“正常”投影矩阵,left = -right,top = -bottom。将它们设置为不同的值可以限制您的 View 。例如,如果您设置 left = 0 和 top = 0 而同时保留 right 和 bottom 不变,那么您将获得类似于图片中红色区域的投影。

如果您弄清楚当前使用的值,那么调整它们以产生您想要的结果应该很简单。

关于opengl - 在 OpenGL 中渲染裁剪的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108414/

相关文章:

c# - 如何检测相机 FOV 内的所有游戏对象? Unity3D

java - 没有 glGet* 调用的 opengl 截锥体剔除

c++ - 判断点是否在截锥体内

c++ - 为什么 Sprite 不在 OpenGL 中渲染?

c++ - OpenGL和OOP程序结构

java - 渲染游戏世界小于屏幕宽度和高度

安卓 ICS : Default browser not respecting <meta> viewport tags

javascript - Canvas 视口(viewport)

c++ - 具有缩放拉伸(stretch)纵横比的 glm 旋转

image - Opengl 纹理和字节顺序