c++ - 这些哪个更快?

标签 c++ c opengl

我想知道使用窗口大小的纹理渲染窗口大小的单个四边形是否比使用双缓冲结合特定于平台的绘制方式将位图直接绘制到窗口更快窗口。

最佳答案

纹理的初始设置往往相对较慢,但一旦完成,绘图速度相当快 - 在图形内存可用的典型情况下,它会在初始过程中将纹理上传到显卡上的内存设置,之后,所有绘图都将从那里开始。同时,初始上传通常还会包含分辨率低至 1x1 的完整 mipmap,因此您上传的不仅仅是全分辨率纹理。

对于特定于平台的绘图,您通常不需要做太多的前期工作。如果位图只有部分可见,则仅上传可见部分。如果要缩放位图,它通常会在 CPU 上缩放并以当前比例将其发送到卡(并且永远不会上传任何类似于 mipmap 的内容)。 OTOH,几乎每次需要重新绘制某些内容时,最终都会重新发送新暴露区域的位图数据。不需要花太多时间就可以失去最小化一开始发送的内容的优势(通常是很小的)。

关于c++ - 这些哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580525/

相关文章:

opengl - 使用几何着色器进行实例化

c++ - std::generate 不适用于 std::vector

c++ - 在 .pro 文件 QT 中定义带有转义字符的字符串宏

c++ - 如何解决在 QT 上的 C++ 中对 vtable 的 undefined reference

C数组初始化改变看似无关的其他变量

c++ - GLFW 调用静态 key_callback 中的非静态类函数

C++ 悬挂指针和内存泄漏

c - 销毁静态互斥体和 rwlock 初始值设定项

c++ - ffmpeg:如何用 sws_scale() 替换 img_convert()

c++ - 在着色器中同时在同一纹理单元中使用不同的纹理类型