본문 바로가기

Shader12

유니티 셰이더 - Surface 셰이더에서 알파가 안빠지는 현상 간단한 서피스 커스텀 셰이더를 만들었는데 알파 값을 0으로 아무리 해도 알파가 안빠지는 현상이 계속됐다. 여러가지 테스트를 해보니 SurfaceOutputCustom 에 Normal 과 Emission 값을 넣어주지 않으면 알파 값이 계속 빠지지 않는 것이다.. #pragme에 keepalpha 문을 넣어주는 것은 당연하고.. 서피스 셰이더 제작후 알파값이 빠지지 않으면 아래의 세 구문을 꼭 넣어주자. Blend One OneMinusDstAlpha #pragma surface surf keepalpha struct SurfaceOutputCustom { fixed3 Albedo; fixed3 Normal; fixed3 Emission; fixed Alpha; }; 2016. 7. 14.
유니티 서피스 셰이더를 UnLit으로 사용할 때 캐릭터가 하얗게 타는 현상. 유니티 서피스 셰이더를 UnLit으로 사용할 때 캐릭터가 하얗게 타는 현상이 발생했다. Scene안에 라이트가 두개 이상 있을경우 UnLit 서피스 셰이더임에도 캐릭터가 하얗게 타는 것이다..(프라그 셰이더는 발생하지 않음) 해당 문제를 해결하기 위해서는 noforwardadd를 꼭 써줘야 한다. #pragma surface surf NoLighting noambient noforwardadd 그런데 이렇게 하고나서도 또 타는 현상이 발생했는데, 이 역시 라이트가 두개 있을때 두 라이트가 같은 Layer Culling을 사용하면서 그 사용된 Culling Object가 또 하얗게 타는 것이다... 레이어를 수정해서 해결하긴 했는데.. 뭔가 이상하고 찜찜한 기분.. 아래는 라이트에 영향받지 않는 저 사양 .. 2016. 7. 14.
셰이더 일괄 교체 스크립트 제작 프로젝트를 진행하면서 파티클 빌트인 셰이더들이 문제를 일으켜 일괄 변환해 줘야 하는 상황이 발생했습니다. 일일이 바꾸는 번거러움을 덜고자 제작한 스크립트 입니다. 1. 모바일 엔진 셰이더(바뀌어야할 셰이더 선택) 2. 바뀔 셰이더 선택 3. 대상 메터리얼들 선택(폴더 / 파일) 4. 대상 메터리얼중 1번과 동일 셰이더를 찾아 2번으로 바꿔줌~ 일괄 교체~ using UnityEngine; using UnityEditor; using System.Collections; using System.Collections.Generic; using System.IO; public class MaterialControl : EditorWindow { public Shader shader1 = null; public .. 2016. 6. 22.
불 이펙트 제작 과정과 캐스 케이드 사용법 정리 1부 - 셰이더 제작 ** 불 이펙트 쉐이더 제작 ** 다이내믹 파라미터를 사용하여 파티클과 연동해주면 쉐이더를 캐스케이더에서 편집이 가능하게 해줍니다.. 다이내믹 파라미터는 파티클 에미터가 네개의 값을 전해 어떤 식으로든 사용할 수 있도록 해 주는 통로입니다. 이 값은 캐스케이드에서 ParameterDynamic과 연결되서 사용됩니다. 여기서 사용된 불 이펙트는 세개의 다이내믹 파라미터를 캐스케이드와 연결하여 사용됐습니다. 첫째는 Alpha Erosion 불(혹은 연기) 특유의 일렁이는 효과를 주기 위한 노드 다이내믹 파라미터를 이용하여 캐스케이드에서 수치를 조절할 수 있도록 설정했다. 둘 째는 Random 0-1 per particle 0~1 수치 사이에서 다양한 형태로 패닝 되도록 설정 이 수치 역시 다이내믹 파라미터를.. 2015. 12. 18.