왜 게임은 극소한 삼각형에 의해 구성되어 있나요?
게임 화면을 구성하는 최소단위는 「픽셀」이라고 불리는 정방형 닷입니다만, 3DCG 모델을 사용한 게임은 이것과 달리 무수한 극소한 삼각형(폴리곤)에 의해도 구성되어 있습니다. 왜 픽셀 등은 정방형이 아니고 삼각형이 채용되어 있는지에 대해서, Vox가 해설했습니다.
Why video games are made of tiny triangles
2018년에 발매된 오픈월드 액션 게임 '레드 데드 리뎀션2'을 플레이하는 화면과 함께 '이것은 플레이 시간이 60시간을 넘는 훌륭한 액션 어드벤처 게임입니다' 라고 하는 나레이션이 흐릅니다.
게임중에서는 말에게 솔질하는 것도 가능합니다. 먼지가 흩날리는 리얼한 표현이 장점입니다.
레드 데드 리뎀션2과 같이, 최근의 게임은 세부까지 대단히 세밀한 표현이 꾸며져 있습니다.
포트 나이트나 PUBG, 로켓리그 등 인기 게임은 여러가지 존재합니다만...
각각이 '몇천, 몇만이라고 하는 수의 작은 삼각형을 가진다'라는 공통점을 가지고 있습니다
이 삼각형이 게임 속 캐릭터나...
자동차, 그리고 게임내 필드 전체를 만들어 냅니다. 그러나, 게임 속에 존재하는 무수한 작은 삼각형은, 그냥 게임을 플레이하고 있는것만으로는 확인할 수 없습니다. 거기서 마음에 걸리는 것이, '왜 삼각형인가?'라고 하는 것입니다.
한번 더 레드 데드 리뎀션2 게임 화면에 되돌아 봅시다. 기술적으로 말하면, 게임 화면에 보이는 것은 모두 '정방형'입니다. 이것을 보다 정확하게 말하면, 게임 화면은 모두 '픽셀'로 구성되어 있어, 각픽셀은 하나의 색만을 정확하게 표시한 것입니다. '픽셀이 게임 화면을 구성한다'라는 것은, 초기부터 쭉 바뀌지 않는 게임에 있어서의 불변한 규칙과 같은 것입니다.
예를 들면, 1972년에 등장한 PONG도 픽셀을 연결해서 표현돼 있습니다. '그것은 정말로 정방형이었습니다. 패들 2개와 공 하나가, 정방형을 합쳐서 표현돼 있었습니다. 그리고, 내가 뭔가를 움직이고, 그 대로 움직인다고 하는 사실은, 정말 아름다운 것과 같이 느낄 수 있었습니다'라고 이야기하는 사람은 세계에서 가장 사용되고 있는 게임 엔진에 하나인 Unity 엔진을 개발하는 엔지니어 Brett Bibby 씨.
Unity와 같은 게임 엔진은, 게임 개발자가 복잡한 게임 환경을 구축하기 위해서 사용할 수 있는 툴을 갖춘 통합 개발 환경입니다.
예를 들어서, 서부극 무대가 되는 필드를 만들고 싶다고 생각했을 경우.
몇가지 상자를 만드는것만으로 큰 홀이나 은행 등을 표현하기 시작하는 것을 가능합니다.
입방체를 연결시키면서 순식간에 필드인 듯한 것을 만들어 내는 Bibby 씨
이러한 게임 필드를 만들어 내는 작업에 대해서, Bibby 씨는 '레고와 같은 것이네요. 단지 공간에 감각적으로 손질을 가하는 것 같은 것입니다. 이 작업을 되풀이하고, 천천히 개발을 하고 있습니다'라고 이야기했습니다.
그렇게 해서 만들어 낸 3DCG 모델은, 게임 화면상에서는 픽셀로서 표시할 필요가 있습니다. 그것을 위해 필요한 과정이 "렌더링"입니다.
그리고, 렌더링을 위해서 게임기나 PC는 대량인 수학적인 태스크를 처리해야합니다. 과거 20년간에 스크린사에 1초간으로 표시할 수 있는 픽셀 수는 계속해서 늘어나고 있습니다.
이하 그래프 "GFLOPS"라고 쓰여져 있는 것은, 컴퓨터 계산 능력을 나타내는 표준적인 척도입니다. 매초 실행할 수 있는 계산 수를 가르쳐 줍니다. "G"라는 것은 빌리언(10억)을 의미하고, 매초 얼마나 많은 계산이 실행되고 있는지 잘 알 수 있습니다.
즉, 보다강력한 컴퓨터를 사용하면, 게임의 렌더링이 보다 간단해집니다. 물론, 게임 메이커는 컴퓨터 성능에 의지할뿐만 아니라, 최신기술로 보다 세밀한 표현을 할 수 있게 연구를 계속하고 있습니다.
그 때문에, Unity와 같은 게임 엔진에서는, 만들어진 세밀한 필드나 사람, 자동차 등 모델을 렌더링하는데도 필요한 계산 수를 가능한 만큼 적게 하는 것이 요구됩니다. 거기서 중요하는 것이 "삼각형"입니다.
삼각형은 게임 엔진이 픽셀을 패치 처리 하기 위한 방법이며 '컴퓨터로 보다 세밀한 처리를 하기 위해' 이용하고 있습니다.
컴퓨터의 관점에서 하면, 게임내에서 실행되는 처리 자체는...
이러한 숫자의 나열일 뿐이에요. 게임 엔진은 컴퓨터가 3DCG 모델을 픽셀로 변환하기 위한 명령을 작성합니다.
컴퓨터가 처리하는 숫자의 나열 안에 적혀 있는 「V」는 "vertices(정점)"을 의미합니다. 무엇인지 형상을 구성하는 "점의 좌표"입니다.
점을 이어서 그림을 만들어 내는 것을 상상해 보세요. 어떤 형인지 모를 경우, 직선으로 점과 점을 연결하는 것이 보통입니다.
게임인 경우, 컴퓨터는 1초간에 몇천이나 되는 처리를 하면서 점과 점을 서로 연결시켜서 입체를 만듭니다. 따라서, 점과 점을 연결하는 것은 직선이 아니고 평면이 됩니다.
게임 엔진은 각 플레이어 컴퓨터 혹은 게임기상에서 렌더링 처리를 쉽게 하기 위해서, 곡면으로서 만들어진 오브젝트를 평면으로 변환합니다.
그리고, 곡면을 평면으로 변환하기 위한 최선 방법이 '삼각형을 사용하는 것'이다고 합니다
눈앞의 공간에 있는 임의의 점 3개를 선택할 경우, 어느 점을 선택해도 점 3개에서 이루어지는 삼각형은 같은 평면을 구성합니다. 그러나, 정점을 가지는 다른 형상에서는 그렇게 되지 않습니다. 예를 들면 정점이 4개 있을 경우, 4각형뿐만 아니라 피라미드와 같은 삼각뿔도 표현할 수 있게 됩니다. 그런고 수학적인 계산 처리는 게다가 복잡해지니까, 표면상의 픽셀수를 파악하는 것 뿐이라도 보다 높은 처리능력이 요구됩니다.
즉, 게임 안에서 렌더링되는 3DCG 모델을 보다 적은 계산수로 처리하기 위해서는, 점을 삼각형으로 연결하도록 해서 표현하는 것이 가장 효율적이다고 합니다.
삼각형과 게임 기술 진화에 의해 '게임 개발자는 보다 아름다운 게임 화면을 개발 할 수 있게 되고 있다'라고 Vox는 말했습니다.