作者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