技術美術從頭學起(2)Unity Shader基礎

2021-10-05 07:56:32 字數 987 閱讀 9193

常見的流程為:

建立乙個材質

建立乙個unity shader,並把它賦給上一步中建立的材質

把材質賦給要渲染的物件

在材質面板中調整unity shader的屬性

新建的材質將使用unity內建的standard shader,這是乙個基於物理渲染的著色器

standard shader(標準光照模型)

unlit shader(產生不包含光照但包含霧效的基本頂點/片元著色器)

image effect shader(實現各種螢幕後處理效果的模板)

compute shader(利用gpu的並行性來進行一些與常規渲染流水線無關的計算)

shaderlab是unity提供的一種專門為unity shader服務的語言

properties(屬性)

在材質面板中能夠方便地調整各種材質屬性。

subshader

定義了一系列pass(定義了一次完整的渲染流程)以及rendersetup(設定顯示卡的各種狀態,例如是否開啟混合/深度測試,注意此處設定會應用到所有pass)和tags (告訴unity的渲染引擎,我希望怎樣以及何時渲染這個物件,這裡的標籤和pass中的標籤不一樣)

fallback

留一條退路,防止所有pass都不適用

表面著色器(su***ce shader)

是unity自己創造的一種著色器**型別,它會轉成對應的頂點/片元著色器,不寫在pass內,因為unity會在背後幫助我們去做這些事情

頂點/片元著色器

我們是用cg/hlsl語言來書寫頂點/片元著色器(vertex/fragment shader),需要寫在pass內

固定函式著色器(fixed function shader)

只能完成一些簡單的效果,適用於老版本,寫在pass內,需要使用shaderlab的語法。

我們可以在unity shader的匯入設定面板中單擊show generated code按鈕來檢視生成的頂點/片元著色器**

技術美術從頭學起(4)第乙個shader

該shader僅僅實現了物體的點對映到裁剪空間,並給了乙個純白色的值。upgrade note replaced mul unity matrix mvp,with unityobjecttoclippos shader unlit chapter5 shader position語義指明把模型的頂...

Android自定義從頭學起

在android開發中,想要實現絢麗的效果,僅僅依賴於系統提供的控制項是無法滿足的,於是便產生了自定義view。自定義view主要分為四類,第一種是通過繼承view,然後重寫view的ondraw方法,這種方式主要用於一些不規則的效果,第二種是繼承viewgroup派生特定的layout,這種方式主...

mysql從頭學起(一) 效能監控

我們知道,mysql伺服器接收到乙個請求資料的請求是要經歷以下幾個步驟的 1.聯結器 校驗使用者的資訊,控制使用者的連線。2.分析器 對客戶端發過來的sql進行詞法分析,語法分析。3.優化器 通過msql內建的優化器,優化sql語句,規定語句的執行流程,順帶提一句,優化器有兩種,基於規則的優化器 r...