gpt4 book ai didi

opengl - glDrawPixels 与纹理在 OpenGL 中绘制 2D 缓冲区

转载 作者:行者123 更新时间:2023-12-02 09:54:05 24 4
gpt4 key购买 nike

我有一个 2d 图形库,我想在 OpenGL 中使用它,以便能够混合 2d 和 3d 图形。最简单的方法似乎是使用 glDrawPixels,但是最近的许多教程和论坛建议使用带有命令 glTexSubImage2D 的纹理,然后用这样的纹理绘制一个正方形。

我的问题是:为什么?优势在哪里?它只是多了一步(内存缓冲区->纹理->视频缓冲区,而不是内存缓冲区->视频缓冲区)。

最佳答案

主要有两个原因:

  • glDrawPixels() 已弃用,并且在 OpenGL 核心配置文件或 OpenGL ES 中不可用。
  • 当多次绘制图像时,通过将图像数据存储在纹理中可以节省大量重复工作。

您很少需要只绘制一次图像。更常见的是,您将在每次重绘时重复绘制它。使用glDrawPixels(),您每次都必须将图像数据传递到OpenGL。如果将其存储在纹理中,则可以重复绘制它,并且OpenGL每次都可以重用相同的数据。

要绘制纹理的内容,您不一定要设置着色器、绘制四边形等。您可以使用glBlitFramebuffer()将纹理内容复制到显示器.

关于opengl - glDrawPixels 与纹理在 OpenGL 中绘制 2D 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36534933/

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