복셀

Voxel


복셀 엔진 에디터로 만든 Nod의 어택 바이크.
메가복셀 기술이라고도 한다.


1 개요

복셀은 2차원적인 픽셀(도트)을 3차원의 형태로 구현한 것이라 할 수 있다. Voxel은 Volume + Pixel의 합성어로 지형지물 데이터를 만들 때 주로 쓰이며, 대상물은 부피를 갖게 된다. 가끔씩 Box + Pixel을 합친 Boxel이라고 생각하는 사람이 있는데 절대 아니다. 작은 정육면체 또는 부피요소로 나눠질 수 있는 오브젝트를 렌더링하는 기술이다. 3D 공간의 한 점을 정의한 일단의 그래픽 정보. 픽셀이 2D 공간에서 x-y좌표로 된 점을 정의한 것이기 때문에 제3의 좌표 z가 필요하다. 3D에서 각 좌표는 위치, 컬러 및 밀도를 나타내며, 이 정보와 3D 소프트웨어로 여러 각도에서 2D 화면을 만들 수 있다. 엑스선, 음극선, 자기 공명 사진(MRI)을 여러 각도에서 보기 위해 복셀로 된 영상을 사용한다.


2 특징

벡터 방식인 3D 폴리곤이 좌표로 물체를 생성하고 텍스처를 입히는 것에 비해서, 복셀은 수천개의 픽셀을 레고 짜맞추듯 덩어리로 모아 표현하기 때문에 연산이 많아진다. 그래서 물체가 많아지거나 공간이 커지면 폴리곤에 비해 급격히 속도가 느려진다는 단점이 있다. 반면에 폴리곤이 일반적으로 표면의 표현에 치중하는 반면 복셀은 공간 전체에 대해 특성값을 기록하기 때문에 MRI 등 입체적인 물체의 단면 표시 및 부분 재구성이 가능하여 의료영상 등에 사용되고 있다.MRI찍었는데 폴리곤 그래픽이라서 위가 깨져버리면 곤란하다.


3 장점

왼쪽이 노바로직코만치, 오른쪽이 다이나믹스태평양의 에이스들. 같은 1992년에 나온 게임이다.
태평양의 에이스들도 당시에는 최상급의 그래픽으로 평가받았다는 걸 염두에 두자.

일단 초창기의 저질스럽기 짝이 없는 목각인형에 합판소문스러운 폴리곤 기술과 비교하자면, 복셀 쪽이 제법 리얼하게 보인다. 초창기의 폴리곤은 약간만 돌려도 심심하면 깨지는 데다가 모델링도 큼직한 상자 몇 개를 대강 붙여 놓은 것같이 조악했고 텍스처도 꽤나 저질이라 상자 위에 그림 그려놓은 수준으로 밖에 보이지 않았다. 복셀은 비교적 깨짐이 적고 그 자체로 상당히 양감이 있어서 텍스처보다 그럴듯해 보였다.

또한 픽셀처럼 입자 하나하나인 셈이나 마찬가지이기 때문에, 건물이 부서지는 이펙트나 지반이 무너지는 효과 등에 스크립트를 세세히 적용하지 않아도 되며, 물이나 모래의 모습도 제한적이면서 나름대로 디테일한 구현이 가능하다.


4 게임에서

이 기술은 몇몇 게임들에서 구현되어 사용되었다. 대표적으로 웨스트우드에서 제작한 커맨드 앤 컨커 타이베리안 선이다. 또한 3D 카드 없이 소프트웨어적으로 3차원 지형이나 물체를 표현할 수 있었기 때문에, 복셀 스페이스라고 부르는 이것은 노바로직의 헬기 시뮬레이션 코만치와 FPS인 델타 포스에서 처음 도입해 큰 호응을 얻었다.

타이베리안 선에서도 쓰인 기술이었다. 나름대로 복셀을 잘 이용해 지형에 따라 유닛의 기울기가 변하는 그래픽을 뽑아 냈지만, 그 때문에 유닛이 많아지게 되면 게임이 버벅거리게 되었다.[1][2][3]


5 치명적인 단점

이 엔진에는 치명적인 단점이 존재하는데, 해상도가 올라갈 수록 연산량이 기하급수적으로 늘어난다는 것이다. 기본적으로 폴리곤의 복잡도(내지 디테일)가 면적에 비례하는 반면(즉 제곱) 복셀은 부피에 비례(즉 세제곱)한다. 단순하게 생각해보면 복셀 1개 = 폴리곤 1개나 다름없는데 저해상도에서는 복셀 1개에 해당하는 부피가 가로 세로 두배, 총 네 배의 고해상도에서는 8배의 부피가 된다.

이렇게 늘어나는 연산량은 GPU 등의 보조로 해결할 수 있는 수준이 아니었고, 폴리곤 기반으로 3D 기술이 발달하면서 질좋은 텍스처와 다양한 렌더링 기술을 통해 훌륭한 그래픽을 뽑아낼 수 있게 되면서 복셀 기술의 장점이 의미를 잃게 되었다.

또한 폴리곤 방식에 비해 애니메이션을 구현하기가 난해하다. 이러한 것 때문에 게임에서는 주로 지형 구현에 촛점을 둔 복셀 엔진을 개발하고 있다.


6 미래

krakatoa15_fumefx_vr_dens4-2_fire.png
복셀을 이용한 연기 입자 효과

복셀 기술은 시대를 많이 앞서 나간 기술이었다. 그렇기 때문에 초창기의 폴리곤에 비해 약간 더 좋았기 때문에 반짝했으나 점차적으로 폴리곤 그래픽이 발전하기 시작하며 점점 사장되기 시작하였다. 그러나 아직까지도 폴리곤이 따라갈 수 없는 복셀만의 장점이 있기 때문에 언리얼 엔진이나 크라이엔진을 이용한 게임에서는 복셀 효과를 일부 혼합하여 사용하기도 한다.[4]

90년대에 비하면 CPU와 GPU의 성능이 무시무시하게 올라갔고 CUDA 처럼 GPU를 병렬연산에 동원하는 기술도 도입되면서, 몇몇 게임사에서는 아예 인물 등의 그래픽은 폴리곤으로, 지형이나 스크립트 등은 복셀로 구현하고자 하는 것까지 하고 있다. 그렇기 때문에, 더욱더 현실감 있으면서도 하드웨어에 많이 부담을 주지 않는[5] 수준의 게임 제작도 가능할 것이다.

미래가 돼서 CPU의 수준이 더 좋아지게 되거나 그래픽카드 가속 지원 등이 가능해진다면 복셀 엔진을 주로 하는 게임도 많아질 것이다.

물체의 변형이 포함되는 물리 시뮬레이션에도 내부적으로는 복셀 기반인 경우가 많다.

2014년 기준으로 엔비디아 사에서 [Flameworks]라는 복셀 프레임워크를 개발하였다.[6] 불 관련 물리 시뮬레이션과 그래픽을 동시에 구현하는데, 광학적인 특성과 물리적 특성이 전문 시뮬레이션 소프트웨어들[7]과 상등한 결과값을 나타내면서도 실시간으로 처리할 수 있게 되었다.


7 복셀 엔진을 사용하는 게임

8 참고자료

[복셀엔진의 부활. 폴리곤을 무시하는 무시무시한 소프트랜더링 - 출처: 디씨인사이드 고전게임 갤러리]
[복셀 오트리 관련 PT영상 - 루리웹]


[Gigavoxel 프로젝트 영상 외 - 루리웹]
  1. 이 때가 1998~9년인 것을 감안한다면 더 심각한 수준이었을 것이다. 당장 지금의 하이엔드 급으로 이 게임을 해도 유닛을 잔뜩 뽑아놓다 보면 튕기기가 다반사이다. 그러니 램이 100MB도 안 되던 시절에는 얼마나 게임이 느릿느릿 했을지 더 이상의 자세한 설명은 생략한다.
  2. 더군다나 인구수 200의 제한이 있었던 스타크래프트에 비해, 시리즈에서는 자금만 있다면 무한대로 유닛을 생산할 수 있었다.
  3. 그런데 재미있는 건, 노바로직의 코만치 같은 경우, 폴리곤 기반의 엑스윙보다 우월한 프레임을 보여주는 게 보통이었다.
  4. 크라이시스에서 복셀 오브젝트가 쓰였고 기어즈 오브 워에서의 블러드 복셀 효과 등이 있다.
  5. 어디까지나 복셀만을 썼을 때보다는 더 낫다는 것이다. 만약 이렇게 두 가지를 섞는다면 폴리곤만을 사용하는 게임보다는 하드웨어 부하가 더 많이 들어갈 것이다.
  6. 시뮬레이터들은 보통 입자 개념으로 연산을 때리기 때문에 복셀의 특성과 비슷하다고 볼 수 있다.
  7. 루시드라이트 등의 RT 시뮬레이터나 ANSYS,Flow 등의 유체 시뮬레이터