이 사이트의 콘텐츠는 인공지능(AI) 또는 기계 번역 기술을 사용하여 번역되었으며 오류가 있을 수 있습니다.

Skip to content

SLIM 소개: 확장 가능한 경량 대화형 모델

경량 렌더링 컴포지트의 힘을 활용하여 모든 기기에서 더 크고 디테일한 세계를 구축하기

SLIM Car Comparison.webp

Roblox는 간단한 미니 게임부터 고품질 3D 자산으로 가득 찬 방대한 오픈 월드에 이르기까지 수백만 가지의 경험을 제공합니다. 저희의 목표는 크리에이터들이 구상하는, 점점 더 정교하고 복잡해지는 경험을 다양한 사용자 기기에서 지원할 수 있도록 하는 것이며, 이를 위해서는 엔진, 콘텐츠 전송 시스템, 인프라의 혁신이 필요합니다. 확장 가능한 경량 인터랙티브 모델(SLIM)은 크리에이터들이 성능 저하 없이 웅장한 예술적 비전을 실현할 수 있도록 돕는 다각적인 개발 노력의 일환입니다. 

SLIM을 통해 크리에이터는 Roblox 경험 내의 모든 오브젝트에 대해 경량화된 표현을 자동으로 생성할 수 있으며, 이를 통해 클라이언트가 견고하고 매끄러운 세계를 렌더링하는 데 필요한 드로우 콜, 삼각형, 데이터 모델 인스턴스의 수를 최소화합니다. SLIM은 스트리밍 모델에 콘텐츠를 최적화할 수 있는 강력하고 새로운 방법을 제공하여, 고사양 게이밍 PC를 사용하는 사용자와 저사양 모바일 기기를 사용하는 사용자 모두가 각자의 기기가 감당할 수 있는 최고 수준의 화질로 동일한 경험을 공유할 수 있게 합니다.

SLIM Scene.webp
The above scene uses far fewer data model instances, triangles, and draw calls with instance streaming and SLIM enabled.

인스턴스 스트리밍 및 SLIM 미사용

인스턴스 스트리밍 및 SLIM 사용

클라이언트 데이터 모델 인스턴스

159,745

92,536

삼각형

2,000만

335만

드로우 콜

2,402

1,454

스트리밍의 두 기둥: 인스턴스와 자산

좋아하는 스트리밍 서비스에서 영화를 볼 때, 기기는 시청을 시작하기 전에 전체 파일을 다운로드하지 않습니다. 즉시 시청을 시작할 수 있을 만큼의 데이터만 다운로드한 다음, 시청에 차질이 없도록 다음 몇 초 분량의 데이터를 지속적으로 다운로드(또는 버퍼링)합니다. 저사양 기기나 느린 연결 환경에서 스트리밍할 경우, 플랫폼은 고화질 콘텐츠를 스트리밍할 수 있는 충분한 데이터를 다운로드하는 동안 저화질 버전의 콘텐츠를 전송하여 자동으로 환경을 조정합니다. 

Roblox는 유사한 개념을 사용하여 콘텐츠를 실시간으로 스트리밍하지만, 고화질 3D 시뮬레이션을 구현하는 데 필요한 데이터는 그 자체로 해결해야 할 과제를 안고 있습니다. 동영상은 단일 시점에서 시청하는 선형적인 타임라인을 갖는 반면, Roblox 경험은 사용자가 제어하는 다양한 시점에서 볼 수 있는 수많은 유형의 자산으로 가득 찬 방대한 상호작용형 3D 세계를 포함합니다. 여기에 매일 1억 5,150만 명의 활성 사용자가 다양한 기기를 통해 게임을 즐기고, 탐험하며, 궁극적으로 콘텐츠를 스트리밍한다는 점을 고려하면, 콘텐츠 전달 및 표시 방식을 최적화할 수 있는 잠재력은 엄청납니다.1

사용자가 로블록스에서 보는 모든 것—자동차, 나무, 아바타, 건물 등—은 엔진 내에서 여러 인스턴스로 표현됩니다. 예를 들어, 실제로 운전할 수 있는 자동차는 범퍼, 도어, 바퀴 등의 인스턴스로 세분화됩니다. 각 인스턴스는 3D 메쉬, 텍스처, 애니메이션, 오디오와 같은 다양한 자산을 사용하여 경험 내에서 구성됩니다.

Roblox의 거의 모든 스트리밍은 인스턴스 스트리밍과 자산 스트리밍이라는 두 가지 핵심 기술로 구분됩니다.

  • 인스턴스 스트리밍은 사용자의 기기가 어떤 인스턴스를 스트리밍해야 하는지 결정합니다. 사용자가 아직 볼 수 없거나 상호작용할 수 없는 경험의 부분은 스트리밍할 필요가 없습니다. 위의 예시에서, 근처 건물을 나타내는 인스턴스만 클라이언트로 스트리밍됩니다.
  • 애셋 스트리밍은 스트리밍되는 인스턴스의 품질을 결정합니다. 사용자가 미세한 디테일을 식별할 수 없을 정도로 멀리 떨어진 산의 고해상도 4K 텍스처를 다운로드할 필요는 없습니다. 위 이미지에서 멀리 있는 건물과 화면에서 차지하는 공간이 작은 건물들은 디시메이트된 메시와 저해상도 텍스처를 사용합니다. 

이 작업의 중추적인 역할을 하는 시스템은 ‘하모니(Harmony)’로, 매 프레임마다 각 사용자의 사용 가능한 리소스를 모니터링합니다. 하모니는 기기의 메모리, GPU 및 CPU 부하, 네트워크 대역폭을 기반으로 인스턴스 및 자산 스트리밍을 조정하여 최상의 경험을 제공합니다. 고사양 게이밍 PC의 경우 하모니는 모든 설정을 최고 품질로 높입니다. 반면, 연결 상태가 불안정한 모바일 기기의 경우 사용자 경험을 원활하게 유지하기 위해 자동으로 품질을 낮춥니다.

팀은 '테크 토크(Tech Talks)' 팟캐스트 30회에서 스트리밍, 클라우드 트랜스코딩, SLIM의 기술적 배경에 대해 논의했습니다. 

SLIM: 확장 가능한 경량 대화형 모델

SLIM의 핵심 개념은 단순하지만 강력합니다. SLIM은 제작자의 세계에 존재하는 모든 객체나 모델에 대해 여러 개의 경량화되고 최적화된 표현을 자동으로 생성하여 서버에 저장한 뒤, 실행 시점에 이를 불러올 수 있습니다. 이후 각 사용자의 클라이언트는 기기의 사용 가능한 리소스에 따라 원본 인스턴스 및 자산을 렌더링하거나 경량화된 SLIM 표현 중 하나를 렌더링하는 방식으로 동적으로 전환할 수 있습니다. 

SLIM은 경량화된 표현을 생성하기 위해 두 가지 주요 기법을 사용합니다:

1. 합성

첫째, SLIM은 여러 부분을 더 적은 수의 부분으로 결합합니다. 아래의 자동차가 112개의 개별 메시와 24개의 개별 텍스처를 필요로 하는 대신, 경량화된 표현은 단 하나의 메시와 네 개의 텍스처만으로도 충분할 수 있습니다. 합성 과정은 엔진이 최종적으로 콘텐츠를 렌더링하는 방식에 정확히 맞춰 조정되어, 객체 내부의 보이지 않는 지오메트리를 제거하고 렌더링에 필요한 드로우 콜 수를 줄입니다.

SLIM Car Comparison.webp

2. 디테일 레벨(LoD)

모델을 합성한 후, SLIM은 서로 다른 세부 수준(LoD)의 여러 버전을 생성합니다. 이는 기존의 LoD 기법을 사용하여 개별 메쉬나 텍스처 에셋을 처리할 때와 마찬가지로, 삼각형 수가 현저히 적은 3D 메쉬 버전을 만들고 훨씬 낮은 해상도의 텍스처를 생성하는 것을 의미합니다. SLIM 모델에는 각 기본 인스턴스의 개별 좌표계 정보가 포함되어 있으므로, 이러한 기법을 적용할 때 더욱 최적화할 수 있습니다. 이를 통해 제작자가 각 에셋을 어떻게 함께 렌더링하고자 했는지에 대한 전체적인 맥락을 파악할 수 있습니다. 이러한 정보를 바탕으로 SLIM을 사용하면 불필요한 디테일을 제거할 부분과 사용자가 눈치챌 만한 디테일을 유지할 부분에 대해 더 합리적인 결정을 내릴 수 있습니다.

undefined

적절한 시점에 적절한 표현

객체에 대한 여러 가지 표현을 생성한 후, SLIM은 특정 사용자의 기기에 어떤 표현을 사용할지, 아니면 대신 기존의 렌더링 기법을 사용할지 결정해야 합니다. 이 시스템은 세상을 세 개의 서로 다른 영역으로 나눕니다. 이 영역들을 이해하는 간단한 방법은 플레이어를 중심으로 바깥쪽으로 확장되는 동심원의 세부 수준을 상상해 보는 것입니다.

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

HH 영역 (헤비웨이트 인스턴스, 헤비웨이트 렌더링)

HH 영역에서는 완전한 헤비웨이트 인스턴스가 서버에서 클라이언트 데이터 모델로 스트리밍되며, 클라이언트는 각 인스턴스에 대해 다운로드하고 렌더링할 구체적인 자산 표현을 결정합니다. 이 영역에서도 메쉬 LoD와 텍스처 밉을 통해 스케일링이 가능하지만, 합성(compositing)은 수행되지 않습니다. SLIM이 도입되기 전에는 경험(experience)으로 스트리밍된 모든 인스턴스가 이러한 방식으로 렌더링되었습니다. 

HL 영역 (헤비웨이트 인스턴스, 라이트웨이트 렌더링) 

HL 영역은 HH 영역과 LL 영역 사이에 위치합니다. 이 영역에서 클라이언트는 데이터 모델에 헤비웨이트 인스턴스를 보유하지만, 전체 렌더링 파이프라인이나 SLIM 파이프라인 중 하나를 사용하여 렌더링할 수 있습니다. 이 영역은 사용자가 네트워크 지연 현상을 겪더라도 HH 영역과 LL 영역 간에 원활한 전환이 이루어지도록 조정됩니다. HH 영역과 HL 영역 사이의 전환 지점은 동적으로 결정되므로, Harmony는 어느 한쪽에서 리소스 사용량이 급증하더라도 즉시 확장하거나 축소할 수 있습니다.

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

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

이 영역 기법을 통해 클라이언트는 모든 무거운 인스턴스와 자산을 한 번에 사용하는 데 따르는 전체적인 계산 비용을 부담하지 않고도 항상 가시 영역 전체를 렌더링할 수 있습니다. 멀리 있는 오브젝트는 고도로 최적화된 경량 표현으로 처리되며, 사용자가 가까워지면 고화질 표현으로 대체됩니다. SLIM의 합성 및 다중 스케일 LoD 모델 생성 기능은 Harmony가 각 사용자의 기기에 맞춰 자산 품질을 최적화할 수 있는 더 많은 수단을 제공합니다.

이 모든 요소가 조화를 이룰 때, 플레이어는 완전히 몰입된 느낌을 받게 되며 전환 지점이나 디테일 수준의 차이를 전혀 인지하지 못하게 됩니다.

미래: SLIM의 다음 행보는?

SLIM은 여러 단계로 이루어진 여정의 첫걸음에 불과하며, 크리에이터들이 이 기술을 자신의 워크플로우에 어떻게 통합해 나갈지 기대가 큽니다. 우리는 향후 SLIM을 두 가지 주요 방향으로 확장하는 방안을 모색하고 있습니다. 

SLIM 적용이 가능한 다른 요소 파악 

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

궁극적으로, 우리는 크리에이터들이 동적 모델의 변경 사항에도 SLIM을 활용할 수 있는 옵션을 제공하고자 합니다. 서버가 능동적으로 변경을 가할 수 있는 모델(예: 문이 열리거나 일부가 파괴됨)을 상상해 보세요. 하지만 몇 가지 영리한 기법을 통해 클라이언트는 동일한 경량화된 표현을 재사용할 수 있습니다.

SLIM 파이프라인 최적화 

이제 엔진에 새로운 차원의 유연성을 제공하는 종단간 파이프라인을 갖추었으므로, 파이프라인 자체를 더 스마트하고 빠르며 효율적으로 만드는 데에도 주력하고 있습니다. 여기에는 다음이 포함됩니다:

  • 텍스처 재어틀링(re-atlassing): 여러 모델 텍스처를 하나의 최적화된 텍스처 시트로 지능적으로 압축합니다.
  • 자동 세그멘테이션: 세계에 대한 의미적 및 공간적 이해를 자동으로 활용하여 SLIM 처리가 가장 적합한 모델을 식별합니다.
  • 더 가벼운 표현: 지연 시간에 덜 민감한 동적 오브젝트의 경우, 클라이언트 측에서 렌더링하는 데 사실상 리소스가 거의 필요 없는 2D 표현을 생성하는 방안을 모색 중입니다.
  • 계층적 SLIM: SLIM 모델을 차례로 중첩하여 인스턴스 그룹 전체를 단순화하고, 엔진이 단일 나무에서 숲, 그리고 숲과 다른 오브젝트로 가득 찬 대륙 전체에 이르기까지 세분화 수준을 동적으로 선택할 수 있도록 합니다.
  • 해상도 향상(Up-rezzing): 현재 우리는 성능 향상을 위해 표현을 최적화하는 데 주력하고 있지만, 머지않아 동일한 시스템을 통해 제작자의 원래 예술적 의도를 유지한 채 향후 하드웨어에 맞춰 자산의 해상도를 높일 수 있게 될 것입니다. 이 새로운 아키텍처는 엔진의 현실 시뮬레이션 능력이 향상됨에 따라, 엔진이 사용하는 표현 방식도 지속적으로 업그레이드할 수 있음을 의미합니다. 

SLIM은 Harmony 및 당사의 기타 스트리밍 및 콘텐츠 전달 아키텍처와 결합되어, 더 많은 플레이어를 위해 더욱 광활하고 세밀한 세계를 지원하려는 당사의 비전에 있어 거대한 도약입니다. 엔진, 콘텐츠 전달, 클라우드 인프라의 긴밀한 통합과 수백만 크리에이터가 만든 방대한 콘텐츠 기반을 통해, 우리는 전체 경험을 향상시키는 깊이 상호 연결된 시스템을 구축할 수 있습니다. 엔진이 현실을 더 잘 시뮬레이션할 수 있게 됨에 따라, 우리는 엔진이 사용하는 표현 방식을 지속적으로 업그레이드할 수 있습니다. 현재 우리는 성능 향상을 위해 최적화에 주력하고 있지만, 머지않아 이 동일한 시스템을 통해 크리에이터의 원래 예술적 의도를 유지하면서 미래의 하드웨어에 맞춰 자산의 해상도를 높일 수 있게 될 것입니다.

저희는 이러한 예술적 의도를 존중할 뿐만 아니라, 로블록스가 지원되는 곳이라면 어디서나 다양한 기기를 사용하는 모든 사용자에게 창작물을 지능적이고 자동으로 전달할 수 있는 플랫폼을 구축하고 있습니다. 커뮤니티가 이 플랫폼을 통해 어떤 것을 만들어낼지 기대가 큽니다.

12025년 3분기 기준.