목표
3D프로젝트에서 사용되는 머테리얼(Material)과 텍스처(Texture) 의 개념에 대해 이해해보자
머테리얼(Material)?
- 오브젝트의 표면이 어떻게 보일지를 결정하는 데이터, 이름 그대로 재료의 의미
- 하나의 셰이더(Shader)를 기반으로, 다양한 속성 값을 통해 최종 외형을 정의
속성
- Shader: 머테리얼이 사용할 셰이더를 지정 (예: Standard, URP Lit 등)
- Color: 텍스처가 없을 때 사용되는 기본 색상
- Main Texture (Albedo Map): 표면의 색상 정보를 담은 텍스처
- Metallic / Smoothness: 금속성 여부 및 표면의 매끄러움
- Normal Map: 표면의 디테일을 표현
텍스처(Texture)?
텍스처는 2D 이미지 데이터를 의미하며, 머테리얼에 연결되어 오브젝트의 표면을 시각적으로 표현하는 데 사용됨.
종류
- Albedo Map: 표면의 색상 정보
- Normal Map: 표면의 굴곡, 디테일 표현
- Metallic / Roughness Map: 금속성, 거칠기 조절
- Emission Map: 자체 발광 표현
머테리얼과 텍스처의 관계
- 머테리얼: 셰이더와 속성 값들의 집합
- 텍스처: 머테리얼의 속성을 구체화하는 이미지 자원
쉽게 말해 머테리얼이라는 외형에 텍스처라는 옷을 입힌다고 생각하자.
예를 들어 Standard Shader에서 Albedo 속성에 텍스처를 넣으면, 해당 텍스처가 오브젝트 표면에 색상 정보를 제공하게 된다.
이 글을 쓰게 된 계기이기도 한데 개인적으로 3D 게임을 개발하는데 있어 다양한 에셋들이 필요한데 에셋들마다 다른 질감을 가지고 있어 비쥬얼적인 표현이 쉽지 않다. 머테리얼과 텍스쳐의 관계를 이해하면 일반적인 쉐이더 환경에서는 대부분 대응 할 수 있게 된다.

가져온 모델에 다른 머테리얼을 적용했을때 해당 머테리얼에 텍스처가 지정되어있다면 원하는 모습을 볼 수 없지만


기존 텍스처를 적용해주면 해당 머테리얼에 원하는 모습을 적용시킬 수 있다.