Re: [程式] 請問Open GL的Texture 和 Surfase問題

看板GameDesign (遊戲設計)作者 (Qoo~)時間18年前 (2007/02/03 11:02), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串3/5 (看更多)
※ 引述《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

02/03 15:23, , 1F
即使目的是當 2D 圖層,texture 還是最有效率的方法
02/03 15:23, 1F

02/04 03:56, , 2F
嗯嗯...沒錯,就是這個問題,我就算用16*16來貼也一樣~
02/04 03:56, 2F
文章代碼(AID): #15m_j8Tr (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #15m_j8Tr (GameDesign)