主角場景Shader效果 光影

2022-05-02 21:21:11 字數 1197 閱讀 5784

基本思路:unity有一種很容易實現光影效果的神器,那就是unity自帶的projector。

首先需要用到兩張貼圖:

一張投影需要的光圈貼圖,如下:

一張根據遠近距離顯示暗淡的貼圖(左至右,白漸變黑),如下:

主要用到兩個引數:_projector 和 _projectorclip

mul(_projectorclip, vertex)://用於計算投影位置和投影器之間的距離

1 shader "

xj/modeleffect/projectorlight

"5 _fallofftex ("

falloff

", 2d) = ""

{}6 _intensity ("

intensity

", float) = 1.07}

89subshader

11fog

1213

pass

16colormask rgb

17blend dstcolor one

18 offset -1, -1

1920

cgprogram

21#pragma vertex vert

22#pragma fragment frag

23 #include "

unitycg.cginc"24

25struct

v2f ;

3031

float4x4 _projector;

32float4x4 _projectorclip;

3334

v2f vert (float4 vertex : position)

3544

45fixed4 _color;

46sampler2d _shadowtex;

47sampler2d _fallofftex;

48fixed

_intensity;

4950

fixed4 frag (v2f i) : sv_target

5160

endcg61}

62}63 }

shader 體積光影

為了 投影出體積陰影,我們多用乙個pass來渲染網格。網格延伸的方向是燈光的方向。我們將頂點轉換到模型空間,然後計算和燈光的角度進行頂點的偏移。btw 因為根據頂點偏移,所以不能對斷開的頂點進行平滑的過度。通過點乘插值我們來決定顏色的插值。該shader不僅可以用來做體積投影,也可以在燈光下做體積光...

遊戲中的光影效果

好久沒有更新過博克了,春節的最後一天更新一下,寫一下關於遊戲中關於光影效果的方法,以及我的實現.關於遊戲中的光照,就目前來看大致兩種方式,一種是unreal的與渲染光照貼圖 shadowmap,另一種則是crysis的完全實時光影。效果上都不錯,下面來簡單分析一下。在討論之前先要明確一點,遊戲中的光...

shader 玻璃效果

玻璃效果主要是折射效果的計算和反射效果的計算。折射 1.利用grass pass對當前螢幕的渲染影象進行取樣 2.得到法線貼圖對折射的影響 3.對採集的螢幕影象進行關於法線方向上的扭曲和偏移,以模擬折射效果 反射 主要利用環境貼圖產生反射的殘影,並和主貼圖取樣結果混合 得到反射和折射的結果後,以乙個...