2009-11-16 45 views
3

你能解释一下,为什么硬件加速需要很长一段时间的纹理是两次方?对于个人电脑,自从GeForce 6以来,我们实现了npot纹理,没有mips和简化的过滤。 OpenGL ES 2.0还支持npot纹理,而不使用mipmap等等。对此有什么硬件限制?只是简化算术?两种纹理的功率

回答

3

我想它与能够使用逐位左移操作有关,而不是乘法将(x,y)坐标转换为从纹理开始处的存储器偏移量。所以是的,从处理器的角度来看,简化算法。

+0

但硬件可能有与纹理关联的附加缓冲区:指向行的指针数组。访问将像两个解除引用一样快。这些所有建议都来自传统的CPU角度。这可能不适用于GPU。例如,x86的分支非常轻便,但GPU非常慢!换句话说,我想说纹理寻址可能与CPU寻址不同。例如,我听说GPU通过块缓存(对于前32x32像素),而不是像CPU那样行。最后,我认为两个derefs是相当快的。 – demi 2009-11-16 09:12:18

+0

两个derefs需要一个deref长达两倍的长度,所以这需要两倍的时间... – 2009-11-17 00:31:00

1

我猜测这是为了让mipmap生成更容易,因为它允许您将2x2像素从NxN一直平均到1x像素,直到1x1。

现在如果你不使用mipmapping并不重要,但只有一条规则会更容易,我认为mipmapping是更常见的用例。