[UE5] Distance Field - 개요

상큼조각미녀·2025년 3월 11일

언리얼

목록 보기
1/3

날짜 : 2025-03-11
이름 : 신성현
주제 : Distance Field에 대하여
언리얼 버전 : UE 5.4.4

개요

Distance field를 처음 접한 것은 업무 중 진행한 최적화 작업에서였습니다. 당시 메모리 인사이트를 활용하여 사용량을 분석하던 도중 Distance Field가 많은 메모리를 차지하고 있는 것을 확인하였기 때문에 정확한 원리와 활용 방안에 대해 자세히 알아볼 필요성을 느껴 관련 내용을 찾아보게 되었습니다. 이 과정에서 Distance Field가 생각했던 것보다 더 다양한 응용 분야를 가지고 있다는 사실을 알게 되어 Distance Field의 개념과 관심있게 본 활용처에 정리하고자 합니다.

Distance Field (거리 필드)란?

Distance Field (DF) 라는 것은 픽셀이나 복셀 같은 반복되는 공간 내 특정 위치에서 가장 가까운 표면 또는 경계까지의 거리를 미리 계산하여 저장하는 데이터 구조입니다. UE5에서는 스태틱 메시의 표현을 위해 Signed Distance Field (SDF) 를 사용하고 있고 이번 포스팅에서는 이를 다룰 예정입니다.

SDF와 DF의 차이는, DF는 외부 영역에 대한 거리만 가지고 있는 반면에 SDF는 여기에 더해 내부 역역에 대한 거리도 음수로 가지고 있습니다. 위의 이미지를 참고하면 더욱 이해가 쉬울 것 같습니다.

스태틱 메시의 SDF는 위와 같이 볼륨 텍스처에 저장됩니다.

UE에서 Mesh Distance Field 확인 방법

언리얼에서 Distance Field에 대해서 깊이 있게 살펴보지 않아 간단하게만 내용을 추가하고 마무리 하도록 하겠습니다.

우선 디버깅 방법입니다. 아래 시각화 옵션을 활성화하여 언리얼에서도 직접 확인해볼 수 있습니다.

앞서 설명한 이미지와는 다소 다른데요. 아마도 디버깅을 위해서 일정 값 이상, 이하는 클립핑 한 것이 아닐까 싶습니다.

메시의 빌드 옵션을 통해 디스턴스 필드의 해상도를 조절할 수 있습니다. 해상도가 높아지면 품질이 높아지는 반면 메모리 사용량이 증가하게 됩니다. 공식 문서에는 하나의 메시가 가질 수 있는 볼륨 텍스처 최대 크기는 128x128x128이라고 언급되어 있지만, 확인해보니 실제로는 그보다 더 큰 크기도 가능하였습니다.

레퍼런스

https://do-workspace.tistory.com/51
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/mesh-distance-fields-in-unreal-engine

profile
게임 개발자입니다.

0개의 댓글