ar專案中在掃瞄識別圖時需要加上掃瞄識別效果,加上邊緣識別後看起來效果更好,所以就需要這樣乙個邊緣檢測效果的動畫shader。
shader "unlit/animateedgeshader"
_edgeonly ("edge only",range(0,1)) = 1
_edgecolor ("edge color",color) = (1,0,0,1)
_backgroundcolor ("background color",color) = (1,1,1,1)
_animatetex ("texture", 2d) = "white" {}
_scrollx ("speed",float) = 0.5
} subshader
lod 100
blend srcalpha oneminussrcalpha
pass
; struct v2f
;sampler2d _maintex;
float4 _maintex_st;
fixed4 frag (v2f i) : sv_target
endcg
} pass
; struct v2f
;sampler2d _animatetex;
float4 _animatetex_st;
float _scrollx;
sampler2d _maintex;
half4 _maintex_texelsize;
float4 _maintex_st;
fixed _edgeonly;
fixed4 _edgecolor;
fixed4 _backgroundcolor;
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 = 1 - abs(edgex) - abs(edgey);
return edge;
}fixed4 frag (v2f i) : sv_target
endcg
} }}
這裡用easy ar 實驗效果。呼叫攝像機,顯示畫面,並描繪邊框
這裡的第二個材質球realityplane就是 easy ar實時獲取的手機攝像機畫面,第乙個材質球就是我們的邊緣檢測shader,animate第一張顯示我們要檢測邊緣的,第二張就是我們邊框描繪的。
邊框大概就這樣,可以自己調整
效果就是這樣
Unity Shader 螢幕後效果 邊緣檢測
關於螢幕後效果的控制類詳細見之前寫的另一篇部落格 這篇主要是基於之前的控制類,實現另一種常見的螢幕後效果 邊緣檢測。概念和原理部分 首先,我們需要知道在圖形學中經常處理畫素的一種操作 卷積。卷積操作的實質在於,對於影象中的每個畫素與其周圍的畫素進行的重新融合計算行為,以得到不同的畫素處理效果,例如銳...
Canny邊緣檢測
1.canny邊緣檢測基本原理 1 圖象邊緣檢測必須滿足兩個條件 一能有效地抑制雜訊 二必須盡量精確確定邊緣的位置。2 根據對訊雜比與定位乘積進行測度,得到最優化逼近運算元。這就是canny邊緣檢測運算元。3 類似與marr log 邊緣檢測方法,也屬於先平滑後求導數的方法。2.canny邊緣檢測演...
Canny邊緣檢測
canny運算元是邊緣檢測運算元中最常用的一種,是公認效能優良的一種運算元,常被其它邊緣檢測運算元作為標準運算元進行優劣分析。canny演算法基本可以分為3個步驟 平滑 梯度計算 基於梯度值及梯度方向的候選點過濾 1 平滑 影象梯度的計算對雜訊很敏感,因此必須首先對其進行低通濾波。在這裡使用5 5的...