2013-02-26 53 views
2

我在某處讀到XNA框架將紋理上升到最接近兩種尺寸的功率,然後將其發送到VRAM,如果它是真正的工作方式,可能無法有效加載多個小(在我的情況下150×150)紋理,這實質上是浪費記憶與未使用的紋理數據產生的upscaling。所以有一些自動優化,或者我應該自己實現它,比如加載所有紋理,弄清楚「放大」的空間足夠大以容納其他紋理並將其放置在那裏,記住精靈位置,因此使用一個紋理而不是兩個(或更多)?兩種紋理和內存消耗優化的非功耗

對每個紋理手動執行此操作(將許多小精靈放置在單個紋理中)並不總是很方便,因爲以後很難使用它(本質上它變得不那麼重要),並不總是一個精靈將會在遊戲的某個級別中被需要,所以如果精靈在不同的組合中會更好,所以它應該自動完成。

回答

3

有工具可用來創建所謂的「精靈表」或「紋理地圖集」。 This XNA sample可以爲您做爲內容管道擴展的一部分。

請注意,紋理的填充只發生在不支持非冪次冪紋理的設備上。例如Windows Phone。現代GPU不會浪費RAM。但是,這仍然是一個有用的優化,可以讓您合併批量的精靈(詳情請參閱this answer)。