FBX 파일과 .tga 텍스쳐를 받고 유니티에 띄우고 쉐이더는 텍스쳐를 투명값만 조정하는 기능의 쉐이더인 Unlit의 Transparent를 썼는데, 각도에 따라 모델의 일부분이 투명하게 되길래 놀랬다. 이 쉐이더는 완벽하게 Alpha값을 걸러내진 못하는 것 같다..
그리고 얇은 옷가지 같은 모델이 있을 때, 한 쪽에서만 볼 수 있게 제작된 모델이라면 다음의 UnlitAlpha 쉐이더를 사용하면 해결된다.
(아직 쉐이더를 제대로 해보진 않았으므로 잘 모르겠지만.. 뜯어본 결과 Cull off가 안 되어있었고, ZWrite라는게 꺼져있었다. 그리고 여러가지 다른 점이 있지만, 쉐이더 공부할 때 분석해 보아야겠다.)
이 쉐이더는 조명의 영향을 받지 않으며, 텍스쳐의 투명값을 조정하고 폴리곤의 앞, 뒤 둘 다 볼 수 있게 한다.(Cull off 기능) 2D 게임의 스프라이트에서도 자주 쓰인다. 다음은 UnlitAlpha 쉐이더의 설명이다.
UnlitAlpha
Author: Neil Carter (NCarter)
Description
This shader is useful for sprites and other billboards that shouldn't be affected by lighting and should be visible from both sides. Note that alpha testing is used instead of
blending, which means partial transparency is not possible - texels are either completely opaque or completely transparent. On the other hand, it's much faster than
blending.
Usage
Place this shader somewhere in your Assets folder hierarchy, create a material which uses it and apply it to the relevant objects.
ShaderLab - UnlitAlpha.shader
Invalid language.
You need to specify a language like this: <source lang="html4strict">...</source>
Supported languages for syntax highlighting:
[Expand]
Shader "UnlitAlpha" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _MainTex ("Base (RGB) Trans. (Alpha)", 2D) = "white" { } } Category { ZWrite On Alphatest Greater 0.5 Cull Off SubShader { Pass { Lighting Off SetTexture [_MainTex] { constantColor [_Color] Combine texture * constant, texture * constant } } } } }
'게임 > Unity3D' 카테고리의 다른 글
[Unity3D] Fade in/out script (0) | 2012.11.12 |
---|---|
[Unity3D] 프리팹 패키지 사이트 (0) | 2012.11.12 |
[Unity3D][EZ GUI] UIButton Event 처리 방식 (0) | 2012.11.05 |
[Unity3D] EZ-GUI (0) | 2012.11.05 |
[링크] 유니티 문서 (0) | 2012.11.01 |
[Unity3D][스크랩] 외부 SVN이나 자체 SVN에서의 세팅법 (0) | 2012.10.31 |
[Unity3D] Mathf.lerp() Function 설명 (0) | 2012.10.31 |
[Unity3D] 우향벡터 간단하게 구하기 (0) | 2012.10.31 |
[스크랩] InputManager 설정 (0) | 2012.10.29 |
[Unity3D] 포물선 이동 (1) | 2012.09.27 |