Bump Offset 머티리얼 표현식은 머티리얼의 UV 좌표를 수정하여 표면에 깊이감을 향상할 수 있습니다. 범프 오프셋은 오브젝트 표면의 텍셀을 디스플레이스하여 시차가 있는 것처럼 연출하고, 표면이 실제보다 더 디테일해 보이게 만듭니다. Bump Offset 표현식은 일반적으로 노멀 맵과 함께 사용되며, 노멀 맵을 단독으로만 사용했을 때의 깊이감을 향상할 수 있습니다.
이 튜토리얼은 머티리얼에서 BumpOffset 노드를 사용하는 방법을 설명합니다.
범프 오프셋
범프 오프셋(Bump Offset) 은 흔히 _패럴랙스 매핑(Parallax Mapping)_으로 알려진 언리얼 엔진 용어입니다. Bump Offset 표현식은 폴리곤 추가 없이도 머티리얼의 깊이감을 향상할 수 있는 하나의 방법입니다. 범프 오프셋 머티리얼은 그레이스케일 하이트 맵을 사용하여 뎁스 정보를 제공합니다. 하이트 맵에서 가장 밝은 값은 카메라를 향해 디스플레이스되며, 표면에서 카메라가 움직일 때 최대 시차 이동을 수신합니다. 하이트 맵에서 더 어두운 영역은 더 멀어 보이며 가장 적게 이동합니다.
Bump Offset 머티리얼 표현식 찾기
팔레트(Palette) 검색창에서 검색하거나, 머티리얼 그래프에서 우클릭하고 컨텍스트 메뉴에서 선택하는 방식으로 Bump Offset 머티리얼 표현식을 찾을 수 있습니다.

범프 오프셋에는 머티리얼 에디터 단축키도 있습니다. B 를 누른 채로 머티리얼 그래프를 아무 곳이나 클릭 하여 BumpOffset 노드를 스폰합니다.
Bump Offset 머티리얼 표현식을 검색할 때 BumpOffset_Advanced 라는 또 다른 머티리얼 표현식이 보일 것입니다. Bump Offset Advanced는 일반적인 BumpOffset 노드에서는 제공되지 않는 여분의 컨트롤을 추가하기 위해 만든 머티리얼 함수입니다. Bump Offset Advanced에 추가적인 입출력이 있기는 하지만, 표면의 UV를 조작하고 오브젝트가 실제보다 더 디테일해 보이게 만드는 기본 원칙은 둘 다 동일합니다.
BumpOffset 머티리얼 표현식 사용하기
다음 단계를 따라 범프 오프셋을 사용하는 머티리얼을 생성합니다.
이 튜토리얼에서는 언리얼 엔진 시작용 콘텐츠 에 포함된 텍스처를 사용합니다. 프로젝트에 시작용 콘텐츠가 포함되어 있지 않은 경우 콘텐츠 이주하기 페이지에서 프로젝트 간에 에셋을 이동하는 방법을 확인해 보세요. 이 방식으로 현재 프로젝트에 시작용 콘텐츠를 임포트할 수 있습니다.
-
콘텐츠 브라우저에서 우클릭 하고 컨텍스트 메뉴의 기본 에셋 생성(Create Basic Asset) 섹션에서 머티리얼(Material) 을 선택합니다. 머티리얼의 이름을 이를테면 'BumpOffset'으로 변경합니다.
-
콘텐츠 브라우저에서 머티리얼 에셋을 더블클릭 하여 머티리얼 에디터에서 엽니다.
-
이 예시에서는 3개의 텍스처 샘플을 사용하여 데이터를 베이스 컬러(Roughness), 러프니스(Roughness), 노멀(Normal) 입력으로 전달합니다. 콘텐츠 브라우저에서 콘텐츠(Content) > 시작용 콘텐츠(Starter Content) > 텍스처(Textures) 로 이동하여 아래에 나열된 텍스처 3개를 찾습니다.
- T_Brick_Clay_New_D
- T_Brick_Clay_New_M
- T_Brick_Clay_New_N
콘텐츠 브라우저에서 텍스처 3개를 모두 머티리얼 그래프로 드래그하여 텍스처 샘플로 추가합니다. 그래프는 아래 이미지와 같습니다.
-
아래 이미지에 표시된 대로 텍스처 샘플을 메인 머티리얼 노드에 연결합니다.
- T_Brick_Clay_New_D 의 RGB 출력을 Base Color 입력에 연결합니다.
- T_Brick_Clay_New_M 텍스처의 레드 채널을 Roughness 입력에 연결합니다. 이 경우 RGB가 아닌 R 출력 핀을 사용해야 합니다.
- T_Brick_Clay_New_N 의 RGB 출력을 Normal 입력에 연결합니다.
-
위의 3개 메서드 중 하나를 사용하여 그래프에 Bump Offset 머티리얼 표현식을 추가합니다.
-
Bump Offset 표현식은 이미 그래프에 존재하는 텍스처 샘플 3개의 UV를 수정합니다. BumpOffset 노드의 출력 핀을 텍스처 샘플의 UVs 핀에 연결합니다. 그래프의 모습은 아래와 같습니다.
Bump Offset 머티리얼 표현식을 텍스처 샘플 3개 중 하나의 UV 입력에 처음으로 연결하는 경우 BumpOffset 노드 하단에 오류 메시지가 뜹니다. Bump Offset 머티리얼 표현식이 올바르게 기능하려면 하이트 맵이 필요한데, 하이트 맵이 아직 제공되지 않았기 때문입니다. 텍스처를 Height 입력에 연결하면 이 오류는 사라집니다.
-
Bump Offset 머티리얼 표현식의 Height 입력에는 검은색 및 흰색 하이트 맵이 필요합니다. 머티리얼의 베이스 컬러에 사용되는 T_Brick_Clay_New_D 텍스처 샘플에도 알파 채널 에 저장된 하이트 정보가 있습니다. T_Brick_Clay_New_D 텍스처 샘플을 선택하고 Ctrl + D 를 눌러 노드를 복제합니다. 노드를 그래프 왼쪽으로 이동한 다음 A 출력을 BumpOffset 노드의 Height 입력에 연결합니다.
-
'UV 스위밍(UV swimming)'으로 알려진 이펙트를 방지하려면 Bump Offset 표현식의 세팅을 수정해야 합니다. UV 스위밍은 시차 이동 이펙트가 너무 강해 텍스처가 카메라 이동에 따라 메시 표면을 슬라이딩하는 것처럼 보이는 현상을 말합니다. 그래프에서 BumpOffset 노드를 선택하고 디테일 패널에서 높이 비율(Height Ratio) 값을 0.05에서 0.005 로 변경합니다.
-
높이 비율을 설정했으면, 툴바에서 저장(Save) 또는 적용(Apply) 을 클릭하여 머티리얼을 컴파일합니다. 머티리얼을 컴파일 및 저장하면 레벨의 오브젝트에 적용할 수 있습니다.
슬라이더를 양옆으로 움직여 범프 오프셋을 사용할 때와 사용하지 않았을 때 스피어가 어떤 모습인지 확인하세요. 범프 오프셋을 사용할 때 벽돌의 깊이감이 어떻게 깊어지는지 눈여겨보세요. 이 이펙트는 카메라가 움직일 때 훨씬 더 선명하게 나타납니다.


BumpOffset 추가 전후의 벽돌 머티리얼
결론
Bump Offset 머티리얼 표현식을 사용하면 3D 지오메트리를 추가하지 않아도 머티리얼에 뎁스 정보를 저렴하고 매우 효과적인 방식으로 추가할 수 있습니다. 그러나 Bump Offset 머티리얼 표현식이 실제로 메시의 실루엣을 수정하거나 지오메트리를 변경하지는 않습니다. 대부분의 경우에는 깊이감이 효과적으로 연출되지만, 보는 사람이 카메라를 범프 오프셋 머티리얼이 적용된 표면과 평행하게 움직이는 상황에서는 이펙트가 깨져 보일 수도 있습니다.