2013-07-31 29 views
0

我有很多不同的格式RBG,RBGA和ALPHA和加載紋理需要更改1和4之間的GL_UNPACK_ALIGNMENT。這是否值得緩存?假設有一個變量「對齊」,並且只有在狀態不同時才調用glPixelStorei,而不是始終調用glPixelStorei。正在切換glPixelStorei一個緩慢的操作?

與紋理切換相同的想法。

+1

通常你想盡量減少狀態變化,但是你真的在你的主顯示循環中加載了很多紋理嗎?如果您只是在場景設置/加載期間調用它,我不會擔心'glPixelStorei'的性能。 – luke

+0

目前我正在渲染文本,需要時會上傳文本。只有第一次訪問字符會受到影響 - 不是每一幀。我可能會考慮動態加載/卸載紋理。 –

+1

如果沒有發生任何頻率,我會說現在擔心它太早了。有可能約100個其他東西佔用了更多的時間。 – luke

回答

1

好吧,我們來考慮一下。

每次更改GL_PACK_ALIGNMENT時,您也可以致電glTexSubImage。這個函數至多爲,從客戶端內存引發到OpenGL內部紋理內存的DMA操作。如果您不使用PBO,那麼這也意味着該功能必須將該客戶端內存複製到內部存儲器中才能執行DMA。即使你正在使用PBO,將不得不做複製操作進入該內存。

您是否誠實地認爲改變包裝對齊狀態將意味着任何東西旁邊的性能明智的操作?你認爲計算一個字形的位圖或者上傳位圖數據到一個紋理將比改變那個狀態更快?

別擔心。