본문 바로가기
언리얼 엔진/Art

SceneCaptureCube를 사용하여 언리얼에서 HDRI 생성하기

by z03y 2024. 12. 19.

Cubemap 텍스처를 사용한 Skylight는 사실적인 환경 조명을 구현하는데 효과적인 방법 중 하나다. 라이팅 뿐만 아니라 유리나 거울같은 반사 재질에 대한 표현을 최적화시키는데에도 유용하게 쓸 수 있다.

이번 포스팅에서는 언리얼에서 SceneCaptureCube를 사용해 Cubemap을 생성하고 이를 Skylight에 적용하는 방법에 대해 다룰 것이다.

 


 

📸 SceneCaptureCube 설정하기

환경 소스로 캡처할 레벨을 준비한다.

 

Scene Capture Cube 액터를 추가하고 Texture target에서  Cube Render Target을 생성한다.

 

생성한 Cube Render Target을 클릭하여 디테일 패널을 연다.

 

디테일 패널을 열면 우측에 있는 Size X를 조정하여 캡처 해상도를 설정한다. (2의 배수 값인 512, 1024, 2048를 사용한다)
장면은 Scene Capture Cube 액터를 추가하면 보이는 카메라 컴포넌트의 뷰가 자동으로 렌더링된다. 액터 위치를 조정하여 캡처를 위한 적절한 위치에 배치한다.

 

캡처하는 환경에 움직임이 많으면 성능에 무리가 갈 수 있다. 변화하는 Frame마다 추가로 Scene Capture에 업데이트하는 비용이 소모되기 때문이다. 이때 경우에 따라 Capture Every Frame 옵션을 해제하여 최적화에 도움을 줄 수 있다.

기본적으로 Scene Capture는 텍스처가 클수록 지속적으로 캡처하는 속도가 느려진다. 그래서 캡처를 완료한 후에는 Scene Capture Cube 액터를 비활성하거나 숨기거나 삭제하는 것을 권장한다.

 

 

📸 Cubemap 텍스처 캡처하기

캡처할 뷰가 설정이 되었다면 컨텐츠 브라우저에서 Cube Render Target 우클릭 > Create Static Texture를 클릭한다.

 

 

📸 Cubemap을 Skylight에 적용하기

맑은 하늘의 다른 레벨을 열고, 위의 어두운 하늘에서 캡처한 Cubemap 텍스처를 적용해볼 것이다.

 

Skylight의 Cubemap 반사를 잘 볼 수 있도록 사각형, 실린더 액터의 재질을 거울로 바꿨다. 주변에 아무것도 없다보니 바닥외에는 블랙으로 렌더링된다.

 

Skylight가 없다면 추가해주고, 디테일 패널에서 Source Type을 SLS Specified Cubemap으로 바꾼다. 그리고 Cubemap은 이전 레벨에서 만든 것을 추가한다.

 

이제 아래 이미지처럼 이전 레벨(어두운 하늘)의 환경 값이 적용되어 라이트와 반사가 적용된다.

 

이 방법은 라이트, 반사를 조정하는데에도 쓸 수 있지만 의도에 따라 특이한 연출도 가능하다. 3D 소스이기 때문에 Scene Capture Cube를 사용했지만 2D 버전의 Scene Capture 2D를 사용하면 평면 이미지를 캡처하여 CCTV 같은 느낌도 줄 수 있다.

 

📸 HDR 내보내기

HDR 파일 형식으로 Scene Capture Cube를 익스포트하는 방법이다.

 

컨텐츠 브라우저에서 익스포트할 Cube Render Target 우클릭 > Asset Actions > Export 한다.

 

.HDR 파일 타입을 선택한다.

 

.HDR 타입의 출력물은 포토샵에서 추가 보정을 하거나 바로 사용할 수 있다.

반응형