Skip to content

Latest

More results

SLIM 소개: 확장 가능한 경량 인터랙티브 모델

경량화된 렌더링 합성의 기능을 활용하여 모든 기기에서 더 크고 디테일한 월드 구축하기

Roblox는 단순한 미니 게임부터 고충실도의 3D 애셋으로 가득한 방대한 오픈 월드에 이르기까지 수백만 가지의 체험을 제공하는 플랫폼입니다. 당사의 목표는 크리에이터가 구상하는 점점 더 풍부하고 복잡한 체험을 광범위한 사용자 기기에서 지원하는 데 있으며, 여기에는 당사의 엔진과 콘텐츠 제공 시스템, 인프라 부문의 혁신이 필요합니다. 확장 가능한 경량 인터랙티브 모델(Scalable Lightweight Interactive Model, SLIM)은 크리에이터가 성능 저하 없이 웅장한 예술적 비전을 달성할 수 있도록 지원하는 여러 개발 작업 중 일부에 해당합니다. 

SLIM을 사용하면 크리에이터는 Roblox 체험에서 모든 개체의 경량화된 표현을 자동으로 제작하여 클라이언트가 강력하고 끊김 없는 월드를 렌더링하는 데 필요한 드로우 콜, 삼각형, 데이터 모델 인스턴스의 수를 최소화할 수 있습니다. SLIM은 당사의 스트리밍 모델에 콘텐츠를 최적화할 수 있는 효과적이고 새로운 방법을 제공하여 고사양 게이밍 PC를 사용하는 사용자와 저사양 모바일 기기를 사용하는 사용자가 기기가 처리할 수 있는 최고 수준의 충실도로 동일한 체험을 공유할 수 있도록 합니다.

SLIM Scene.webp
위의 씬에서는 인스턴스 스트리밍 및 SLIM이 활성화된 상태에서 훨씬 적은 데이터 모델 인스턴스와 삼각형, 드로우 콜 수를 사용합니다. 
인스턴스 스트리밍 및 SLIM 비사용인스턴스 스트리밍 및 SLIM 사용
클라이언트 데이터 모델 인스턴스159,745개92,536개
삼각형2,000만 개335만 개
드로우 콜2,402개1,454개

스트리밍의 2가지 핵심 요소: 인스턴스 및 애셋

인기 있는 스트리밍 서비스에서 영화를 시청하는 경우 기기에서는 전체 파일을 다운로드하지 않고 영화를 시작합니다. 즉시 영화를 재생할 수 있을 만큼 충분한 데이터를 다운로드한 다음, 다음 몇 초 동안 지속적으로 다운로드(또는 버퍼링)하여 시청 체험을 중단 없이 제공합니다. 저사양 기기나 인터넷 연결이 느린 상태에서 스트리밍하는 경우, 플랫폼은 고충실도 콘텐츠를 스트리밍할 수 있을 만큼 충분한 데이터를 다운로드하는 동안 저충실도 버전의 콘텐츠를 전송하여 자동으로 조정합니다. 

Roblox는 실시간으로 콘텐츠를 스트리밍하는 것과 유사한 개념을 사용하지만, 고충실도 3D 시뮬레이션을 표현하는 데 필요한 데이터는 그 자체로 과제임을 나타냅니다. 동영상에서는 단일 관점에서 순차적으로 콘텐츠를 시청하지만, Roblox 체험에는 사용자가 제어하는 다양한 관점에서 볼 수 있는 많은 유형의 애셋으로 가득한 방대한 인터랙티브 3D 월드가 포함됩니다. 매일 1억 5,150만 명의 활성 사용자가 다양한 기기에서 콘텐츠를 플레이하고, 탐색하고, 궁극적으로 스트리밍한다는 점을 고려하면 콘텐츠를 제공하고 표시하는 방식을 최적화할 수 있는 엄청난 가능성이 존재합니다.1

사용자가 Roblox에서 보는 모든 요소(자동차, 나무, 아바타, 건물)는 엔진 내에서 여러 인스턴스로 표현됩니다. 예를 들어 사용 가능한 자동차는 범퍼, 도어, 바퀴 등의 인스턴스로 세분화됩니다. 각 인스턴스는 체험에서 3D 메시와 텍스처, 애니메이션, 오디오 등의 여러 애셋을 사용하여 구문화됩니다.

Roblox의 거의 모든 스트리밍은 인스턴스 스트리밍과 애셋 스트리밍이라는 2가지 핵심 기술로 나뉩니다.

  • 인스턴스 스트리밍: 사용자의 기기에서 스트리밍하는 데 필요한 인스턴스를 결정합니다. 아직 사용자가 보거나 상호작용하기 전인 체험의 일부는 스트리밍하지 않아도 됩니다. 위의 예시에서는 인근 건물을 나타내는 인스턴스만 클라이언트로 스트리밍됩니다.

  • 애셋 스트리밍: 스트리밍된 인스턴스의 품질을 결정합니다. 사용자가 미세한 디테일을 파악할 수 없을 정도로 멀리 떨어진 산을 구현하기 위해 고해상도 4K 텍스처를 다운로드할 필요가 없습니다. 위의 이미지에서 멀리 있는 건물과 화면 공간의 아주 일부만 차지하는 건물에는 폴리곤 수를 줄인 메시와 낮은 해상도의 텍스처를 사용합니다. 

이 작업을 위한 중앙 두뇌는 Harmony라고 불리는 시스템으로, 이 시스템은 각 사용자의 가용 리소스를 프레임마다 모니터링합니다. Harmony는 인스턴스와 애셋 스트리밍 모두 조정하여 기기의 메모리, GPU 및 CPU 부하, 네트워크 대역폭에 따라 최적의 체험을 제공합니다. 고사양 게이밍 PC에서 Harmony는 모든 사항을 최고 품질로 끌어올립니다. 인터넷 연결이 불안정한 모바일 기기에서는 이 기능이 자동으로 축소되어 사용자의 체험이 끊김 없이 지속되도록 합니다.

담당 팀은 Tech Talks 팟캐스트 에피소드 30에서 스트리밍, 클라우드 트랜스코딩, SLIM 이면의 기술에 대해 의견을 나눴습니다. 

SLIM: 확장 가능한 경량 인터랙티브 모델

SLIM의 주요 아이디어는 단순하지만 강력합니다. SLIM은 크리에이터가 제작한 월드에서 모든 개체나 모델의 여러 경량의 최적화된 표현을 자동으로 제작하고 런타임에 가져올 서버에 표현을 저장할 수 있습니다. 이렇게 하면 각 사용자의 클라이언트는 기기의 가용 리소스를 기반으로 원본 인스턴스와 애셋 또는 경량화된 SLIM 표현 중 하나를 렌더링하는 작업을 동적으로 전환할 수 있습니다. 

SLIM은 2가지 주요 기술을 사용하여 경량화된 표현을 생성합니다.

1. 합성

먼저, SLIM은 여러 개수의 부분을 더 적은 개수의 부분으로 결합합니다. 아래의 자동차를 구현하는 데 112개의 개별 메시와 24개의 개별 텍스처가 필요하지만, 경량화된 표현에서는 메시 1개와 텍스처 4개만 필요할 수 있습니다. 합성 프로세스는 엔진이 최종적으로 콘텐츠를 렌더링하는 방식과 일치하도록 정밀하게 조정되어 개체 내의 보이지 않는 지오메트리를 제거하고 렌더링에 필요한 드로우 콜의 개수를 줄입니다.

SLIM Car Comparison.webp

2. LOD(디테일 수준)

모델이 합성되면 SLIM은 다양한 LOD로 여러 버전을 생성합니다. 이는 기존 LOD 기술을 사용하여 개별 메시나 텍스처 애셋을 만드는 것과 마찬가지로 삼각형 수가 훨씬 적은 3D 메시 버전을 제작하고 훨씬 낮은 해상도로 텍스처를 생성하는 작업을 의미합니다. 각 기본 인스턴스의 개별 좌표 프레임을 보유하고 있으므로 이러한 기술을 통해 SLIM 모델에 적용할 경우 한층 더 최적화할 수 있습니다. 이렇게 하면 크리에이터가 이러한 각 애셋을 함께 렌더링하려는 의도에 대한 전체 맥락을 파악할 수 있습니다. 이 정보를 바탕으로 SLIM을 사용하면 불필요한 디테일을 제거할 위치와 사용자가 알아차리도록 디테일을 유지할 위치를 한층 더 정보에 입각하여 의사결정할 수 있습니다.

undefined

적절한 타이밍에 맞는 적절한 표현

한 개체의 여러 표현을 만들면 SLIM은 특정 사용자의 기기에 사용할 표현을 결정하거나 기존 렌더링 기술을 사용할지 여부를 결정해야 합니다. 이 시스템은 월드를 3개의 개별 영역으로 나눕니다. 플레이어를 중심에 두고 바깥쪽으로 확장될수록 동심원의 디테일이 달라지는 것을 떠올리면 가장 쉽게 이 영역을 이해할 수 있습니다.

undefined

스트리밍 경계는 실제로는 원형이 아닙니다. 그 모양은 다양한 요인에 따라 달라집니다.

HH 영역(무거운 인스턴스/무거운 렌더링)

HH 영역에서는 전체의 무거운 인스턴스가 서버에서 클라이언트 데이터 모델로 스트리밍되며, 클라이언트는 각 인스턴스에 대해 다운로드하고 렌더링할 특정 애셋 표현을 결정합니다. 이 영역에서 메시 LOD와 텍스처 MIP를 사용하여 스케일링을 작업할 수 있지만 합성 작업은 할 수 없습니다. SLIM 이전에는 체험으로 스트리밍된 모든 인스턴스가 이 방식으로 렌더링되었습니다. 

HL 영역(무거운 인스턴스/경량 렌더링) 

HL 영역은 HH 영역과 LL 영역 사이에 있습니다. 이 영역에서 클라이언트는 데이터 모델에 무거운 인스턴스를 보유하지만, 전체 렌더링 파이프라인이나 SLIM 파이프라인 중 하나를 사용하여 렌더링하도록 선택할 수 있습니다. 이 영역은 사용자가 네트워크 지연 시간을 겪는 경우에도 HH 영역과 LL 영역 간의 끊김 없는 전환을 보장하도록 조정됩니다. HH 영역과 HL 영역 사이의 전환 지점은 유동적이므로 Harmony는 어느 방향으로든 리소스 급증에 대응하여 즉시 확장하거나 축소할 수 있습니다.

LL 영역(경량 인스턴스/경량 렌더링) 

LL 영역에서 클라이언트는 꼭 필요한 최소한의 메타데이터와 함께 SLIM 모델의 좌표 프레임을 정의하는 데 필요한 인스턴스의 초경량화된 표현만 스트리밍합니다. 이 영역에서는 모든 단일 인스턴스와 애셋이 아닌 경량 합성 SLIM 모델만 렌더링됩니다. LL 영역은 삼각형과 드로우 콜이 훨씬 적게 필요하고, 모든 무거운 인스턴스를 스트리밍하고 기존 렌더링 파이프라인을 사용하는 방식에 비해 사용자 기기의 메모리 사용량을 줄여줍니다.

이 영역 기술을 사용하면 클라이언트는 모든 무거운 인스턴스와 애셋을 한 번에 사용하는 데 드는 전체 계산 비용을 발생시키지 않고도 항상 사용자에게 보이는 전체 월드를 렌더링할 수 있습니다. 먼 곳에 있는 개체는 고도로 최적화된 경량 표현으로, 사용자가 가까이 다가가면 고해상도 버전으로 교체됩니다. SLIM의 합성과 여러 단계로 스케일된 LOD 모델을 제작하는 기능 덕분에 Harmony는 각 사용자의 기기에 맞는 애셋 품질을 최적화할 수 있는 더 많은 조절 수단을 확보합니다.

모든 사항이 결합되면 플레이어는 완전한 몰입감을 느끼고 전환 지점이나 다양한 디테일 수준을 알아차리지 못합니다.

미래: SLIM의 다음 단계

SLIM은 여러 단계의 여정 중 첫 번째 단계에 불과합니다. Roblox는 크리에이터에게 이 기술을 워크플로에 통합하는 방법을 소개하게 되어 기쁩니다. 당사는 미래에 SLIM을 2가지 주요 방향으로 확장하는 방법을 모색하고 있습니다. 

SLIM으로 할 수 있는 추가 작업 확인 

현재는 크리에이터가 Studio에서 지정한 정적 모델부터 시작하지만, 나중에는 SLIM을 사용해 Roblox에서 가장 복잡한 모델인 플랫폼 아바타를 최적화할 수 있을 겁니다. 모든 관련된 애니메이션, 레이어드 복장, 장신구가 포함된 아바타는 크리에이터에게 예측 불가능한 변수로 작용할 수 있습니다. SLIM으로 아바타를 만들 수 있게 되면 엔진이 개별 아바타 모델이 사용하는 리소스를 효과적으로 제한할 수 있습니다.

궁극적으로 Roblox는 크리에이터에게 동적 모델을 변경하는 데 SLIM을 활용할 수 있는 옵션을 제공하려고 합니다. 서버에서 능동적으로 변경 사항을 적용할 수 있는 모델을 상상해 보세요. 예컨대 도어가 열리거나 어떤 부품이 파괴되는 경우처럼요. 몇 가지 기발한 묘책을 사용하면 클라이언트는 동일한 경량 표현을 재사용할 수 있습니다.

SLIM 파이프라인 최적화 

이제 엔진에 새로운 차원의 유연성을 제공하는 포괄적인 파이프라인을 보유하게 되었으므로 파이프라인 자체를 한층 더 스마트하고 빠르며 효율적으로 만드는 데에도 중점을 두고 있습니다. 여기에는 다음이 포함됩니다.

  • 텍스처 아틀라스 재구성: 여러 모델 텍스처를 단일 최적화 텍스처 시트로 지능적으로 패킹화합니다.

  • 자동 세분화: 월드에 대한 의미론적, 공간적 이해를 자동으로 사용하여 SLIM 처리에 가장 적합한 모델을 식별합니다.

  • 더 경량화된 표현: 지연 시간에 덜 의존하는 동적 개체의 경우, 클라이언트에서 렌더링할 수 있는 가상 리소스 없는 2D 표현을 생성하는 방법을 모색하고 있습니다.

  • 계층 구조를 갖춘 SLIM: SLIM 모델을 하나씩 중첩하여 전체 인스턴스 그룹을 단순화하고 엔진이 세분화 수준을 동적으로 선택할 수 있습니다. 예를 들어 하나의 나무에서 숲, 숲 및 기타 개체로 가득한 전체 대륙까지 선택 가능합니다.

  • 해상도 업그레이드(업레징): 현재는 성능을 고려해 다운 최적화에 중점을 두고 있지만, 머지않아 이 동일한 시스템을 통해 크리에이터의 원래 예술적 의도를 유지하면서 차세대 하드웨어에서 애셋의 해상도를 높일 수 있게 될 것입니다. 이 새로운 아키텍처는 엔진이 더 정밀하게 현실을 시뮬레이션할수록 사용하는 표현이 지속적으로 업그레이드될 수 있음을 의미합니다. 

SLIM은 Harmony와 나머지 스트리밍 및 콘텐츠 제공 아키텍처와 결합하여 더 많은 플레이어를 위해 보다 광범위하고 디테일한 월드를 지원하려는 당사의 비전에 큰 도약을 이루었습니다. 당사의 엔진과 콘텐츠 제공, 클라우드 인프라가 긴밀하게 통합되어 있고 여기에 수백만 명의 크리에이터가 제공하는 방대한 콘텐츠 기반을 결합하여 전체 체험을 개선하는 상호 연결 시스템을 구축할 수 있습니다. 엔진이 더 정밀하게 현실을 시뮬레이션할수록 사용하는 표현을 지속적으로 업그레이드할 수 있습니다. 현재는 성능을 고려해 다운 최적화에 중점을 두고 있지만, 머지않아 이 동일한 시스템을 통해 크리에이터의 원래 예술적 의도를 유지하면서 차세대 하드웨어에서 애셋의 해상도를 업그레이드할 수 있게 될 것입니다.

Roblox는 예술적 의도를 존중하는 것은 물론 Roblox를 사용할 수 있는 모든 곳에서 모든 사용자가 기기에 구애받지 않고 자신의 작품을 지능적이고 자동으로 제공할 수 있는 플랫폼을 구축하고 있습니다. 커뮤니티에서 이 모델로 어떤 작품을 제작할지 정말 기대가 됩니다.

12025년 3분기 기준.