오랜 시간동안 미술은 자연을 모방하고 일정한 규칙을 발견하며 다양한 기술들이 발전했고 오늘날 3D 분야에 이르러서도 자연에 근접하려는 앞선 예술의 지향점을 따라가고 있습니다. 오늘 다룰 것은 가장 자연스러운 과정으로 빛을 설정하는 환경 맵핑(Environment Mapping)에 대한 것입니다.
환경 맵핑
환경 매핑은 구글 맵의 스트리트 뷰처럼 그 자리에 서서 360도 어느 방향으로도 볼 수 있도록 제작된 이미지를 말합니다. 이러한 주변 환경 정보에 따라 3D 오브젝트의 영향을 받게 할 수 있다면 무척 사실적인 광원 효과를 낼 수 있겠죠? 환경 맵이 등장한 것은 이런 이유 때문입니다. 이런 환경 맵핑에 사용되는 이미지를 HDRI 이미지라고 합니다. 환경 맵(Map)은 일정한 약속에 의해 맵핑(Mapping)되어 지는데 크게 3가지 매칭 방식이 있습니다.
큐브 맵 방식
게임이나 가상 시뮬레이션에서 가장 많이 쓰이는 방식은 큐브 맵(Cube Map) 방식으로 6개 면에 이미지를 맵핑시킵니다. 적용된 리소스가 가볍다는 장점이 있지만 촬영시 특수 장비가 필요하다는 단점이 있습니다. 아래에서 설명할 ‘Equirectangular’ 방식으로 HDRI 이미지를 만들었을 때 큐브 맵으로 전환해 사용하기도 합니다.
밀러 볼 방식
영화 특수효과 분야에서는 밀러 볼 (Mirror Ball) 방식을 주로 사용합니다. 밀러 볼을 세워두고 정면으로 사진만 찍으면 되기 때문에 직관적이고 신속하게 환경 맵을 만들수 있다는 장점이 있지만 360도 모든 방향을 다 담을 수 없다는 단점이 있습니다.
이퀴렉탱귤러 방식
마지막으로 이 튜토리얼에서 사용 할 ‘Equirectangular’ 방식은 전문 촬영 장비를 통해 360도 모든 상을 기록하는 방식입니다. 이렇게 제작된 이미지는 3D 구체에 맵핑해 큐브 맵 보다 정밀하게 구현할 수 있다는 장점이 있습니다.
Google Camera
위에서 보았듯이 HDRI 이미지를 만들기 위해서는 전문적인 장비들이 필요하지만 기술이 발전함 따라 스마트 폰으로 간편하게 만들 수 있는 방법이 있습니다. 스마트 폰에는 다양한 VR, 파노라마 카메라 앱이 있지만 대표적으로 구글에서 만든 Google Photo Sphere를 추천합니다. 안드로이드 버전에는 구글 카메라에 포함되어 있고 아이폰에는 독립된 프로그램으로 있기 때문에 OS에 맞추서 설치하세요.
이 카매라 앱으로 촬영한 HDRI 이미지는 Equirectangular 방식으로 이미지를 저장하기 때문에 3D 소프트웨어에서 불러올 때는 Equirectangular 방식을 사용해야 합니다.
이 앱으로 HDRI 사진을 만들기 위해서 여러 장의 사진을 찍어야 하기 때문에 노출 값이 다를 경우가 생깁니다. 하지만 사용해 보니 저장 할 때 노출을 자동으로 맞춰줍니다. 이런 식으로 환경 맵핑에 사용할 이미지를 만들었다면 다음은 3D 프로그램에 불러와 적용해 볼 차례입니다.
Environment In Blender
이렇게 촬영한 이미지를 블렌더에 적용해 볼 차례입니다. 블렌더를 실행해 노드 에디터를 불러옵니다. 우선 상단 바에서 Cycles 렌더러를 선택합니다.
위의 순서대로 설정하면 자동으로 백그라운드 노드가 생성되어 월드 표면(World Output – Surface) 연결 됩니다. Color는 단일 색 뿐 아니라 x,y 공간에 있는 색의 값(쉽게 말해 이미지)도 읽어드리기 때문에 이곳에 환경 맵을 연결해 주면 값이 반영 됩니다.
Open 버튼을 눌러 촬영한 HDRI 이미지를 불러오면 환경 맵이 적용 됩니다
이런 방식으로 간단하게 환경 맵을 제작하고 적용해 볼 수 있습니다. 블렌더에서 렌더링 할 때 백그라운드를 안보이게 하려면 설정>렌더링 탭에서 Film>Transparent를 체크하면 됩니다.