Company
교육 철학

텍스처(Texture)

텍스처 사용하기

지금까지는 색상 값을 사용해 머테리얼을 완성했습니다.
그러나 실제 3D 환경에서는 텍스처(Texture)가 물체에 세부 정보와 현실감을 더해주는 중요한 요소입니다.
텍스처는 비트맵 이미지 데이터 입니다. 즉 이미지파일(2차원 픽셀 배열) 이라고 볼 수 있습니다. 언리얼 엔진에서는 이미지 파일을 읽어 다양 한곳에서 사용 합니다. 액터 표면에 붙여서 밝기, 색, 반사, 투명도, 굴곡 등을 조정 할 수도 있습니다.

언리얼 엔진의 텍스처 종류

베이스 컬러(Base Color): 물체의 기본 색상을 정의합니다.
노멀 맵(Normal Map): 물체 표면의 미세한 굴곡과 디테일을 표현합니다. 실제 모델의 폴리곤을 늘리지 않고도 표면에 디테일을 추가할 수 있습니다.
러프니스(Roughness): 표면이 빛을 얼마나 산란시키는지 결정합니다. 값이 낮을수록 매끄럽고, 높을수록 거친 표면으로 표현됩니다.
메탈릭(Metallic): 물체가 금속성 재질인지 아닌지를 정의합니다. 값이 1에 가까울수록 금속처럼 보입니다.
앰비언트 오클루전(Ambient Occlusion): 접근이 어려운 부분(예: 모서리나 틈)에 그림자를 추가하여 깊이감을 더합니다.
디스플레이스먼트(Displacement): 실제로 메시의 형태를 변형시켜 표면에 높낮이를 만듭니다.
에미시브(Emissive): 물체가 빛을 발산하는 부분을 정의합니다.

텍스처 설정 최적화

텍스처는 게임 성능에 큰 영향을 미치므로 적절한 설정이 중요합니다:
해상도: 필요 이상으로 큰 텍스처는 메모리를 낭비합니다. 용도에 맞는 적절한 크기를 선택하세요.
압축: 언리얼은 다양한 텍스처 압축 형식을 지원합니다. 플랫폼에 맞는 압축 형식을 선택하세요.
밉맵(Mipmap): 거리에 따라 다른 해상도의 텍스처를 사용하여 성능을 개선합니다.
스트리밍: 필요할 때만 메모리에 로드되도록 텍스처 스트리밍을 활용하세요.
다음 섹션에서는 이러한 텍스처를 활용하여 더 복잡하고 현실적인 머티리얼을 만드는 방법에 대해 알아보겠습니다.

머티리얼에 텍스처 적용하기

머티리얼 에디터에서 텍스처 맵을 해당 입력 슬롯에 연결하여 사용합니다:
1.
머티리얼을 더블 클릭하여 머티리얼 에디터를 엽니다.
2.
콘텐츠 브라우저에서 원하는 텍스처를 그래프 영역으로 드래그합니다.
3.
텍스처 노드의 출력을 적절한 머티리얼 입력에 연결합니다. (예: 컬러 텍스처는 Base Color 입력에 연결)
4.
'적용' 버튼을 클릭하여 변경사항을 저장합니다.

Texture Sample 의 프로퍼티

Texture Sample 노드는 텍스처를 머티리얼 그래프에서 사용할 수 있게 해주는 노드로, 다양한 프로퍼티를 가지고 있습니다:
Texture: 사용할 텍스처 맵을 지정합니다.
Sampler Type: 텍스처를 샘플링하는 방법을 결정합니다 (Linear, Point 등).
MipValueMode: 밉맵 샘플링 방법을 설정합니다.
Coordinates: 텍스처 좌표 매핑 방법을 지정합니다 (UV 채널 선택).
UTiling & VTiling: 텍스처의 가로(U)와 세로(V) 방향으로의 반복 횟수를 설정합니다.
UVScale & UVOffset: 텍스처 좌표의 크기 조절과 이동을 설정합니다.
이러한 속성들을 조절하여 텍스처가 어떻게 물체에 매핑될지 세부적으로 제어할 수 있습니다. 특히 UTiling과 VTiling은 작은 텍스처를 반복하여 더 큰 표면을 커버할 때 유용합니다.

UV 좌표로 배율 설정해보기

텍스처 샘플 노드에서 텍스처를 다음과 같은 텍스처로 교환해준다.
U타일링 옵션을 V타일링 옵션을 1로 표현하면 가로로 길쭉했던 벽돌들이 절반만큼 줄어든걸 볼 수 있습니다.
이번에는 다음과 같이 구멍난 머테리얼도 만들어 보겠습니다.
블렌드 모드를 마스크로 설정하고 TextureSample 을 하나 더 추가해줍니다.
BaseColor의 텍스처는 /Script/Engine.Texture2D'/Game/StarterContent/Textures/T_Ceramic_Tile_M.T_Ceramic_Tile_M’ Opacity Mask 텍스처는 /Script/Engine.Texture2D'/Game/StarterContent/Textures/T_Tech_Dot_M.T_Tech_Dot_M’ 로 세팅해주고 B값을 Opacity Mask 에 연결해줍니다.

표면 굴곡 만들기 (노말맵 설정하기)

새로운 메테리얼을 만들어 줍니다. 그리고 다음과 같은 텍스처 3장을 메테리얼 그래프에 추가해줍니다.

머티리얼 속성 상세 설명

언리얼 엔진의 머티리얼 시스템은 다양한 속성을 통해 현실감 있는 표면을 구현합니다. 다음은 주요 속성들에 대한 자세한 설명입니다:
Base Color(베이스 컬러): 물체의 기본 색상을 정의하는 가장 기초적인 텍스처입니다. 물체가 빛을 받지 않을 때의 고유 색상을 나타내며, 알베도(Albedo)라고도 합니다. RGB 채널을 사용하여 색상 정보를 저장합니다.
Metallic(메탈릭): 물체의 금속성을 정의합니다. 값이 0이면 비금속(플라스틱, 나무 등), 1이면 완전한 금속 재질로 표현됩니다. 메탈릭 값은 물체가 빛을 흡수하거나 반사하는 방식에 영향을 미칩니다. 금속은 특성상 스페큘러 색상이 베이스 컬러와 동일하게 나타납니다.
Specular(스페큘러): 비금속 재질의 반사 강도를 제어합니다. 기본값은 0.5이며, 재질의 IOR(굴절률)에 따라 달라집니다. 물은 약 0.25, 다이아몬드는 0.92 정도의 값을 가집니다. 메탈릭 워크플로우에서는 주로 비금속 표면의 반사 조정에 사용됩니다.
Roughness(러프니스): 표면의 거칠기를 제어합니다. 값이 0이면 완전한 거울처럼 매끄러운 표면, 1이면 극도로 거친 표면으로 표현됩니다. 러프니스는 미세 표면의 불규칙성을 시뮬레이션하여 빛이 얼마나 흩어져 반사되는지 결정합니다.
Anisotropy(이방성): 빛이 표면에서 반사될 때 방향성을 갖게 하는 속성입니다. 이방성이 적용된 표면은 특정 방향으로 늘어난 반사 패턴을 보입니다. 브러시드 메탈, 머리카락, CD 표면 등 방향성 있는 미세 구조를 가진 재질을 표현할 때 사용됩니다.
Emissive(에미시브): 물체가 스스로 발광하는 영역을 정의합니다. RGB 값으로 발광 색상과 강도를 제어할 수 있으며, 네온 사인, LED 조명, 용암 등 빛을 발산하는 효과를 표현할 때 사용됩니다. 장면 조명에 영향을 받지 않고 독립적으로 빛납니다.
이러한 속성들을 조합하여 다양한 물리적 재질을 사실적으로 구현할 수 있습니다. 언리얼 엔진의 물리 기반 렌더링(PBR) 시스템은 이러한 속성들을 바탕으로 실제 물리 법칙에 따라 빛이 표면과 상호작용하는 방식을 시뮬레이션합니다.
텍스처를 이용해 텍스처에 저장된 값을 사용해서 위의 메테리얼 속성 값을 세팅해서 사용 할수 있습니다.
최종적으로 벽돌 틈새 부위가 울퉁불퉁하게 보이는걸 확인합니다.