본문 바로가기
Tomorrow/메타버스

개방형 메타버스 세계, USD, Pixar (2)

by ◎◉⌥⏏︎ 2021. 9. 18.

다음으로 중요하게 생각하는 것은 어떤 표현이든 상시 제공될 수 있어야 한다는 것입니다.

우리 대부분은 게임 엔진에 익숙한데 게임 엔진에는 보통 모든 것이 최대한 빠르게 실행되도록 만들기 위한 굽기 단계가 있습니다.

세계를 생성하는 데 사용된 표현을 압축하고 구워서 성능에 최적화하는 것입니다.

최적화하는 이유는 분명 여러 가지가 있는데 이는 대단히 중요합니다.

하지만 우리가 개방형 메타버스에서 갖게 될 경험은 굉장히 다양할 것이며 현재의 많은 게임이 보여주는 방식에만 한정되지는 않을 것입니다. 잠재적으로 실현 가능한 모든 것에 대해 가능성을 열어두려면 제공하고자 하는 표현을 유지하면서 변화가 필요한 부분이 있는 졍우 필요한 만큼만 교체할 수 있어야 합니다.

 

이를 달성하려면, 제가 앞서 말씀드린 아이디어에 따라 개방형 메타버스를 구축하려면 아주 강력하고 확장성이 뛰어난 공동의 가상 세계 표현이 필요합니다. 저희는 그 표현이 이미 존재한다고 생각합니다. 그건 바로 Pixar가 개발하여 친절하게도 모든 커뮤니티에 소스를 공개한 USD 즉 universal Scene description입니다. Pixar는 자체 컴퓨터 그래픽 제작을 위해 USD를 개발했습니다.

그리고 이는 여러 영화를 거치면서 발전하여 기능이 굉장히 다양해졌습니다. Pixar가 만드는 세상 정도의 복잡성을 뒷받침하기엔 충분합니다. 그리고 만약 어떤 개방형 메타버스가 그 정도 복잡성을 달성할 수 있다면 아주 좋을 것이라는 데에 대부분이 동의할 것입니다.

그런 점에서 볼 때 USD는 아주 적절한 기술입니다. USD의 기본적인 작동 원리에 대해 설명하자면 USD는 세상을 일련의 속성과 그 속성 값으로 설명합니다. 그리고 그런 속성의 집합이 더 높은 차원의 객체를 나타냅니다. 또한 속성과 속성 값의 집합을 일련의 계층 위에 놓고 속성을 계층별로 나누었는데, 이는 Pixar가 대규모 팀들의 협업을 가능하게 한 중요한 요소가 되었습니다. 

이게 바로 개방형 메타버스를 위해서 해야 하는 것입니다.

메타버스 세계의 여러 부분이 다양한 행위자, 서비스, 다른 부분에 의해 동시에 수정되도록 하는 것입니다.

 

그러면 왜 USD가 적합한 솔루션일까요?

USD에는 일련의 도식이 있어서 제작자들이 기하학적 위치, 카메라, 빛, 심지어 간단한 캐릭터의 뼈대까지도 묘사하고 객체들 사이의 관계를 설명할 수 있습니다. 특히 상속이 포함되기 때문에 USD 내에 클래스를 생성할 수 있다는 것이 매우 중요합니다. 

예를 들어 나무를 설명하는 클래스를 만들 수 있습니다. 소나무 같이 숲에서 볼 법한 특정 나무 종류를 나타내는 클래스를 만들 수 있죠.

그런 다음 뼈대 작업이 된 객체를 다른 클래스로 설명할 수 있으며, 그 후에 또 다른 어떤 나무가 소나무로부터 나무의 속성을 상속받을 수 있습니다. 상속받은 내용 위에 세계 내의 위치, 목적 등을 바탕으로 고유한 속성을 덧붙이는 것입니다. 이는 콘텐츠 제작에 유연성을 준다는 점에서 대단히 중요합니다. 한 군데에 변화를 주면 그것과 관련한 다른 많은 것들도 한꺼번에 바뀌는 것입니다.

USD는 또한 대용량 데이터 세트까지 처리 가능하도록 규모를 확장할 수 있습니다. 또한 지연 로딩 등의 기능을 지원하며, 동일한 객체에 대한 여러 변이형을 포함하므로 동일한 자산을 여러 디테일 수준 및 기타 다양한 목적에 사용할 수 있습니다. 확장성이 뛰어나기 때문에 새 도식을 추가하고 새로운 입 출력 형식을 추가하는 등 아주 다양한 방식으로 라이브러리 자체를 확장할 수 있습니다.

핵심 속성 중 하나는 이 기술이 계층성을 바탕으로 한다는 것입니다. 사물을 표현할 때 항상 같은 수준으로 풍성하게 제공하려면 이 점이 정말 중요합니다. 이러한 계층은 포토샵의 레이어와 약간 비슷합니다. 각 계층은 속성들과 속성 값들의 집합인데 이들은 '의견'으로 취급됩니다. 계층들이 쌓여 있고, 각 계층은 저마다 강도를 지니고 있으며 가장 강한 계층이 속성 값을 얻습니다. 계층은 모두 동적으로 결합되어 최종 결과물을 산출합니다. 여러 사람이 다른 레이어에서 사물을 제어하고, 다양한 소스에서 여러 대상을 컴파일할 수 있습니다. 

댓글