You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenGL中glfwCreateWindow与glViewport尺寸不一致时的渲染问题

关于glViewport与窗口尺寸不匹配时的OpenGL渲染效果

当glViewport的尺寸和GLFW创建的窗口尺寸不一致时,OpenGL会将标准化设备坐标(NDC)仅映射到glViewport指定的矩形区域,窗口其余区域会保持你初始化时设置的清除颜色。

针对你举的800×600窗口搭配glViewport(0, 0, 400, 300)的例子:

  • 三角形确实只会显示在窗口的左上1/4区域,和你预想的效果一致。
  • 原理是:OpenGL的NDC范围是[-1,1],这个坐标会被线性映射到glViewport定义的像素范围——NDC的(-1,-1)对应glViewport的(0,0),NDC的(1,1)对应glViewport的(400,300),所有渲染内容都会被限制在这个400×300的矩形内。
  • 窗口中超出这个矩形的区域不会被渲染内容覆盖,会保留glClear设置的默认颜色(通常是黑色)。

内容的提问来源于stack exchange,提问作者DR 2020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:22:01