作者ppaass (Qoo~)
看板GameDesign
標題Re: [程式] 請問Open GL的Texture 和 Surfase問題
時間Sat Feb 3 11:02:31 2007
※ 引述《elfria (elfria)》之銘言:
: 我在寫小遊戲的時候,是2D遊戲
: 發現
: 我電腦在螢幕上show一張Texture效率滿低的
: 比方說800*600的視窗..Show 5張圖層256*256...FPS就降下來
: 不知道,有什麼方法可以克服
: 或者說~~~如果用Surface的話,有什麼缺點?
texture mapping 本來就是 performance killer,如果你是拿 texture 來做 2D
用途的話那真的是很划不來,除此之外,texture mapping 所花的時間是正比於它
在畫面上的面積,而不是原始圖檔的尺寸,所以你只要在畫面上畫得很大一塊,就
算你用 16x16 的貼圖影像也差不多。
在你這個 case,如果你如果非要用 texture mapping 又想盡量提昇效率,有三件
事可以自我檢測一下:
1. texture 的取樣方式(sampling or filter)是否從 linear 換為 nearest?當然
這在小圖放大的時候會產生鋸齒,也可以順便檢查 anti-aliasing 是否關閉。
2. 是否在每個 frame 期間反覆地建立或更新 texture? 因為現在大部份顯示卡都把
texture 資料放在卡上的記憶體,所以你如果每個畫面都 glTexImage2D() 或是
glTexSubImage2D() 的話,程式每個 frame 都將 texture 影像從主機板上 RAM
傳送到顯示卡去。
3. 剩下最後一個方法就是,不要每個畫面都把 color buffer 全部清掉重畫,只重
畫需要更新的部份。
--
Shu-Kai Yang's Freeware and Tutorials
*
http://shukaiyang.myweb.hinet.net/indextc.htm
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.124.100.72
1F:推 littleshan:即使目的是當 2D 圖層,texture 還是最有效率的方法 02/03 15:23
2F:推 elfria:嗯嗯...沒錯,就是這個問題,我就算用16*16來貼也一樣~ 02/04 03:56