유니티코리아 오지현 필드 엔지니어

상용화된 게임 엔진을 이야기할 때 떠오르는 일종의 '이미지'가 있다. 언리얼 엔진은 어떻고, 크라이 엔진은 어떻고, 하복 엔진은 어떻고 하는 식으로 말이다. 그 중에서 유니티 엔진의 이미지를 떠올려보자면, 아무래도 '가볍게 사용할 수 있다'는 것이 아닐까 싶다.

국내에서 유니티 엔진은 모바일 게임 개발에 널리 활용되고 있다. 대체로 모바일 기반의 게임들은 PC에 비해 평균적인 사양이 낮게 잡히곤 한다. 이 두 가지 사실을 근거로, 유니티 엔진은 대개 간편하게 사용할 수 있다는 점에 초점을 맞춰 소개되어 온 경향이 있었다.

유니티코리아의 오지현 필드 엔지니어는 "포럼 등에 가보면 유니티 엔진의 라이팅(Lighting)이 딱딱하다는 이야기를 많이 듣는다"는 말로 이야기를 시작했다. 낮은 사양의 게임을 만들 때 편리하게 사용할 수 있다는 점을 강조하느라 높은 렌더링 퀄리티를 소개하는데는 그다지 신경을 쓰지 않았다는 것이다.

오지현 엔지니어는 게임의 옵션창에서 퀄리티를 조절할 수 있는 것처럼, 유니티 엔진 역시 구현하고자 하는 게임의 렌더링 퀄리티를 선택할 수 있다고 설명했다. 다만, 유니티 엔진에서는 타 엔진에 비해 낮은 사양에서도 돌릴 수 있는 옵션을 기본으로 세팅해뒀을 뿐이라는 설명이다.

그는 "라이팅에 어떤 요소가 있는지를 정확히 알고 있다면 유니티 엔진에서 더욱 다양하고 세밀한 표현이 가능하다"고 이야기하며, '빛'과 관련된 요소 몇 가지를 설명했다.

미술시간 데생으로 많이들 봤을 그 그림

학창시절, '빛의 방향'이라는 주제로 데생을 해본 사람이 있을 것이다. 하이라이트라든가 다크사이드와 같은 용어를 모른다고 해도, 빛이 어느 방향에서 오느냐에 따라 가장 밝은 곳과 가장 어두운 곳이 생긴다는 것은 많은 사람들이 알고 있는 사실이다.

빛이 들어오는 정방향의 밝기를 1, 그 반대편의 가장 어두운 지점의 밝기를 -1로 놓으면, 그 사이에는 간접광, 반사광 등에 따라 지점마다 다른 밝기가 나타나고, 그것은 1과 -1 사이에 존재하는 숫자 값으로 표현할 수 있다.

다만, 모바일 디바이스의 경우 반사광까지 처리하기가 쉽지 않아 직접 조명만 처리하는 경우가 많다. 이 경우에 사용되는 것이 하프 램버트(Half Lambert)라는 개념이다. 밸브 사의 '하프라이프'에서 도입된 바 있는 방식으로, 램버트(Lambert)에 비해 음영 표현이 많이 축약되긴 하지만 어느 정도 사실적인 표현이 가능하다.

Lambert와 Half Lambert의 비교

이와는 다른 예로, 카툰 렌더링에 사용되는 툰 램프(Toon Ramp)가 있다. 만화나 애니메이션에서 보는 것처럼 빛과 밝기의 표현이 2~3개 정도의 단계로 딱딱 끊어져서 적용되는 방식이다. 자연스러움은 덜하지만, 이 방식을 사용하면 보다 다양한 표현이 가능하다는 것이 오지현 엔지니어의 설명이다.

빛이라는 것은 눈으로 보이는 것보다 훨씬 복잡하다. 직접 내리쬐는 태양광 뿐만 아니라 땅 위에 있는 풀이나 나무 등 다양한 개체에 대해 반사가 생기면서 무수히 많은 스펙트럼(Spectrum)이 생긴다. 우리 눈에 보이는 것은 이렇게 산란한 여러 갈래의 빛이 합쳐진 총체적 결과물이다.

넓은 대지, 어딜 가든 태양광이라는 일정한 빛이 가해질 때의 설명이 일종의 일반론이라면, 실내, 그 중에서도 여러 개의 지역조명이 존재하는 경우의 라이팅 표현은 좀 더 다양한 변수를 생각해야 한다.

게임 엔진에서 실내에 위치한 지역조명 효과를 표현할 때는 여러 개의 라이트 프로브(Light Probes)를 사용해 저마다의 세팅을 거친다. 여기에 캐릭터가 서 있거나 지나가는 지점에 따라 영향을 미치는 값들을 합산해 그 총체적인 결과를 보여주는 식이다. 흔히 SH(Spherical Harmonics)라 불리는 함수를 사용하는데, 캐릭터의 위치 및 움직임에 따라 공식에 따른 값을 내서 직접 빛을 받으며 움직이는 효과를 연출하는 것이다.

여러 개의 Light Probe를 사용해 광원과 그에 따른 밝기 효과를 표현한다

사람의 피부에 대한 빛 효과를 처리할 때는 '표면하산란'이 적용된다

이 때문에 피부에 대한 라이팅은 부자연스러워지기 쉬운 까다로운 작업이 된다

오지현 엔지니어는 유니티 엔진을 활용한 넥슨의 차세대 모바일 타이틀 '야생의 땅 듀랑고'를 예로 들었다. 그는 "듀랑고는 유니티 엔진으로도 충분히 커다란 스케일의 그래픽을 표현할 수 있다는 것을 입증하고 있다"고 말했다.

또한, 그는 "향후 아트 분야에서는 물리 기반 렌더링(Physically Based Rendering, 이하 PBR)이 메인 트렌드를 이룰 것"이라고 이야기했다. 엔진 분야에서 어떻게 하면 보다 사실적으로 보일 것인가에 대한 고민의 결과물을 선보이고 있고, 유니티 엔진 역시 마찬가지라는 것이다.

실제로 아직 상용화되지는 않았지만, 새롭게 선보일 예정인 유니티5에는 이러한 트렌드가 반영되고 있다. 올해 초 처음 공개할 때부터 유니티5는 높은 사실성을 지닌 그래픽 표현이 가능하다는 점을 강조해온 바 있다.

[관련기사] 유니티, GDC서 새 버전 '유니티5' 최초 공개

기존에 사용되던 셰이더들 역시 물리적인 부분을 배제한 것은 아니었다. 다만, 에너지와 라이팅의 기본 법칙을 간략화해 흉내내는 경향이 있었다는 것이 오지현 엔지니어의 설명이다. 하지만 PBR을 사용할 경우, 보다 상식에 가까운 수준의 사실적 표현이 가능해진다.

물리 기반 라이팅은 굴절(Refraction)과 반사(Reflection)를 기반으로 이루어진다. 사람의 눈에 보이는 모든 것은 그것이 반사해내는 빛을 보여주는 것. 즉, 겉으로 전혀 반짝이지 않는 표면이라도 물질에는 고유의 스펙트럼이 존재한다.

빛이 물질의 표면에 닿으면 일부는 반사되고 일부는 굴절하며 흡수된다. 내부로 흡수된 빛은 그 안에서 분자 단위의 충돌을 반복하며 무수한 산란을 만들어내며, 이 결과가 사람의 눈으로 보이게 된다.

이러한 반사와 굴절은 표면의 거칠기까지 나타낸다. 평평한 면에서 반사된 빛은 바로 튕겨져 나오지만, 굴곡이 있는 면은 다른 굴곡에 부딪쳐 반사되지 않고 소멸되는 경우가 생긴다. 이것이 시각적으로는 거친 표면으로 보이게 된다. 흔히 이야기하는 유광, 무광 등도 유사한 원리가 적용된다.

모든 물질은 빛을 받았을 때 반사와 굴절에 관한 고유의 스펙트럼을 보인다

반사와 굴절로 인해 표면의 매끄러움과 거친 정도까지 나타나게 된다


일반적으로 알고 있는 32비트 렌더링에 비해 물리기반 렌더링의 경우 64비트 영역에서 연산이 이루어진다.

오지현 엔지니어는 "빛 역시 하나의 에너지이기 때문에 에너지 보존 법칙을 벗어날 수 없다"고 말했다. 기존 셰이더 기술은 이 법칙을 무시하고 사용되는 경우가 종종 있었지만, 물리기반 렌더링에서는 에너지 보존 법칙이 철저하게 적용된다는 설명이다.

사실적인 표현을 위해서는 직접광 뿐만 아니라 간접광도 고려해야 한다

표면 재질에 따라 다른 셰이더를 사용해야했던 과거와 달리
물리기반 렌더링에서는 하나의 셰이더로도 다양한 재질을 표현할 수 있다

끝으로 그는, 지극히 개인적인 입장이라며 그래픽 표현에 대한 의견을 전했다.

"물리적으로 정확하다고 해서 꼭 멋진 것은 아니라고 생각합니다. '모뉴먼트 밸리' 같은 경우, 물리적으로 결코 존재할 수 없는 구조임에도 훌륭한 작품성을 가졌습니다. 스타워즈에 등장하는 광선검이나 광선총 역시 물리적으로는 존재할 수 없는 개념이죠. 또, '저니'에 표현된 모습을 가리켜 그래픽적으로 비하하는 사람은 없지 않을까요.

물리기반 렌더링은 크게 봤을 때 지향해 나가야할 방향이 맞다고 생각합니다. 하지만 그것이 절대적인 정답이 될 수는 없다고 생각합니다.

앞으로 몇 년이 지나면 물리기반 렌더링이 보다 보편화되겠지만, 기존의 셰이딩 방식도 충분히 습득해 활용할 수 있도록 하셨으면 합니다."