2014-07-18 53 views
1

映射紋理時使用mipmap可以提高渲染速度並減少僞像。最近,我寫了一個測試平臺來描述3D圖形的功耗,我發現當我使用mipmap技術時,應用程序會消耗更多的能量!這是合理的嗎? 而且,性能是否與映射到對象的映像大小有關係?是否使用mipmap技術繪製紋理可以節省能源?

回答

4

這聽起來令人驚訝,你會看到用mipmapping增加功耗。但有可能的解釋爲什麼在某些情況下會發生這種情況。

  • 一個方面是採樣紋理貼圖紋理需要讀取更多的紋元。對於三線濾波,您需要8個紋理像素,而對於非紋理貼圖紋理,您只需要4個像素就可以進行雙線性採樣。所以mipmapping需要兩次紋理讀取。

  • 紋理採樣單元必須爲三線性插值做更多的工作。在這種情況下,不確定一個典型的採樣單元是否會消耗更多的能量,但似乎是可能的。

  • 在不利的情況下,mipmapping實際上可能需要更多的內存帶寬。假設您對使用整個紋理的多邊形進行採樣,並且紋理略微縮小,因此LOD例如爲0.5。在這種情況下,您需要讀取0級和全部1級的全部數據。與非mipmapping案例中的讀取0級相比,這要多25%。

  • 很明顯,生成mipmap還會使用電源。但只要你這樣做了一次,然後多次使用這個紋理,它就不會有太大影響。

除了質量的考慮,總體思路當然是mipmapping會更有效率,因此使用更少的權力。在較高的LOD值(即更小的縮小比例)下,我肯定會期望這會起作用,因爲內存帶寬要求會更低。換句話說,緩存命中率會更高。

總之,我的理論是,如果您主要是在低LOD值下進行採樣,則mipmapping可能會使用更多的功率,而在高LOD值下,它將更具功率效率。

+0

但是,如果不使用三線(或各向異性)過濾,會怎麼樣? – flodin

+0

然後我的大部分可能的解釋都不適用。但是沒有至少三線過濾的mipmapping似乎不是很有用。你不會得到不好的文物嗎? –

+0

卡片切換LOD等級時,您可以獲得輕微的爆裂效果。但這是三線過濾變得足夠便宜之前完成的方式。 – flodin