精華區beta GameDesign 關於我們 聯絡資訊
※ 引述《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