Questions tagged «viewport»

6
如果技术允许,为什么我不应该允许改变视野?
这不是针对开发游戏的问题,而更多是关于其背后的技术的问题。许多游戏新闻工作者和职业游戏玩家(在锦标赛和家庭娱乐领域中)经常对任何第一人称或第三人称游戏都应具有改变视野的方法感到震惊,我同意他们的观点。他们提到此问题的主要原因是,如果在过于受限的视野中进行比赛,则会有相当多的玩家出现晕车相关的头痛和眼疲劳。 我可以理解,由于预算限制,独立开发人员是否不允许这样做,因为他们需要为此增加对引擎的支持。但是,许多开发人员使用了知名的第三方引擎,例如Frostbite,Unity,Unreal或Cryengine,但没有提供更改视野的选项。 如果技术允许,为什么我不应该允许改变视野?
28 viewport 


1
如何防止视口拉伸/变形?
基本上,我想知道当视口/窗口大小改变时如何消除渲染图像的变形或拉伸。 下图举例说明了我正在谈论的变形/拉伸: 原始图像(方形窗口) 变形/拉伸图像(矩形窗口) 理想情况下,第二个图像应在不进行水平拉伸的情况下显示球体,并向用户显示更多场景,以说明更大的窗口大小。 如何才能做到这一点? 我正在使用OpenGL渲染图像,并且通过调用使用了透视投影: glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(60, window.width/window.height, 0.01f, 100.0f) 纵横比width/height与我遇到的所有文档/教程一致,因此我并不认为它是错误的。但是,我怀疑它正在影响拉伸问题。 经过思考 老实说,随着我对这个问题的思考越来越多,我相信解决方案涉及到弯曲(y方向上的视场)角度与纵横比之间的直接比例关系。 使用上面的图像作为参考,如果宽度增大(导致水平拉伸),则必须增加fovy角度以引起垂直拉伸,从而“固定”渲染图像的比例,这似乎是很合理的。 同样,宽度的减小要求减小凹角。 更新: 因此,在进一步研究之后,我决定更改设置视锥的方法,如下所示: gluPerspective(60 * (float)window.width/window.height, (float)window.width/window.height, 0.01f, 100.0f) 我的期望是正确的,这解决了比例问题。但是,它没有达到我想要的结果。当窗口宽度增加时,渲染的图像变小(但球体确实是圆形的)。相反,球体根本不应该改变大小。仅显示的场景量应更改。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.