UnityShader 常用效果內外發光 描邊

2021-10-08 15:09:15 字數 2879 閱讀 3377

這篇部落格記錄一下常用的幾種效果:內發光、外發光以及描邊的幾種實現方法

一般實現方法就是使用empricial菲涅爾近似公式來實現:

;缺點 缺點

全部**如下

shader "custom/effect/outline"

subshader

lod 200

pass

;struct v2f

; half4 _outlinecolor;

float _outlinewidth;

fixed4 frag (v2f i)

: sv_target

endcg

}pass

;struct v2f

; half4 _color;

fixed4 frag (v2f i)

: sv_target

endcg}}}

缺點

全部**如下

shader "custom/postprocess/edgedetection"

_edgecolor (

"edgecolor"

, color)=(

1,0,

0,1)

_backgroundcolor (

"backgroundcolor"

, color)=(

1,1,

1,1)

_edgeonly (

"edge only"

,range(0

,1))

=0.5

_edgewidth (

"edge width"

,range(0

,1))

=1} subshader ;

sampler2d _maintex;

float2 _maintex_texelsize;

fixed4 _edgecolor;

fixed4 _backgroundcolor;

fixed _edgeonly;

fixed _edgewidth;

fixed luminance

(fixed4 color)

half sobel

(v2f i)

;const half gy[9]

=;half texcolor;

half edgex =0;

half edgey =0;

for(

int it =

0; it <

9; it++

) half edge =

lerp(0

,abs

(edgex)

+abs

(edgey)

, _edgewidth)

;return edge;

} fixed4 frag (v2f i)

: sv_target

endcg}}}

全部**如下

shader "custom/effect/shine_in"

subshader

lod 200

pass

;struct v2f

; half4 _shinecolor;

float _shinewidth;

float _shinefeather;

fixed4 frag (v2f i)

: sv_target

endcg

}pass

;struct v2f

; half4 _color;

fixed4 frag (v2f i)

: sv_target

endcg}}}

unity Shader 扭曲效果

所謂扭曲就是擾動乙個物體的uv座標,表現出來就是乙個擾動效果,如火焰扭曲空氣,和水波對水底的影響。1.在shader 中我們需要一張當前渲染的紋理 2.給乙個物體渲染並使用當前紋理,用螢幕座標作為uv座標加上乙個擾動值 1.unity提供了抓取的pass grabpass unity官網介紹 每次遇...

Unity Shader透明效果

unity中通常使用2種方法來實現透明效果 第一種是使用透明度測試 alpha test 這種方法無法得到真正的半透明效果 另一種是透明度混合 alpha blending 透明度測試和透明度混合的基本原理如下 透明度測試 只要乙個片元的透明度不滿足條件 通常是小於某個閾值 那麼它對應的片元就會被捨...

unity Shader透明效果

一 深度緩衝 對於不透明物體,不需要考慮它們的渲染順序,因為強大的深度緩衝 z buffer 在實時渲染中,深度緩衝是用於解決可見性問題的,基本思想 根據深度緩衝中的值來判斷該片遠距離攝像機的距離。一 透明度 當開啟透明混合後,當乙個物體被渲染到螢幕上時,每個片元除了顏色值和深度值之外,還有另乙個屬...