Version: 2019.1
머티리얼, 셰이더, 텍스처
머티리얼 생성과 사용

텍스처

일반적으로 오브젝트의 메시 지오메트리는 대략적인 형태만을 알려주며 세부 디테일은 텍스처(Textures) 가 제공합니다. 텍스처는 메시 표면에 걸쳐 적용되는 스탠다드 비트맵 이미지입니다. 텍스처 이미지를 간단히 설명하자면 마치 고무 시트에 인쇄된 이미지와 같은 것으로, 늘려서 메시의 적절한 포지션에 고정시킬 수 있는 것이라고 보면 됩니다. 텍스처의 포지션은 메시를 생성하는 데에 사용하는 3D 모델링 소프트웨어에 의해 결정됩니다.

나무 껍질이 적용된 실린더
나무 껍질이 적용된 실린더

Unity는 일반적인 이미지 파일 포맷에서 텍스처를 임포트할 수 있습니다.

3D 모델용 텍스처

텍스처는 머티리얼을 사용하여 오브젝트에 적용할 수 있습니다. 머티리얼은 셰이더라는 특화 그래픽스 프로그램을 사용하여 메시 표면의 텍스처를 렌더링합니다. 셰이더는 조명 및 컬러 효과를 구현하여 빛나거나 울퉁불퉁한 표면 등 여러 가지 상황을 시뮬레이션합니다. 또한 셰이더는 두 개 이상의 텍스처를 합쳐 동시에 사용함으로써 더 큰 유연성을 제공합니다.

텍스처는 2의 제곱수에 해당하는 크기로 만들어야 합니다(예를 들어, 32x32, 64x64, 128x128, 256x256 등). 프로젝트의 Assets 폴더에 텍스처를 넣기만 하면 프로젝트 뷰에 나타납니다.

텍스처를 임포트하고 나면 이 텍스처를 머티리얼에 할당해야 합니다. 그러고 나면 이 머티리얼은 메시, Particle System, GUI Texture 에 적용될 수 있습니다. 텍스처를 게임에서 다른 타입으로 적용하기 위해 Import Settings 을 통해 Cubemap 또는 Normalmap 으로 변환할 수도 있습니다. 텍스처 임포트에 대한 자세한 정보는 Texture 컴포넌트 페이지를 참조하십시오.

2D 그래픽스

2D 게임에서 Sprites 는 대략 오브젝트의 형태와 비슷한 평평한 메시에 적용된 텍스처를 사용하여 구현됩니다.

3D 시점에서 본 스프라이트
3D 시점에서 본 스프라이트

2D 게임의 오브젝트는 캐릭터의 다른 상태 또는 애니메이션 프레임을 나타내기 위한 관련 그래픽 이미지 집합을 필요로 할 때도 있습니다. 이러한 이미지 세트가 효율적으로 디자인되고 렌더링되기 위해 특별한 기법을 사용할 수 있습니다. 자세한 정보는 매뉴얼의 스프라이트 에디터 페이지를 참조하십시오.

GUI

게임의 그래픽 사용자 인터페이스(GUI)는 게임 씬에서 직접 사용되지는 않지만 플레이어가 선택하고 정보를 볼 수 있도록 표시되는 그래픽스로 구성됩니다. 예를 들어, 점수 표시 및 옵션 메뉴 등이 전형적인 게임 GUI의 예입니다. 이러한 그래픽스는 메시 표면의 디테일 표현을 위해 사용되는 종류의 그래픽스와는 분명히 매우 다르지만, 그럼에도 GUI 그래픽스는 스탠다드 Unity 텍스처를 사용하여 처리됩니다. Unity의 GUI 시스템에 대한 자세한 내용은 매뉴얼의 GUI 스크립팅 가이드 페이지를 참조하십시오.

파티클

메시는 솔리드 오브젝트를 나타내는 데에는 이상적이지만 마법 주문으로 인해 발생하는 불꽃, 연기, 섬광 같은 표현에는 그다지 적합하지 않습니다. 이러한 타입의 효과를 더 잘 표현하려면 Particle Systems 이 적합합니다. 파티클 은 작은 2D 그래픽으로, 기본적으로 연기 구름과 같은 유체 또는 기체의 작은 분량을 표현합니다. 이러한 파티클은 많은 경우 한번에 생성되어 움직이게 되지만 옵션으로 랜덤 변화를 주면 상당히 실감나는 효과를 만들어낼 수 있습니다. 예를 들어 불 텍스처가 적용된 파티클을 중심점으로부터 빠른 속도로 내보냄으로써 폭발을 표현할 수 있습니다. 폭포를 만들려면 물 파티클을 씬의 높은 위치로부터 아래 방향으로 가속시키는 방식으로 표현할 수 있습니다.

별 파티클 시스템
별 파티클 시스템

Unity의 파티클 시스템은 모든 종류의 유체 효과를 만들어내기 위한 많은 옵션을 제공합니다. 자세한 정보는 이 주제의 매뉴얼 챕터를 참조하십시오.

터레인 하이트맵

텍스처는 심지어 이미지가 전혀 보이지 않는, 최소한 직접적으로는 보이지 않는 경우에도 사용할 수 있습니다. 그레이스케일 이미지에서 각 픽셀 값은 단지 이미지의 해당 점에 대한 회색 농도에 대한 수치입니다(0–1 사이 범위의 값이 되며, 0은 검은색, 1은 흰색이라 할 수 있습니다). 이러한 이미지를 보여줄 수도 있겠지만, 또한 다른 용도로 숫자 픽셀 값을 사용할 수도 있습니다. 그리고 이것이 바로 Terrain Heightmaps 이 하는 일입니다.

터레인 은 땅의 어떤 영역을 표현하는 메시로, 지면의 각 점은 베이스라인으로부터 특정 높이에 해당됩니다. 터레인의 하이트맵 은 이미지에서 일정 간격마다 수치로 표현된 높이 샘플을 그레이스케일 값으로 저장합니다. 이 때 각 픽셀은 지면의 격자 무늬 좌표에 대응됩니다. 이 값은 씬에서 이미지로 표시되지는 않지만 터레인 메시를 생성하는 데에 사용되는 좌표로 변환됩니다.

흥미로운 점은 하이트맵 이 이미지로서 직접 보여지지는 않지만 높이 데이터에 적용할 때 유용한 일반 이미지 프로세싱 기법이 여전히 존재합니다. 예를 들어, 하이트맵 에 노이즈를 추가하면 험준한 터레인이라는 인상이 만들어지고, 블러 처리를 하면 더 매끄럽고 완만한 터레인을 만들어내게 됩니다.

Unity의 터레인에 대한 자세한 정보는 매뉴얼의 이 섹션을 참조하십시오.

머티리얼, 셰이더, 텍스처
머티리얼 생성과 사용