*쉐이더 (Shader)와 머티리얼(Material)의 개념 차이 - 유니티 그래픽 (김준혁, 아이생각) -


- 쉐이더(Shader) : 그래픽스 파이프라인에서 가장 중요한 요소 중 하나. 쉐이더는 개별 픽셀이나 버텍스의 렌더링 방법을 정의. 간단히 말하면, 쉐이더는 3D 모델의 빛, 색상, 그림자 등을 계산하여 화면에 렌더링하는 역할을 함. 쉐이더는 GPU에서 동작하며, 렌더링 프로세스의 각 단계에서 실행됨. 주로 쉐이더 언어(ShaderLab, HLSL, GLSL)로 작성되며, 쉐이더 프로그램을 작성하고 컴파일하여 사용할 수 있음. 쉽게 말하자면 쉐이더는 모니터에 그려지게 될 픽셀을 결정하는 방법을 정의하는 것.
예를 들어, 버텍스 쉐이더는 3D 모델의 버텍스 변환과 조명 계산을 처리하여 모델의 형태와 위치를 결정. 픽셀 쉐이더는 각 픽셀의 색상, 반사율, 그림자 등을 계산하여 최종적인 픽셀의 색상을 결정. 그 외에도 지오메트리 쉐이더, 헤어 쉐이더, 테셀레이션 쉐이더 등 다양한 종류의 쉐이더가 있으며, 각각의 역할과 기능이 다름.
또한 개발자나 아티스트가 다양한 커스텀 쉐이더를 작성하여 사용할 수도 있음.
- 머티리얼(Material) : 쉐이더의 속성을 설정하는 데 사용되는 컴포넌트. 쉐이더를 머티리얼에 연결하면 머티리얼 인스펙터를 통해 머티리얼의 속성을 조정할 수 있음. 즉, 머티리얼은 쉐이더에 대한 설정 값들을 포함하고 있으며, 이를 통해 모델의 색상, 텍스처, 반사율 등을 결정할 수 있음. 간단하게 쉐이더에서 정의된 방식대로 각각의 설정 값들을 정해준 머티리얼은 게임 오브젝트에 할당되어 그 오브젝트의 시각적인 효과를 결정하는 역할을 함. 예를 들어, 머티리얼을 변경하여 오브젝트의 색상을 바꾸거나 텍스처를 적용할 수 있음. 게임 오브젝트의 시각적인 표현을 제어해주는 컨트롤 박스라 생각하면 쉬움.
요약하자면, 쉐이더는 실시간 그래픽스를 계산하여 렌더링하는 역할을 담당하고, 머티리얼은 쉐이더의 설정 값을 조정하여 모델의 시각적인 효과를 결정. 이 둘을 조합하여 원하는 시각적인 표현을 구현할 수 있음. 유니티에서는 다양한 쉐이더와 머티리얼을 제공하므로, 개발자는 이를 유연하게 활용하여 원하는 결과물을 얻을 수 있음.
'공부 > Unity' 카테고리의 다른 글
| [unity]내 컴퓨터에서 가능한 모바일 빌드 환경 (0) | 2024.07.02 |
|---|---|
| [unity]PlaybackEngines.AndroidPlayer.SDK.cmdline-tools.6.0 안드로이드 빌드 오류 해결 (0) | 2024.07.01 |
| [unity]canvas 위에 보이는 클릭/터치 이펙트 구현 - 2 (0) | 2024.05.27 |
| [unity]canvas 위에 보이는 클릭/터치 이펙트 구현 - 1 (0) | 2024.05.26 |
| [unity]NGUI 최근 유니티(5.4 이상)에서 세팅 (0) | 2024.05.13 |