什麼是DrawCall?如何減少DrawCall

2021-10-04 04:30:51 字數 559 閱讀 4237

cpu呼叫影象程式設計介面。

在shader渲染流水線的應用階段,當cpu準備好場景資料,設定好渲染狀態,就會呼叫drawcall命令,開啟乙個渲染過程

cpu每次呼叫drawcall,都需要向gpu傳送許多資料、狀態,在傳送前cpu需要從硬碟讀取到視訊記憶體的資料、設定的渲染狀態以及呼叫drawcall命令操作。一旦cpu執行完應用階段,gpu即開始執行本次渲染。gpu渲染的速度比cpu提交命令的速度快的多。所以效能就會被cpu的提交速度所影響,如果drawcall數量過多,cpu就會在提交命令上花費大量時間

批處理:我們可以把眾多小的drawcall合併成乙個drawcall,減少cpu提交drawcall次數和時間,但並不是所有的情況都能合併。但是合併網格時也會比較消耗時間,因此批處理比較適合靜態的網格,專案中static被選中的物體

合併需要注意:

避免使用大量小的網格,若不可避免的話,可以考慮合併

避免使用過多的材質,相同的材質會方便我們合併

什麼事DrawCall?怎麼減少DrawCall?

什麼是drawcall?drawcall是對底層圖形繪製介面的呼叫命令gpu進行渲染,gpu和cpu並行工作,他們之間通過命令緩衝區連線,cpu像gpu傳送渲染命令,gpu接受並執行相對應的渲染命令。怎麼減少drawcall?提交很多小的drawcall會造成cpu的效能瓶頸,cpu的時間都浪費了在...

Unity優化之減少Drawcall

簡單來說,drawcall就是螢幕渲染一次所需要的開銷,為了較少消耗,提高效能,一般有以下幾種方法。一 批處理 1.動態批處理 如果動態物體共用著相同的材質,那麼unity會自動對這些物體進行批處理。動態批處理操作是自動完成的,並不需要你進行額外的操作,你可以在buildsetting中設定他。動態...

在Unity 5中如何減少Draw Call

本文為大家分享unity 5中標準著色器的簡單概念,並分析如何減少draw call unity 5中顯示為setpass calls,下文的draw call皆表示setpass calls 標準著色器是基於物理的著色器,可以正確渲染各種光照條件下的效果,支援跨平台,擁有可以啟用不同功能著色器的紋...