Re: [程式] 如何用OpenGL切割圖片?
看板GameDesign (遊戲設計)作者littleshan (我要加入劍道社!)時間18年前 (2007/02/20 21:55)推噓0(0推 0噓 0→)留言0則, 0人參與討論串4/6 (看更多)
※ 引述《zergaiur (aiur)》之銘言:
: ※ 引述《littleshan (我要加入劍道社!)》之銘言:
: : 把這張小圖畫出來的時間大致由以下幾個因素決定:
: : 1. 小圖在螢幕上的面積
: : 2. 你使用的 texture filter
: : 3. 繪圖硬體的能力 (texture unit 的數量與速度)
: : 和整張 texture 的大小並沒有很明顯的關係
: : 用 texture coordinate 來切圖是很有效也很常見的做法
: : 不過你這樣的寫法的確還有進步空間
: : 那就是每張小圖的 texture coordinate 都是固定的
: : 所以你沒必要每次 render 時都重新計算一次
: : 而且使用 glBegin() / glEnd() 畫東西的效率極差
: : 用 vertex array 會比較快,或是 vbo
: Vertex Array 或 vbo .... 這兩個我倒是沒聽過~
: 我只是寫2D的小遊戲...
: 如果要把程式改成這兩種方法不知道要怎麼改
先確認一下
因為我不太確定你現在遇到的問題是什麼
所以假設是你用目前的做法畫圖 但效率很差
原因可能有很多
1. 在每張 frame 之間,CPU 做了許多不必要的運算,比如說 AI
→ 有些東西不需要每個 frame 計算,有些東西只需要解答近似即可,
這些都可以節省 CPU 的運算時間。
2. texture 繪製速度過慢
→ 通常是硬體不夠快,不過現在的顯示卡在這方面的速度都足以應付
2D 遊戲的需求。
3. CPU 至 GPU 的傳輸過慢
→ 如果每個 frame 都要畫出上百萬個三角形,那麼把這些三角形資訊傳
到顯示卡的時間相當可觀。vbo 可以解決這個問題,不過在 2D 遊戲
中不可能用到這麼多的多邊形來畫人物,所以改用 vbo 並不會對效能
產生明顯的幫助。
如果有效能上的問題,先找出問題所在比較重要。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.54.89
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章