首页 > 后端开发 > C++ > 如何使用内部分辨率缩放在 OpenGL 中绘制 1px 线?

如何使用内部分辨率缩放在 OpenGL 中绘制 1px 线?

DDD
发布: 2024-11-04 00:25:30
原创
495 人浏览过

How to Draw 1px Lines in OpenGL with Internal Resolution Scaling?

在 OpenGL 中缩放 1px 线

问题:

内部分辨率为 320x240 的游戏缩放为显示更高分辨率(例如 960x720)。虽然像素化图形可以正确渲染,但使用 GL_LINE_LOOP 绘制的线条会放大到 3px,从而导致像素艺术不正确。

问题:

如何将线条绘制到内部 320x240 视图而不是 960x720 显示视图?

答案:

误解是存在“320x240 glOrtho 画布”。 OpenGL 仅渲染到实际窗口分辨率(例如 960x720)。缩放坐标仅变换原始端点,但不会影响光栅化。

要正确绘制 1px 线:

  1. 创建 320x240 纹理并将其附加到帧缓冲区对象 (FBO)。
  2. 绑定 FBO 并将视口设置为纹理大小 (320x240)。
  3. 使用 glOrtho(0, 320, 240, 0, 0, 1) 渲染到纹理。
  4. 解除 FBO 的绑定。
  5. 绑定纹理并将其绘制到窗口,将视口设置为窗口的大小(例如 960x720)。

通过渲染到离屏图像的实际分辨率,然后将其放大,可以实现适当的像素化线光栅化。

以上是如何使用内部分辨率缩放在 OpenGL 中绘制 1px 线?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板