首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平铺渲染大于GL_MAX_VIEWPORT_DIMS的视口

平铺渲染大于GL_MAX_VIEWPORT_DIMS的视口
EN

Stack Overflow用户
提问于 2011-10-27 19:34:38
回答 3查看 1K关注 0票数 3

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

我通过为整个图像设置一个视口(glViewport),然后使用glScissor来“剪切”一块又一块的瓦片来做平铺。这对于分辨率高达GL_MAX_VIEWPORT_DIMS的图像效果很好,但会产生超出此限制的空平铺。

我应该如何处理这个问题?我需要改变相机吗,或者有什么巧妙的技巧可以做到这一点?我使用的是Coin/OpenInventor,所以也非常欢迎任何针对这些框架的技巧。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-28 02:17:56

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2011-10-27 22:01:43

票数 1
EN

Stack Overflow用户

发布于 2011-10-27 21:48:59

您可以尝试缩小整个世界,间接地使视口的最大值考虑更大的细节。或者基本上,您可以缩小图像和视口,以获得相同的视觉效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7915279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档