Shader入門精要讀書筆記8

2021-10-09 02:08:36 字數 1360 閱讀 8005

總的來說就是增加了光照的衰減、陰影計算,學習處理不同種類的光源(均基於前向渲染路徑)。

渲染路徑簡述:目前使用2種,前向渲染路徑和延遲渲染路徑。

渲染路徑的設定和使用:專案設定、攝像機設定、pass中使用lightmode標籤。

各種lightmode標籤名的用途:獲取正確的光照變數值。

前向渲染路徑原理:在pass中計算顏色緩衝區、深度緩衝區。

unity中對前向渲染路徑中光源的限制(光源中設定render mode)。

路徑中的2種pass:base pass和additional pass在不同型別光照效果實現中的分工。

設定lightmode後,用到的內建光照變數的列舉。

頂點照明渲染路徑:硬體要求低,效能高,效果差(很多效果只能逐頂點計算),是前向渲染的子集。

延遲渲染路徑:利用額外緩衝區g-buffer,緩解前向渲染中由於包含大量實時光源造成的效能瓶頸。

工作原理:分2個pass先後進行了片元淘汰(深度測試技術,通過的片元將其需要的資訊存入g-buffer)、讀取g-buffer並計算光照。

unity中的延遲渲染路徑。

unity支援的光照型別:平行光、點光源、聚光燈、面光源。

不同光源中的屬性:位置、方向、顏色、強度、衰減。

多個點光源(additional pass)+1個平行光(base pass)的shader實現,並配置點光源的render mode進行實驗對比(使用幀偵錯程式觀察渲染過程)。

光照衰減的原理和實現:衰減紋理取樣/數學公式計算(後者有誤差)。

陰影的原理和實現:使用額外的pass設定lightmode標籤為shadowcaster來計算陰影紋理紋理(將攝像機放置到光源位置後呼叫該pass),取樣該紋理後與之前的光照結果相乘。

螢幕空間的陰影對映技術和傳統的陰影對映技術對比。

不透明物體陰影實現(投射陰影):cast shadows和receive shadows設定,使用fallback語義計算陰影。

不透明物體陰影實現(接收陰影):在shader中使用autolight.cginc的shasow_coords、transfer_shadow、shadowattenuation實現。

unity_light_attenuation :將光照衰減因子和陰影結果使用乙個函式共同計算得到fixed atten。

半透明物體陰影實現:沿用在透明物體效果實現一節中的shader,加入了陰影因子fixed atten的計算,並配置不同的fallback。

實現時遇到的問題:alphablend方法實現的半透明物體在渲染時,一旦更改了材質的shader,再改回來也得不到原先的接收的陰影了,未解決。

本書提供的標準unity shader,分別使用了phong光照模型和blinn-phong光照模型,未加入透明效果實現。

Shader入門精要讀書筆記3

笛卡爾座標系 標準正交基 左 右手座標系 點 向量 向量的運算 點積叉積 矩陣 矩陣的運算 矩陣變換 線性變換 縮放 旋轉 仿射變換 合併了線性變換和平移變換 齊次座標 縮放矩陣 旋轉矩陣 zxy 平移矩陣 依次 座標空間 父空間 子空間 模型空間 物件空間 世界空間 觀察空間 相機空間 裁剪空間 ...

Shader入門精要讀書筆記4

unity版本號和環境 建立場景,shader 材質 球體 簡單shader中每一行 的作用 使用語義 例如sv position 作為輸入輸出 sv position sv target 頂點 片元著色器輸出 結構體的引入,並用於著色器間資訊傳遞 頂點著色器插值後送給片元著色器 propertie...

Shader入門精要讀書筆記5

漸入佳境 光照 光源 方向,輻射度 吸收 散射 散射 折射 投射 反射 高光反射 specular 反射 漫反射 diffuse 折射 吸收 反射 出射度 輻射度 光照模型 brdf 標準光照模型 亦可稱為phong光照模型 blinn phong光照模型 標準光照模型 4部分 以下總結均基於此模型...