[Unity]01. 쉐이더 이해하기 #1 - 쉐이더란 무엇인가
- 게임 개발 - Unity3d
- 2019. 1. 10. 15:18
안녕하세요 유랑입니다.
오늘부터 쉐이더에 대해 알아보겠습니다.
게임제작에 꼭 필요하기에 번외편으로 준비해 보았습니다.
1. 쉐이더
쉐이더는 무엇일까요? '화면에 출력하는 픽셀의 색을 정해주는 함수' 라는 뜻을 가지고 있습니다.
하지만 이렇게 생각하기에는 딱딱한 느낌이 드네요.
감성적인 부분까지 표현하면 더 많이 달라질거에요.
게임 엔진이 영화에 필적할만한 표현이 가능해졌기에 쉐이더라는 부분이 점점 더 부각되는것 같습니다.
2. 쉐이더 기본 지식
쉐이더를 시작하기 전 쉐이더에 필요한 기본적인 지식에 대해서 알아보겠습니다.
바로 렌더링 파이프라인과 빛의 원리인데요.
과연 어떤걸까요?
2-1) 렌더링 파이프라인 - ㉠오브젝트 데이터 받아오기
렌더링 파이프라인은 총 4단계의 과정을 거치게 됩니다.
오브젝트 데이터 받아오기는 Vertex로 이루어진 물체의 데이터 값을 받아옵니다.
그래픽 카드 내부의 값으로만 존재하는 것이죠.
2-2) 렌더링 파이프라인 - ㉡정점 쉐이더
정점 쉐이더는 버텍스들에게 월드 변환 행렬(월드 좌표계)을 곱해줌으로써,
로컬 좌표계에서 월드 좌표계로 변환도 시켜주고
프로젝션 행렬을 곱함으로써 원금감도 부여해줍니다.
유니티에서 볼 수 있는 뷰의 모습이 보여지는 거죠.
2-3) 렌더링 파이프라인 - ㉢래스터라이져
래스터라이져는 오브젝트를 출력해주는 과정입니다.
3D 오브젝트가 모니터에 보이도록 '픽셀(Pixel)'이 되는데
이 과정을 래스터화라고 하며 3D 이미지가 2D 이미지가 되는거죠.
2-4) 렌더링 파이프라인 - ㉣픽쉘세이더와 프레그먼트 쉐이더
마지막으로 픽쉘세이더가 동작하면서 조명과 텍스쳐 등 각종 특수효과를 연산하게 되는 겁니다.
2-5) 모니터에 표현되는 원리 - ㉠색의 표현
평소에 접하는 모니터에서 표현되는 색은 빛의 삼원색으로 만들어 집니다.
가산혼합이라고 불리는 이 용어는 RGB로 이루어진 색을 더하면 밝아지며,
모두 더하면 흰색이 되는 색의 체계를 의미합니다.
2-6) 모니터에 표현되는 원리 - ㉡숫자로 표현
컴퓨터에서는 R, G, B(Red, Green, Blue)의 조명 밝기를 %를 이용해서 표현합니다.
(100%, 100%, 100%)이면 흰색이고, (0%, 0%, 0%)이면 검은색이게 됩니다.
이제 우리는 픽셀마다 특정한 색상을 출력해주는 일을 할 텐데,
숫자를 더하고 곱하고 하는 과정을 '픽셀 쉐이더'라고 하며
수학적 연산을 통해서 쉐이더에 대해서 알아볼 것입니다.
2. 마무리
오늘 강의는 여기까지입니다.
쉐이더가 어떤 것이고, 필요 지식에 대해서 배워보았습니다.
다음 시간에는 유니티 쉐이디어 대해서 알아보겠습니다.
오늘도 고생하셨습니다.
감사합니다.