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

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

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

그래서 USD가 개방형 메타버스에 필요한 대부분의 요소를 갖췄다고 생각합니다.

몇 가지 부족한 부분도 있는데 USD에서 부족한 점 하나는 본래 Pixar에서 배포되었기 때문에 Pixar의 용도에 맞춰 설계됐고 상호작용을 의도하지 않았다는 것입니다. Pixar의 주된 목표는 영화 제작을 지원하는 것이었습니다. 그래서 저희는 USD가 아주 빠른 업데이트를 지원하도록 많은 작업을 수행했습니다. 업데이트 속도를 높여서 USD를 바탕으로 자율주행 시뮬레이터를 어느 정도 구현할 수 있었습니다. 

또 한 가지는 개방형 메타버스를 점증적으로 만들기 위한 필요조건이 있다는 사실입니다. 

USD 라이브러리를 바탕으로 라이브러리를 구축했는데 이 라이브러리에서는 USD API를 통해 원하는 것은 뭐든지 할 수 있습니다.

객체를 생성하고, 관계를 형성하고, 빛을 생성하고, 이를 측정하고 움직이면서 원하는 대로 조작할 수 있습니다. 변경된 사항은 모두 기록됩니다. 그래서 어느 시점에 중앙 데이터베이스 서버나 다른 사용자에게 동기화를 요청하고 과거와 현재의 차이를 구성할 수 있습니다.

이는 우리가 원하는 모든 표현을 개방형 메타버스의 공유된 표현으로 만들기 위한 핵심 요소 입니다. 

USD에서 두 번째로 부족한 점은 재질 표현입니다. 이는 부분적으로 특정 재질이 강요되는 것을 Pixar가 원하지 않았기 때문입니다.

그래서 저희는 MDL, 즉 재질 정의 언어라는 미디어에서 재질 라이브러리를 개발하여 이를 오픈 소스로 공개했습니다. 서로 잘 통합되고, 품질이 높으면서도 호환이 잘 되고 누구나 사용 가능하도록 개방된 MDL 라이브러리를 만들기 위해 많은 노력을 기울였습니다.

USD 자체는 거의 전적으로 선언형입니다. 여기에 이런 객체가 있고, 그 속성은 어떻고 등의 사항을 선언하지만 동작은 거의 정의하지 않습니다. 그래서 저희는 옴니 그래프라는 점진적 모델링 도구를 개발했습니다. 이 도구는 USD 위에 계층으로 추가되어 기하학의 절차적 생성이나 절차적 동작을 특정할 수 있게 합니다. 마지막으로 USD는 물리 시뮬레이션을 지정하는 방법을 기본으로 포함하지 않습니다. 

그래서 많은 게임 엔진에서 사용되는 NVIDIA의 물리 시뮬레이터인 피직스(PhysX)를 오픈 소스로 공개했습니다. 오픈 소스를 공개하고 USD와 통합했습니다. 애플, Pixar와 협업하여 USD 에서 필수 물리 파라미터를 지정했습니다. 누구나 이해할 수 있는 방식으로 사실적인 가상 세계를 구축하도록 말입니다.

그렇다면 USD를 중심으로 한 이 도구들로 어떻게 개방형 메타버스를 만들 수 있을까요? 그런 메타버스는 어떤 모습일까요?

그 중심은 일종의 데이터베이스가 될 것입니다. 엣지에는 중심과 연결된 여러 수단이 있습니다. 다양한 클라이언트 애플리케이션이 있습니다. 한편 콘텐츠를 경험할 수단도 다양합니다. 경험은 AR로, VR로, 데스크톱으로 기타 특정인을 가상 세계와 연결하기에 가장 좋은 수단으로 제공될 것입니다. 우리가 원하는 경험을 구현하려면 다양한 기술을 연결해야 합니다. 그래서 조금 더 깊이 들어가 보려 합니다. 저희가 NVIDIA옴니버스라는 방식을 통해 아이디어를 어떻게 구현하려고 하는지 말씀드리겠습니다. 

저희는 데이터베이스 서버인 중앙 서버를 구축했습니다. 이를 뉴클레스 서버라고 합니다. 뉴클레스 서버는 유일한 진실의 표준으로써 전체 메타버스, 가상 세계를 USD에서 묘사합니다. 메커니즘을 발행하고 구독함으로써 운영되며 USD의 모든 요소, 모든 계층은 뉴클레스 서버 내에서 독립적으로 발행 및 구독됩니다. 또한 저희는 마야, 맥스, 블렌더, 언리얼, 레빗 등 다양한 클라이언트 애플리케이션과 양방향 연결을 구축했습니다. 연결을 통해 이러한 애플리케이션들은 변경 사항을 주고받기만 해도 내부 표현을 뉴클레스 서버와 동기화할 수 있습니다.

저희는 가상 세계 뉴클레스 서버에서 서비스를 구매할 수 있는 프레임워크를 만들었습니다. 필요하면 형식을 변환하고 다른 애플리케이션을 찾고 오프라인 렌더링을 하고 디테일 수준을 구현하고 기타 다양한 서비스를 제공하는 마이크로 서비스입니다.

댓글