OPENCG

오픈 소스로 애니메이션 만들기

환경 맵핑 Environment Mapping

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.
토픽 OPENCG > 3D > 블렌더 3D

오랜 시간동안 미술은 자연을 모방하고 일정한 규칙을 발견하며 다양한 기술들이 발전했고 오늘날 3D 분야에 이르러서도 자연에 근접하려는 앞선 예술의 지향점을 따라가고 있습니다. 오늘 다룰 것은 가장 자연스러운 과정으로 빛을 설정하는 환경 맵핑(Environment Mapping)에 대한 것입니다.

환경 맵핑

환경 매핑은 구글 맵의 스트리트 뷰처럼 그 자리에 서서 360도 어느 방향으로도 볼 수 있도록 제작된 이미지를 말합니다. 이러한 주변 환경 정보에 따라 3D 오브젝트의 영향을 받게 할 수 있다면 무척 사실적인 광원 효과를 낼 수 있겠죠? 환경 맵이 등장한 것은 이런 이유 때문입니다. 이런 환경 맵핑에 사용되는 이미지를 HDRI 이미지라고 합니다. 환경 맵(Map)은 일정한 약속에 의해 맵핑(Mapping)되어 지는데 크게 3가지 매칭 방식이 있습니다.

큐브 맵 방식

게임이나 가상 시뮬레이션에서 가장 많이 쓰이는 방식은 큐브 맵(Cube Map) 방식으로 6개 면에 이미지를 맵핑시킵니다. 적용된 리소스가 가볍다는 장점이 있지만 촬영시 특수 장비가 필요하다는 단점이 있습니다. 아래에서 설명할 ‘Equirectangular’ 방식으로 HDRI 이미지를 만들었을 때 큐브 맵으로 전환해 사용하기도 합니다.

큐브 맵(Cube Map) 방식
큐브 맵(Cube Map) 방식

밀러 볼 방식

영화 특수효과 분야에서는 밀러 볼 (Mirror Ball) 방식을 주로 사용합니다. 밀러 볼을 세워두고 정면으로 사진만 찍으면 되기 때문에 직관적이고 신속하게 환경 맵을 만들수 있다는 장점이 있지만 360도 모든 방향을 다 담을 수 없다는 단점이 있습니다.

밀러 볼 (Mirror Ball) 방식

이퀴렉탱귤러 방식

마지막으로 이 튜토리얼에서 사용 할 ‘Equirectangular’ 방식은 전문 촬영 장비를 통해 360도 모든 상을 기록하는 방식입니다. 이렇게 제작된 이미지는 3D 구체에 맵핑해 큐브 맵 보다 정밀하게 구현할 수 있다는 장점이 있습니다.

발음도 어려운 ‘Equirectangular’ 방식

Google Camera

위에서 보았듯이 HDRI 이미지를 만들기 위해서는 전문적인 장비들이 필요하지만 기술이 발전함 따라 스마트 폰으로 간편하게 만들 수 있는 방법이 있습니다. 스마트 폰에는 다양한 VR, 파노라마 카메라 앱이 있지만 대표적으로 구글에서 만든 Google Photo Sphere를 추천합니다. 안드로이드 버전에는 구글 카메라에 포함되어 있고 아이폰에는 독립된 프로그램으로 있기 때문에 OS에 맞추서 설치하세요.

Google Camera
Google Camera
Photo Sphere Camera
Photo Sphere Camera

이 카매라 앱으로 촬영한 HDRI 이미지는 Equirectangular 방식으로 이미지를 저장하기 때문에 3D 소프트웨어에서 불러올 때는 Equirectangular 방식을 사용해야 합니다.

구글 Photosphere는 스마트 폰으로 쉽게 HDRI 이미지를 만들 수 있도록 설계 됬습니다.
구글 Photosphere로 촬영한 사진

이 앱으로 HDRI 사진을 만들기 위해서 여러 장의 사진을 찍어야 하기 때문에 노출 값이 다를 경우가 생깁니다. 하지만 사용해 보니 저장 할 때 노출을 자동으로 맞춰줍니다. 이런 식으로 환경 맵핑에 사용할 이미지를 만들었다면 다음은 3D 프로그램에 불러와 적용해 볼 차례입니다.

Environment In Blender

이렇게 촬영한 이미지를 블렌더에 적용해 볼 차례입니다. 블렌더를 실행해 노드 에디터를 불러옵니다. 우선 상단 바에서 Cycles 렌더러를 선택합니다.

node_evb
(1) 노드 에디터 선택 / (2) 쉐이더 노드 선택 / (3) 월드 선택 / (4) Use Nodes 선택

 위의 순서대로 설정하면 자동으로 백그라운드 노드가 생성되어 월드 표면(World Output – Surface) 연결 됩니다. Color는 단일 색 뿐 아니라 x,y 공간에 있는 색의 값(쉽게 말해 이미지)도 읽어드리기 때문에 이곳에 환경 맵을 연결해 주면 값이 반영 됩니다.

Shift + A를 눌러 환경 맵(Environment Texture) 노드를 불러옵니다. 
불러온 환경 맵 노드의 Color를 백그라운드 Color와 연결합니다.
Mirror Ball과 Equirectangular 방식을 사용할 수 있습니다.
Mirror Ball과 Equirectangular 방식을 사용할 수 있습니다.

Open 버튼을 눌러 촬영한 HDRI 이미지를 불러오면 환경 맵이 적용 됩니다

환경 텍스처에 HDRI 파일을 불러 온 모습
3D 뷰 에디터 설정 창(단축키 N) > Display > World Background 기능을 켜면 뷰포트에서 확인할 수 있습니다.
환경 맵이 적용된 이미지

이런 방식으로 간단하게 환경 맵을 제작하고 적용해 볼 수 있습니다. 블렌더에서 렌더링 할 때 백그라운드를 안보이게 하려면 설정>렌더링 탭에서 Film>Transparent를 체크하면 됩니다.

  • 봤어요 0명

댓글

댓글 본문