대외활동/starters 부트캠프 feat.웅진씽크빅

유데미 스타터스 취업 부트캠프 유니티 1기 9주차 학습 일지

Heeyeon Choi 2022. 8. 21. 20:46
728x90
728x90

유니티 셰이더

 

1. Shader Lab

2. Surface Shader

3. Vertex & Fragment Shader

 

 

Shader Lab으로만 셰이더를 짤 경우 호환성은 짱이지만 할 수 있는 게 없습니다.

Vertex & Fragment Shader은 Surface Shader의 상위 버전으로 CG를 좀 더 디테일하게 다룹니다.

Surface Shader가 오토 모드라면Vertex & Fragment Shader은 수동이라는 느낌입니다.

 

_Name ("display name", Range (min, max)) = number
_Name ("display name", Float) = number  
_Name ("display name", int) = number  
_Name ("display name", Color) = (number, number, number, number)
_Name ("display name", Vector) = (number, number, number, number)

가장 처음 보이는 '_Color'는 변수의 이름입니다.

겉으로 드러나는 이름이 아닌 프로그래밍 상에서 이 친구를 불러줄 이름이죠. 이러한 변수명은 대소문자를 구별하고, 숫자로 시작할 수 없으며 특수문자, 이미 존재하는 변수명 또한 사용할 수 없습니다. 한글도 안됩니다!

또한 변수명은 언더바(underbar) ' _ '로 시작해주는 것이 정석입니다.

출처: https://celestialbody.tistory.com/5

 

새로운 셰이더를 만들려면 메인 메뉴에서 Assets->Create->Shader__를 사용하거나 컨텍스트 메뉴의 Project View__ 사용해야 합니다. 셰이더는 텍스트 파일로 C# 스크립트와 유사하며 Cg/HLSL과 ShaderLab 언어를 조합해 작성됩니다.

 

Unity는 셰이더를 임포트할 때, 전체 셰이더를 컴파일하지 않습니다. 왜냐하면 대다수의 셰이더가 내부에 다수의 배리언트를 가지고 있어 가능한 모든 플랫폼으로 전부 컴파일하면 시간이 상당히 오래 걸리기 때문입니다.

대신 다음과 같은 방법을 취합니다.

  • 임포트를 하는 경우에는 셰이더를 최소 프로세싱만 합니다(표면 셰이더 생성 등).
  • 필요할 때에 한해 셰이더 배리언트를 컴파일합니다.
  • 이 방법을 사용하면 임포트할 때 10010,000개의 내부 셰이더를 컴파일하는 대신 보통 소량을 컴파일하는 것으로 마무리합니다.

 

참고: https://docs.unity3d.com/kr/530/Manual/class-Shader.html

 

 

유니티 스노우 쉐이더

이 스노우 쉐이더는, 3d 모델링에 텍스쳐를 입혀 조절값을 더해 눈이 쌓이는 효과를 내주는 쉐이더입니다.
기본적으로는 스톤 재질의 알베도 값과 노멀맵이 들어있고, 그 위에 덮어질 눈 텍스쳐가 따로 적용이 되어있습니다.

 

<적용 방법>

1.먼저 스노우 쉐이더 파일을 열려져 있는 유니티 프로젝트로 드래그 하여 적용시킨다.
2. 폴더 안의 마테리얼을 적용하고자 하는 모델링에 드래그하여 적용시킨다.
3. 마테리얼에 적용된 텍스쳐들을 확인한다. Rock Albedo 등 Rock 관련 텍스쳐에 본인의 텍스쳐를 넣을 수도 있다.
4. Snow Amount 를 조절하여 눈이 쌓인 효과를 조절한다.

 

 

 

 

 

 

 

 

 

 

——————————————————————————

유데미코리아 바로가기 : https://bit.ly/3b8JGeD

본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.

 

728x90