這是最簡單最基礎的pbs的效果
簡單解析一下**:
(1)顏色是守恆的: 此處的守恆是 單純的顏色值(diffusecolor 和 specualrcolor),並沒有乘以 漫反射係數 或高光係數
(2) 而shader執行到最後的結果 diffusecolor * (diffuse係數) + specularcolor *(specualr係數)
(3)無論是何種pbr的模型,都是基於上面相同的原則,區別在於計算的細節不同計算的方式不同
下面的**是遵循上面原則,最基本的實現方式:
shader "unlit/ice"
_speculartint
(" speculartint"
,color)=(
0.5,
0.5,
0.5)
_smoothness
(" smoothness"
,range(0
,1))
=0.5
_metallic
("metallic"
,range(0
,1))
=0.5
} subshader
lod100
pass
;struct v2f
; sampler2d _maintex;
float4 _maintex_st;
float _metallic;
float3 _speculartint;
float _smoothness;
fixed4 frag (v2f i)
: sv_target
/// 使用unity 內建的函式版本
// fixed4 frag (v2f i) : sv_target
// endcg}}}
對Unity3D的PBR的初步研究
最近經常聽到pbr physically based rendering 技術的討論,我一開始其實比較抗拒的。畢竟對於畫面和執行效率,我一直偏向於後者。不過最近玩了一些比較優秀的遊戲作品,比如 鎮魔曲 等,發現好的畫面還是非常吸引人的,於是開始研究一下pbr技術的用法。傳統的貼圖渲染技術,一般是使用...
Unity的基礎用法
unity的基礎用法 1 建立乙個unitycontainer物件。2 通過unitycontainer物件的registertype方法來註冊物件與物件之間的關係。3 通過unitycontainer物件的resolve方法來獲取指定物件關聯的物件。using system using syste...
Unity中的顏色
rgb是我們接觸最多的顏色空間,由三個通道表示一幅影象,分別為紅色 r 綠色 g 和藍色 b 這三種顏色的不同組合可以形成幾乎所有的顏色,但是任何顏色都與這三個分量有關,所以連續變換顏色時並不直觀,想對影象的顏色進行調整需要更改這三個分量才行,而自然環境下獲取的影象容易受自然光照 遮擋和陰影等情況的...