오버레이는 원래 if문이 필요한 공식입니다.
https://mouaif.wordpress.com/2009/01/05/photoshop-math-with-glsl-shaders/
에 따르면
BlendOverlayf(base, blend) (base < 0.5 ? (2.0 * base * blend) : (1.0 - 2.0 * (1.0 - base) * (1.0 - blend)))
으로 0.5 이상이냐 이하이냐에 따라 if문으로 공식이 바뀌는 놈.
그런데 모바일에서 if 문은 좀 그렇죠
그래서 간단하게 만든 모바일용 오버레이 간략버전.
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) ;
fixed4 d = tex2D (_MainTex2, IN.uv_MainTex2);
fixed dgray = saturate((d.r+d.g+d.b)/3); //
o.Emission = lerp( saturate(1-((1-c)*(1-d)*2)),saturate(c*d*2),dgray);
c는 타켓 텍스쳐 d는 오버레이 텍스쳐
오버레이 텍스쳐의 그레이스케일을 구한다
두 연산을 그레이스케일의 lerp로 처리해서 구함.
반응형
'Shader ' 카테고리의 다른 글
카메라 방향에 상관없는 Matcap 만들기 (0) | 2016.03.26 |
---|---|
Shader Test (0) | 2016.03.26 |
Making the Post Effect : Blur - 1 ( Post Effect 만들기 기본 : 블러 만들기 1 ) (0) | 2015.12.23 |
uniform half4 _MainTex_TexelSize; (4) | 2015.12.23 |
Making the Post Effect : Downsampling (Post Effect 만들기 기본 : 다운샘플링하기) (0) | 2015.12.19 |
댓글