본문 바로가기
유니티

[쉐이더노트] Surface Shader compile directives

by Raypop 2014. 12. 22.

#pragma optional params

 

alpha - 알파블랜딩 모드, 반투명 쉐이더에 사용한다.

 

alphatest:VariableName - 알파테스팅 모드, transparent-cutout 쉐이더에 사용하며, Cutoff 값은 변수 이름의 이름을 따름

 

vertex:VertexFunction - 커스텀 버텍스, 버텍스 쉐이더 추가시 사용

 

finalcolor:ColorFunction - 파이널 컬러 커스텀

 

exclude_path:prepass 또는 exclude_path:forward - 디퍼드나 포워드 렌더링 둘중 하나의 패스를 제거해 한쪽으로만 가게 한다

 

addshadow - 그림자 생성과 수집 패스를 추가. 절차적인 버텍스 애니메이션이 그림자에 영향을 미치도록 커스텀 버텍스 수정함수와 함께 사용

 

dualforward - 포워드 렌더링 방식에 듀얼 라이트맵을 사용

 

fullforwardshadows - 포워드 렌더링 방식에서 모든 그림자 유형을 지원

 

decal:add - additive 방식의 데칼 쉐이더

 

decal:blend - 반투명한 데칼 쉐이더

 

softvegetation - Soft Vegetation 옵션을 사용할 경우에만 표면 쉐이더가 렌더링 되게 한다

 

noambient - 앰비언트 라이팅이나 SH라이트가 적용되지 않게 함

 

novertexlights - 포워드 렌더링에서 SH나 vertex light 가 가동되지 않게함

 

nolightmap - 쉐이더가 라이트맵을 지원하지 않게 만든다

 

nodirlightmap - directional lightmap을 지원하지 않게 한다

 

noforwardadd - 포워드 렌더링 가산 패스를 비활성화 한다. 그 결과 쉐이더는 하나의 디렉셔널 라이트를 완전히 지원하고, 나머지 라이트는 버텍스 단위 또는 SH방식으로 처리된다. 쉐이더를 가볍게 만든다.

 

approxview - 픽셀이 아니라 버텍스 단위로 단위화된 시선 방향 벡터를 계산한다. 처리가 빨라지지만 카메라가 오브젝트에 근접할 경우 시선방향의 계산이 부정확 할 수 있다.

 

halfasview - 시선 방향 대신 하프 디렉션 벡터를 라이팅 함수에 전달한다. 하프 디렉션의 벡터는 버텍스 단위로 연산되고 단위화 된다. 빠르지만 정확도가 떨어진다.

 

tessellate:TessFunction - DX11 GPU 에서 테셀레이션을 사용한다.

'유니티' 카테고리의 다른 글

[쉐이더노트] Built-in matrices  (0) 2015.01.06
[노트] uv 위치값 변경  (0) 2015.01.06
[쉐이더노트] input structure  (0) 2014.11.19
[쉐이더노트] SurfaceOutput  (0) 2014.11.19
[쉐이더노트] appdata_full  (0) 2014.11.14