Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
效能
前言
Godot遵循平衡的表現理念. 在效率表現中, 總是有需要權衡交易的東西, 可用性和靈活性. 一些實際的範例是:
有效地算繪大量的物體是很容易的, 但是當必須算繪一個大的場景時, 效率就會變得很低. 為了解決這個問題, 必須在算繪時加入可見性計算. 這使得算繪的效率降低, 但同時, 被算繪的對象也減少了. 因此, 整體的算繪效率得到了提高.
為每個需要算繪的物件配置每個材質的屬性也很慢. 為了解決這個問題, 物體被按材質分類以減少成本. 同時, 排序也是有成本的.
在3D物理中, 也有類似的情況發生. 處理大量物理物件的最佳演算法(如SAP)在插入/移除物件和射線傳輸方面都很慢. 允許更快的插入和移除以及射線傳輸的演算法, 將無法處理那麼多的活動物件.
而這樣的例子還有很多!遊戲引擎在本質上努力成為通用的. 平衡的演算法總是受到青睞, 而不是那些在某些情況下可能很快而在另一些情況下很慢的演算法, 或者那些快但更難使用的演算法.
Godot在這方面也不例外. 雖然它被設計成可以為不同的演算法交換後端, 但預設的後端將平衡和靈活性置於性能之上.
明確了這一點後, 本教學部分的目的是解釋如何從Godot中獲得最大的性能. 雖然這些教學可以按任何順序閱讀, 但最好從 一般最佳化技巧 開始.