使用D3DXCreateTextureFromFileEx加載一個10000*7000左右像素的圖片,應用記憶體飆到1G左后然后加載完了又跌回100M左右,這是什么情況啊=-=,做個32位的游戲,如果一個背景圖片能飆到1G記憶體也真是怕了
uj5u.com熱心網友回復:
10000*7000 也太大了吧uj5u.com熱心網友回復:
10000*7000/1024/1024=67M鑒于pitch可能大于像素寬,所以100M左右應該是正常的
記憶體飆到1G,如果排除你程式原因的話,可能是圖片格式問題,解壓程序占據臨時空間
一般也沒什么大問題,如果你想記憶體可控,可以先把圖片資料讀到檔案里,自行創建紋理,再鎖像素寫入
還有你這么大的紋理應該是靜態的吧,記憶體池最好別用managed,不要在記憶體里保留副本
uj5u.com熱心網友回復:
你算少了顏色通道呢。。。
10000*7000 * 32/1024/1024= 2.086162567138671875 GB
就算是3通道的也不少了
10000*7000 * 24/1024/1024= 1.56462192535400390625 GB
uj5u.com熱心網友回復:
一般這種大圖都是DXT格式,也就是dx中FMT_BC的,2-4通道,bpp4或8
即使通常的4通道32位你也算錯了,應該乘4不是32
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/42554.html
標籤:其它游戲引擎
上一篇:虛幻4游戲問題
