發表文章

目前顯示的是有「Cocos」標籤的文章

Cocos/Chrome Frame Debugger by RenderDoc

圖片
由於有在Cocos引擎上撰寫shader功能,但是苦於Cocos並未有良好的抓幀輔助工具。 這篇就來紀錄一下使用 RenderDoc 來在 Chrome 抓幀的功能。 1.首先可以先到 官網 上下載版本盡量用舊版本,太新的版本無法網頁抓偵,這邊使用了 RenderDoc_1.20_64 版本。 2.開啟 RenderDoc先到 Tools->Setting 內找到 Enable process injection (restart required) 開啟它。 3.在 Launch Application 找到 Executable Path ,輸入 Cocos/Chrome執行路徑(chrome.exe),找到 Command-line Arguments ,輸入 --disable-gpu-sandbox --gpu-startup-dialog --disable-direct-composition 4.執行 Launch ,此時會跳出一個提示 Google Chrome Gpu 我們要記住上面的 pid 數字。此時先不要按下確定。  不要按下確定! 不要按下確定! 不要按下確定! 5.從 RenderDoc 左上角找到 File-> Inject into Process 執行,會出現一排數字列表,找到 pid 數字 的位置 Inject 執行,會跳到該頁面。(可以搜尋 Refresh) 6.最後回到 Google Chrome Gpu 按下確定。如果該頁面的 Capture Frame(s) Immediately 已顯示代表接成功。可以開始 Chrome 抓幀。 ps.第一次的可以先去設定系統變數,如果第一次執行需要設置環境變量 References: https://www.jianshu.com/p/85d186db6c2c https://zhuanlan.zhihu.com/p/640962813

Custom PBR Shader

圖片
  基於物理的渲染(Physically Based Rendering),指的是基於真實的物理原理的 BRDF(雙向反射分佈函數) 模型 所構成的渲染方式。 PBR 的出現其實是為了能夠統一美術的製作流程而產生的一種標準化的生產方式,減少美術之間由於因為能力或者設備環境造成的差異的一種標準化模式。 或許有人會問,PBR在引擎內不是都已經有內建的,那為何還要花時間自己做一套呢? 這是由於 Unity 的標準化材質(PBR)會因為想讓使用者方便使用,所以做了很多的 Shader 開關,無形中會增加很多增加的 變體 (Variants) ,導致容量增加。 而且能客製化也代表了能夠更掌握視覺與性能部分,不會被引擎內建的PBR各種限制。增加了往後專案的可擴充性以及彈性。 關於解釋 PBR 相關的文章相信網路上的資源也是很多了,這裡對原理就不再多說明。只關注於如何實踐這部分。 對於 PBR 的 BRDF 一般可以分為4個項目。 分別為 : 直接光的 Diffuse + 直接光的 Specular + 間接光的 Diffuse  + 間接光 Specular  以下則為客製化的展示效果,以及不同引擎內客製化PBR的效果。由於是自己實現的PBR,因此可以更確保在不同引擎內有極為接近的渲染效果。使用的模型則是以前做的模型重裝騎士。