(모델은 디펜스 테크니카 기본 몬스터 특별 출연~!)
일전에 유령 유닛에 쓰일 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 추천.
'Technical Report > Unity Shader' 카테고리의 다른 글
surface shader noambient parameter (0) | 2015.01.28 |
---|---|
Fade in/out 연출을 위한 shader (3) | 2015.01.23 |
Wrapped Diffuse (0) | 2015.01.19 |
multipass surface shader : DiffuseOutline (0) | 2015.01.19 |
Android platform texture compresstion option에 따른 결과물 (0) | 2015.01.16 |