众所周知,OpenGL和许多图像/视频格式的像素数据来源不同。因此,当我们使用OpenGL绘制图像(尤其是来自相机的实时图像)时,我们有以下选项。
现在,我不想翻转图像,因为它不是免费的(处理成本),如果我们继续在CPU上使用图像,我们可能需要执行以下操作之一:
两者都使用额外的内存和处理能力。 (我知道第一种情况下的新缓冲区可以分配一次。它仍然消耗内存,并且在CPU上进行翻转。)
所以我理解我们应该使用上面的方法(2)并且非常小心正确地翻转纹理坐标。我一直听说这是更快的方法,然而,没有人接触的是当我们提供翻转的纹理坐标时GPU将访问纹理的速度有多快。如今,许多计算机(笔记本电脑)都集成了GPU,它使用系统内存。纹理查找速度不会受到纹理坐标的影响吗?
总之,我的问题归结为:纹理查找和过滤速度是否会根据GPU内存中纹理的实际布局而变化?我想知道这对于像nvidia这样的专用GPU以及像intels这样的集成GPU。
PS:这纯粹是出于教育目的,我意识到知道这个问题的答案对于应用程序性能而言并不重要,但拥有一些内在知识总是好的。我也很好奇:)答案 0 :(得分:3)
TL / DR答案是:不,不会有任何可察觉的速度变化。
GPU,无论其来源(NV,AMD,英特尔 - 制造商是谁),都是这样设计的。 Texture maps在现代3D图形中无处不在,所以如果GPU无法应对仿射纹理转换,那么它就是一个糟糕且无法销售的GPU。