理論

请明月發表於2024-10-23

FPS:

FPS: 控制在30(一秒30幀,花費33.3ms)至60(一秒60幀,花費16.6ms)即可。

CPU:

  1. 遊戲邏輯處理(指令碼):
    遊戲狀態更新: 處理遊戲的基本邏輯,例如角色移動、碰撞檢測、遊戲規則執行等。
    輸入處理: 讀取和響應玩家的輸入(如鍵盤、滑鼠、觸控式螢幕等),更新遊戲狀態。
  2. 物理計算:
    物理引擎: 進行物理模擬,包括剛體運動、碰撞檢測和響應、重力和摩擦等計算。
    粒子系統: 處理粒子效果的生成和更新,如煙霧、火焰和其他視覺效果。
  3. 更新動畫:
    角色動畫: 更新角色的動畫狀態,根據輸入和遊戲邏輯計算當前動畫幀。
    混合和轉場: 處理動畫之間的混合和轉場,確保動作流暢自然。
  4. 渲染準備:
    剔除: 確定哪些物件在視野內並需要渲染,進行視錐剔除和層級剔除等。
    排序:從前到後、從後到前。
    繪製Draw:向GPU提交DrawCall、SetPassCall、Batches等
  5. 同步、等待:
    等待GPU計算完畢後。(如果CPU完成所有執行緒,等待GPU即為GPU瓶頸)

GPU:

  1. 圖形渲染:
    場景渲染: 將 3D 場景中的物件(如模型、光源、材質)渲染到螢幕上,包括處理每個幀的影像輸出。
    光照計算: 處理場景中的光源,並計算它們對物體的影響,包括實時光照、陰影和反射等效果。
  2. 紋理處理:
    紋理對映: 將紋理(影像)應用到 3D 模型的表面,以增加細節和真實感。
    紋理過濾: 在渲染過程中處理紋理的縮放和過濾,以確保在不同距離和角度下的視覺效果。
  3. 計算著色器:
    著色器執行: 執行頂點著色器、片段著色器(畫素著色器)和計算著色器,以實現自定義的圖形效果和後處理效果。
    後處理效果: 處理影像後期效果,如模糊、色彩校正、HDR(高動態範圍)和抗鋸齒等。

DrawCall:

  • 定義: Draw Call 是指 CPU 向 GPU 傳送繪製命令的過程。每個 Draw Call 通常對應於一組圖形資料(如頂點、索引)和相關的狀態(如著色器、材質)。
  • 組成: 一個 Draw Call 通常包括以下內容:
    • 頂點資料(Vertex Data)
    • 索引資料(Index Data)
    • 著色器程式(Shader Program)
    • 材質屬性(Material Properties)
    • 紋理和其他資源

SetPassCall:

定義: SetPassCall 是指在渲染過程中,GPU 設定渲染狀態的次數。這包括切換材質、著色器、紋理和其他渲染狀態。每個 SetPassCall 通常對應於一個需要設定的材質或著色器。
開銷: 每當需要更改渲染狀態時,都會觸發一個 SetPassCall。這意味著頻繁的狀態切換會導致效能下降,因為它們會引入額外的 CPU 和 GPU 之間的上下文切換。

視訊記憶體:

專門用於儲存圖形資料和紋理,供顯示卡(GPU)使用。
功能:
儲存影像、紋理、著色器和其他與圖形渲染相關的資料。
提供高頻寬以支援快速圖形渲染和顯示。
與 GPU 的關係:
GPU 直接使用視訊記憶體來存取圖形資料,視訊記憶體的容量和速度影響圖形效能和質量。

記憶體:

隨機訪問儲存器(Random Access Memory),用於臨時儲存計算機正在使用的資料和程式。
功能:
儲存作業系統、應用程式和當前使用的資料。
提供快速讀取和寫入資料的能力,影響系統的多工處理能力和響應速度。
與 CPU 的關係:
CPU 透過記憶體訪問資料和指令,記憶體的速度直接影響 CPU 的效能。