我正在嘗試創建一個平臺遊戲,並且我正在採取各種精靈模塊,並將它們拼合在一起以繪製關卡。這要求每一幀在屏幕上繪製大量的精靈。一臺好的電腦在處理所有精靈時沒有問題,但它開始影響老電腦的性能。由於這不是一個大型遊戲,我希望它能夠在幾乎任何一臺電腦上運行。現在,我使用下面的DirectX函數畫我的精靈:DirectX9 - 高效繪製精靈
D3DXVECTOR3 center(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 position(static_cast<float>(x), static_cast<float>(y), z);
(my LPD3DXSPRITE object)->Draw((sprite texture pointer), NULL, ¢er, &position, D3DCOLOR_ARGB(a, r, g, b));
有沒有在屏幕上繪製這些圖片更有效的方法?有沒有一種方法可以使用不太複雜的圖片文件(我現在正在使用普通的png)來加快速度?
總結:在DirectX中繪製精靈的性能最友好的方法是什麼?謝謝!
非常有幫助!謝謝!還有幾個問題。 交換紋理是什麼意思,它是如何減慢性能?就像我連續繪製三次圖像x,然後連續兩次圖像y一樣,然後再次繪製圖像x,每個圖像都處於不同的alpha級別......這是否會導致2次紋理交換? 將圖像組合成一個紋理映射圖像會使性能顯着提高嗎?如果是這樣,我會很樂意這樣做,但這需要很多工作,因爲我所有的小精靈都是單獨的圖像文件。 – Jeremy
非常好的主意。我會嘗試爲所有內容渲染相同的圖像,並查看其中的差別。再次感謝...非常非常有幫助! – Jeremy
當然,沒問題:) – dschaeffer