原創 從遊戲1秒 XX幀說起

2021-05-27 14:06:22 字數 1378 閱讀 7884

從遊戲1秒/xx幀說起

最近做了些遊戲動畫方面的程式工作,以前對這方面了解不是太多,做的同時也有了些自己的體會(這方面的牛x專家可以飄過了~~)。

希望對程式和美術之前的工作配合有幫助。

遊戲1秒/xx幀是什麼意思?

(這個不用說,地球人都知道。)不就是一秒鐘遊戲畫面重新整理的頻率嘛。

這個不是重點,重點在於想說的是在動畫表現力和程式效能之間的一些關係。

對於有超強硬體的發燒友來說,玩遊戲肯定是不限幀啦,多爽啊~。對於這種級別的,我們就不多說了。

針對中低端硬體配置的玩家來說,在遊戲設計時能從限幀後的表現力多考慮下,是絕對能夠普度眾生的 ^ ^

那下面我們來談談幀數對遊戲的影響。

* 為什麼限幀

一句話,在中低端的硬體配置上達到比較流暢的遊戲效果。(對於高階配置來說,機器總算時間喘口氣,不是也挺好莫~~)

遊戲動畫跟傳統動畫最大的區別在於:

傳統動畫幀數固定(1秒/24幀),就可以顯示平滑的動畫了。

但遊戲動畫是計算出來的,同時因為還要處理其他任務,所以幀數是可變的。

假設我們以動畫片的幀數做參考,理論上遊戲幀數至少要略高於24幀(重複,因為遊戲還要處理其他任務),一般來講30~40幀是足夠了。

這樣我們就制定了乙個遊戲幀數的基準線(實際幀數可能比這個低,也就是所謂的跳幀,當然表現力就隨之遞減了)。

*  影響限幀後畫面表現力的因素

這裡要區分下2d和3d遊戲。

先談談2d遊戲,遊戲動畫(這裡主要說人物動作)是由多張連續的來表現的。

從美術動作來講,當乙個動作調完以後,就匯出成序列。

從程式方面考慮,肯定是越省越好(但前提是不能大幅影響動作效果)。

這裡就出現了權衡,那麼幀數標準一般就由程式或是策劃提出來了。(用多少幀來表現這個動作的效果,也就是動作的流暢度)

動作方面唯一不變的,是動作時間。這個是絕對精確的。

那麼在乙個動作的持續時間段內,有多少幀,我把這個叫做動作解析度。(1秒/24幀,就是乙個動作解析度)

那麼限幀跟這個有什麼關係呢?

限幀,就是決定了每秒鐘動畫的最大解析度。那麼以1秒/24幀為例,乙個1秒的動作,最多需要24幀。

當然可以小於24幀, 這樣就減輕了遊戲資源和效能上的負擔。

對3d遊戲來說,由於動作是實時插值計算的,不存在動畫存為多張的問題(也就沒有2d遊戲資源上的負擔了)。所以限幀也就主要只是乙個效能上的考慮了。不過在3d遊戲方面,動作解析度有另外乙個用途,等於是控制了動作的更新頻率,這樣可以進一步對效能進行優化(這個主要是針對同屏超大規模的動作渲染來講的)。

以上為本人的觀點,感興趣的話,希望大家進一步討論這個話題~~

django後台載入從15秒優化到1秒的過程小記

之前django的後台管理的管理的專案很慢,開啟個頁面得花十幾秒甚至二十秒,經過不斷努力優化,終於優化到1秒左右了,很舒服。先定位慢的主要原因,首先有個表大概有200萬條資料,而且機器每天不停地寫入,增長很快。再利用diango debug 很方便檢視出哪些東西耗時,主要檢視各種耗時的sql語句。主...

查詢語句優化,從48秒到0 3秒

系統上線至今,資料量已經不知不覺上到500m,近8w記錄了。涉及資料庫操作的基本都是變得很慢了,用的人都會覺得躁火 然後把這個情況在群裡一貼,包括機器配置什麼的一說,馬上就有群友發話了,而且幫我確定了不是機器配置的問題,深圳 槍手 熱心人他的機器512記憶體過百w的資料裡也跑得飛快,甚至跟那些幾w塊...

查詢語句優化,從48秒到0 3秒

系統上線至今,資料量已經不知不覺上到500m,近8w記錄了。涉及資料庫操作的基本都是變得很慢了,用的人都會覺得躁火 然後把這個情況在群裡一貼,包括機器配置什麼的一說,馬上就有群友發話了,而且幫我確定了不是機器配置的問題,深圳 槍手 熱心人他的機器512記憶體過百w的資料裡也跑得飛快,甚至跟那些幾w塊...