gpt4 book ai didi

c++ - 大于 GL_MAX_VIEWPORT_DIMS 的视口(viewport)的平铺渲染

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:20 24 4
gpt4 key购买 nike

我正在创建一个采用 OpenGL 场景图并使用 QGLFrameBufferObject 呈现结果的类。为了支持(几乎)无限大小,我使用平铺来提取许多小图像,这些小图像可以在渲染所有图 block 后组合成一个大图像。

我通过为整个图像设置一个视口(viewport) (glViewport) 然后使用 glScissor 一个接一个地“裁剪”图 block 来进行平铺。这适用于高达 GL_MAX_VIEWPORT_DIMS 的分辨率,但会导致超出此限制的空白图 block 。

我该如何解决这个问题?我需要改变相机还是有什么巧妙的技巧可以做到这一点?我正在使用 Coin/OpenInventor,因此也非常欢迎针对这些框架的任何提示。

最佳答案

更改相机并不像您想象的那么难,而且这是除了修改顶点着色器之外我能看到的唯一解决方案。

通过沿 x 轴和 y 轴缩放和平移投影矩阵,您可以轻松获得普通相机 View 的任何子区域。

对于给定的视口(viewport)最大值和最小值,其中完整视口(viewport)为 (-1, -1) 和 (1, 1),按 (max + min)/2 平移,按 (max - min) 缩放/2.

关于c++ - 大于 GL_MAX_VIEWPORT_DIMS 的视口(viewport)的平铺渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com