當我渲染一個場景時,我的iphone 4上有一個標準的60fps。然後,我在onGUI中繪製2個紋理,如下所示:onGUI紋理繪製吃到很多fps
void OnGUI()
{
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBack);
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureFront);
}
並且FPS下降到〜30fps。前面的圖像需要alpha,所以我把它設置爲RGBA 32bit,這個圖像顯然有3 MB,後面的圖像是1.5MB,兩者的分辨率都是1024x768。
有沒有辦法更好地處理這個問題?我想圖像採取最大10fps,因爲.. 30fps是荒謬的!
60fps下降到30fps可能是由於vsync。你的原始場景是<1/60渲染(從而允許60fps),但是如果渲染的附加成本將其推到剛好超過1/60,例如1/59秒,則下一個較低的整體幀速率不是59fps但30fps。 無論如何,你可能填充率有限。如果您的主UI紋理大部分是透明的,那麼您可能會更好地使用更多的幾何體 - 即將其切成更小的形狀/矩形並省略那些'空白'的矩形 –
@SimonF感謝您的回覆!這就是我所做的,我將原始圖像分解成許多其他較小的圖像。我需要實施橡皮擦,因此我的圖像上沒有很多空白區域。無論如何,我可以提高性能?有人建議我切換到GUITextures,因爲GUI.DrawTexture很慢。 – Alex