본문으로 바로가기

SelfilluminationBlend shader

category Technical Report/Unity Shader 2015. 1. 20. 00:21
반응형


(모델은 디펜스 테크니카 기본 몬스터 특별 출연~!)


일전에 유령 유닛에 쓰일 shader를 위해서 만들었던 코드


//  Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }

   
    Blend One One
   
       
CGPROGRAM
#pragma surface surf Lambert nolightmap nodirlightmap noforwardadd approxview halfasview

sampler2D _MainTex;
fixed4 _TintColor;

       

struct Input {
    float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
    fixed4 tex = tex2D(_MainTex, IN.uv_MainTex) * 2.0;
    fixed4 c = tex * _TintColor;
    o.Albedo = c.rgb;
    o.Emission = c.rgb * c.a;


특별한건 없고 Blend One One과 emission(밝기 증가)을 써서 만들었더니 위 additive에서 처럼 뒷면까지 그리는 증상은 없었다. 모바일에서 illumination(Emissive) 쓰는게 효율적인가에 대한 고민은 아직 있는 상태..(테스트 했을때 무거운거 같진 않았다만....)


중간에 * 2.0 값이 있어서 꽤 밝게 올라온다. 디폴트로 쓰려면 조절해야함~


덧 : One One이라 티가 잘 나지 않을뿐 깔끔하게 그리려면 2pass로 제작하는게 좋다는 대마왕님 의견~

링크 : 2pass를 이용한 깨끗한 반투명 만들기 ... 쉽네요?




좌 : self illumination shader의 결과물 우: 2pass blend shader(친절히 비교 스샷을 올려주셨다~ 감사합니다~!!)


큰 이미지일 경우 확실히 품질 차이가 난다. 가벼운건 1pass이기에 좀 더 가벼우나 깔끔한 shader 제작을 위해서는 2pass 추천.





반응형