복셀

복셀 엔진 에디터로 만든 Nod의 어택 바이크.

1. 개요
2. 특징
3. 장점
4. 게임에서
5. 치명적인 단점
6. 미래
7. 복셀 엔진을 사용하는 게임

1. 개요

복셀(Voxel)은 2차원적인 픽셀(도트)을 3차원의 형태로 구현한 것이라 할 수 있다. Voxel은 Volume + Pixel의 합성어로 '부피를 가진 픽셀'이라 할 수 있다. 작은 정육면체 또는 부피요소로 나눠질 수 있는 오브젝트를 렌더링하는 기술인데 보통은 하나의 공간을 빈틈없이 채울 수 있는 정육면체를 사용한다. 복셀그래픽에서 모든 복셀의 모양과 크기는 동일하며 하나의 복셀은 하나 이상의 특성값(파라미터)을 가질 수 있다. 특성값을 전혀 갖지 않는 복셀그래픽도 가능은 하지만 그리 유용하지는 않고(정의하는 복셀 공간 전체가 똑같은 복셀로 가득찬 덩어리 하나만 존재할 수 있는데 유용할리가) 보통 색상값 정도의 특성값 정보는 가지고 있다. 물론 색상값 이상의 정보도 담을 수 있는데, 이 점을 이용하여 복셀 표면의 텍스처 정보를 저장해 만든 것이 바로 마인크래프트이다. 구체적으로는 복셀의 블럭 ID값과 추가 상태 정보(내구도 등)를 저장하고 있으며 마인크래프트의 렌더링 엔진은 복셀의 블럭 ID값에 따라 텍스처 라이브러리에서 정육면체 텍스처를 불러와 복셀 표면을 렌더링한다. 단, 블럭에만 한정하고 캐릭터나 엔티티(액자 같은 것)는 폴리곤 그래픽이다. 산업적으로는 엑스선, 음극선, 자기 공명 영상(MRI) 등에서 복셀그래픽을 사용한다.

2. 특징

폴리곤 그래픽이 세 개의 정점 정보(버텍스)로 삼각형을 만들고 그 표면에 텍스처를 입히는 것에 비해서, 복셀은 모양이 동일한 정육면체를 모아 물체를 표현하기 때문에 연산이 많아진다. 그래서 물체가 많아지거나 공간이 커지면 폴리곤 그래픽에 비해 급격히 속도가 느려진다는 단점이 있다. 특히 큰 물체를 표현할 때 복셀그래픽은 정직하게 복셀의 수를 늘려서 물체를 표현해야 하지만 폴리곤 그래픽의 경우 고해상도 텍스처만 잘 준비했다면 그냥 큰 삼각형 몇 개만으로 큰 물체를 그려낼 수 있다.

반면에 폴리곤이 일반적으로 표면의 표현에 치중하는 반면 복셀은 공간 전체에 대해 특성값을 기록하기 때문에 MRI 등 입체적인 물체의 단면 표시 및 부분 재구성이 가능하여 의료영상 등에 사용되고 있다.

3. 장점

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

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

또한 픽셀처럼 입자 하나하나인 셈이나 마찬가지이기 때문에, 건물이 부서지는 이펙트나 지반이 무너지는 효과 등에 스크립트를 세세히 적용하지 않아도 되며, 물이나 모래의 모습도 제한적이면서 나름대로 디테일한 구현이 가능하다. 입자의 특성값에 점도, 마찰력 등의 파라미터만 적용해 주면 나머지는 물리 엔진이 알아서 계산해낸다. 물론 알아서 계산한다는거지 그 계산 결과가 디자이너의 의도대로인지는 별개의 이야기다. 예를 들어 건물을 중화기로 공격하면 파괴되도록 디자인했는데 건물이 파괴되는 모양이 콘크리트가 부서지는 게 아닌 무슨 모래성 허물어지는 것처럼 보일 수도 있다.

여담으로 복셀그래픽 기반으로 지형을 렌더링한 경우 벽뚫기버그가 존재할 수 없다는 장점도 있다. 구체적으로는 표면의 복셀 하나 정도는 뚫고 들어갈 수 있지만 그 다음 층의 복셀을 볼 뿐이다.

4. 게임에서

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

시드 마이어의 알파 센타우리는 지형과 유닛을 복셀로 구현하였다. 덕분에 유닛은 부품을 조합한 모듈식 설계로 만들 수 있었고, 지형은 64m 단위로 고저차를 구현하였다. 문명 시리즈에서 지형의 높낮이가 산악/바다 타일이 아니라 실제 높낮이로 계산되는 작품은 알파 센타우리가 유일하다.

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

5. 치명적인 단점

그러나 이 복셀 기술에는 치명적인 단점이 존재하는데, 해상도가 올라갈 수록 연산량이 기하급수적으로 늘어난다는 것이다. 기본적으로 폴리곤의 복잡도(내지 디테일)가 면적에 비례하는 반면(즉 제곱) 복셀은 부피에 비례(즉 세제곱)한다. 단순하게 생각해보면 복셀 1개 = 폴리곤 1개나 다름없는데 저해상도에서는 복셀 1개에 해당하는 부피가 가로 세로 두배, 총 네 배의 고해상도에서는 8배의 부피가 된다. 이렇게 늘어나는 연산량은 GPU 등의 보조로 해결할 수 있는 수준이 아니었고, 폴리곤 기반으로 3D 기술이 발달하면서 질좋은 텍스처와 다양한 렌더링 기술을 통해 훌륭한 그래픽을 뽑아낼 수 있게 되면서 복셀 기술의 장점이 의미를 잃게 되었다.

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

6. 미래

복셀을 이용한 연기 입자 효과

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

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

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

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

복셀을 응용한 실시간 글로벌 일루미네이션인 VXGI 기법도 있다. 일반적인 오프라인 렌더러에서 쓰는 Path tracing은 실시간으로 처리하기에 연산량이 지나치게 많으므로 실시간으로 3차원 공간을 복셀 Octree로 재구성한 뒤에 이 복셀 맵 내부에서 Path tracing과 Occlusion 계산을 하면 연산량을 절약함과 동시에 근사한 결과를 얻을 수 있다.

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

  • 에이스 오브 스페이드
  • 노바로직의 초기 게임들
  • 시드 마이어의 알파 센타우리 - 복셀 엔진 덕분에 자세한 지형 고저차와 유닛을 조합해서 만드는 시스템을 구현할 수 있었다.
  • 마인크래프트 - 마인크래프트 게임 내에서 만든 각종 건축물은 훌륭한 복셀그래픽이지만 마인크래프트의 그래픽기반은 복셀마냥 네모네모해서 그렇지 오히려 폴리곤 그래픽이다. 근본까지 복셀이면 텍스쳐팩 만들다가 으앙 주금
  • 구 에이스 오브 스페이드
  • 커맨드 앤 컨커 타이베리안 선, 레드얼럿2 - 2D RTS에서 복셀을 쓴 몇 안되는 경우다. 덕분에 유닛이 충격에 의해 기울어지는 등 자연스럽고 자유로운 움직임을 구현할 수 있었다. 물론 동시에 당시 컴퓨터 사양으로는 유닛이 조금만 많아져도 매우 버벅였던 것은 단점.
  • 복셀 모드 둠 - 2020-04-09 19:09:50 기준으로 아직 아이템과 주변 사물만 구현되었다. 구글링해보면 시범삼아 제작된 임프카코데몬의 몬스터 복셀모델 이미지도 드물게 보이나 아직 별도의 모드로 실장되지는 않은 상태.
  • 빌드 엔진으로 제작가능한 FPS 게임들 - 부분적인 복셀 그래픽을 지원했지만, 정작 이 엔진으로 개발된 상업용 FPS 게임중 복셀기능을 채용한건 말기의 아래 두 작품 뿐이었다. 아이템만 복셀 모드로 나오고, 아이템 그래픽을 복셀로 하느냐 평면도트로 하느냐의 토글기능이 존재했다. 듀크 뉴켐 3D의 경우 원래 복셀은 전혀 안쓰인 게임이지만 아이템뿐만 아니라 몬스터까지도 복셀로 변환해주는 MOD가 존재.
  • 니드 포 스피드1/1SE
  • 큐브월드 - 그래픽 기반부터가 복셀을 지향한다. 무기 커스터마이즈도 복셀기반의 그래픽을 활용한 예시.
  • 3D 도트 게임 히어로즈 - 큐브월드와 비슷한 PS게임
  • 파라노티컬 액티비티 - 디게라티에서 만든 로그라이크 FPS게임...이지만 실상은 유니티 3D 엔진으로 폴리곤 모델 작성만 복셀인척 한 게임이다.
  • 캐슬스토리
  • 트로브
  • From The Depths
  • 플래닛 코스터 - 지형편집 부분에서 복셀을 이용하여 현실적이고 독창적인 지형 생성이 가능하다.
  • 하데스(게임) - 무려 국산 FPS 게임이다.
  • 8-Bit Armies, 8-Bit Hordes, 8-Bit Invaders!
  • 소프트웨어 렌더링 기반 모든 게임.


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

최종 확인 버전:

cc by-nc-sa 2.0 kr

Contents from Namu Wiki

Contact - 미러 (Namu)는 나무 위키의 표가 깨지는게 안타까워 만들어진 사이트입니다. (59.42ms)