技能CD 效果 shader

2022-05-04 15:18:13 字數 1546 閱讀 5865

這個效果主要是利用反正切函式完成。atan2(x,y)的返回值是[-pi,pi],這個支援4個象限的反正切函式。關於圓角計算,在上篇文章中有介紹。

現在,我們來看看反正切函式的效果:

在第一象限:返回[0,pi/2],有漸變;  

在第二象限:返回[pi/2,pi],為白色;

在第三象限:返回[-pi,-pi/2],為黑色;

在第四象限:返回[-pi/2,0],為黑色;

uv = i.uv - fixed2(0.5,0.5

);

float hui =atan2(uv.y, uv.x);

return float4(hui,hui,hui,alpha);

反正切的返回值在[-pi,pi],那麼我們現在增加變數_angle,讓他控制反正切的值;我們設定_angle值為[-pi,pi],用_angle的值,加上反正切的值,他們最後的值就會隨著_angle的值變化。

當_angle = -pi時,最終值為[-2pi,0],顯示黑色;

當_angle = pi時,最終值為[0,2pi],顯示漸變;

現在我使用用sign函式,將大於0的部分全部設定為1,小於等於0的部分設定成為0;

源**:

shader "

jqm/test02

"_angle(

"angle

", range(0, 1)) = 0

} subshader

zwrite off

blend srcalpha oneminussrcalpha

cgprogram

#pragma vertex vert

#pragma fragment frag#include

"unitycg.cginc

"float

_percent;

float

_angle;

sampler2d _maintex;

float4 _maintex_st;

struct

vertexoutput

;fixed4 frag (vertexoutput i) : color

endcg}}

}

sign(x)

:如果 x 大於 0,返回 1;如果 x 小於 0,返回 01;否則返回 0。

shader 玻璃效果

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

Shader 各種Shader效果的合集

1.the fresnel effect 參考 實用的shader shader heroshader character a通道標記陣營區域,1 表示有陣營顏色區域,0 表示非陣營顏色區域 emission emission range 0,1 0 自發光 shadowlevel shadow l...

Shader實現玻璃效果

這是一張燥波 提供給玻璃的具有透明效果的,一般用黑白灰貼圖,alpha通道裡有一種說法是黑透白不透,灰色是半透 shader為 shader mirrors transparent bumped specular flat blendlevel main material blend level r...