2017-01-01 113 views
0

我正在嘗試使用cocos2dx來恢復舊遊戲。 我所做的是讀取遺留二進制文件並提取位圖文件,其中有68k位圖文件。 因此,現在我已經讀取文件,解壓縮字節,將位圖從RGB8轉換爲RGBA8888,然後生成位圖作爲紋理並創建精靈。 但由於它是一個等距遊戲,所以有一個地圖,並由許多瓦片組成。因此,使用不同紋理(每個位圖作爲單獨紋理)繪製地圖會花費大量的glcalls。我所做的就是試圖重用紋理,並通過本地zorder對它們進行分組,以嘗試使用自動批處理。如何提高位圖紋理渲染在cocos2dx中的性能

對於角色的動畫,現在我已經創建了127個單獨的位圖紋理,並嘗試在它上面逐個創建精靈框架。

所有的GL繪製調用減少從800到50,但unluckyly的FPS仍然太慢作品後(下降到10-20,它應該是60)

該試驗在iPhone上運行模擬器,雖然它沒有任何GPU,但這仍然是一個正常的FPS?(有近13k的vert)

並且FPS受到我角色動畫紋理數量的影響嗎?

我應該嘗試在運行時打包紋理嗎?例如結合紋理以在運行時在內存中創建更大的紋理並通過偏移量加載它們。

+0

你的真正意思是什麼?它對FPS有什麼影響?你還每個幀都調用glTexImage2D()嗎? – Sung

+0

這是由cocos2dx調試的消息,所以我明白應該是gl繪製調用?而且fps應該與gl繪製電話相關或不相關?而且我還沒有真正直接使用opengl調用,所以我把它全部留給了cocos2dx引擎來完成。那麼你是否建議我應該進入opengl例程而不是使用cocos2dx? –

+0

你真的知道你的瓶頸是什麼嗎? 50個繪製調用和13K個vert都不算什麼,所以聽起來並不像OpenGL層實際上是你的問題。你有沒有嘗試分析你的應用程序?您使用的是什麼設備GPU? – solidpixel

回答

1

甚至不要看模擬器上的性能。這是完全不相關的和非代表性的。

目前所有的iOS設備都可以處理50個繪製調用和13k個垂直線,除非您還有其他一些瓶頸(您只能通過設備運行才能找到),那麼您肯定會以60fps的速度運行。