Large and complex 3D content in Unity

All Posts

One of the biggest issues our 3D developer partners encounter is the sheer amount of time it takes to optimize and import large 3D models. While, for example Unity has announced that they're working on improving their FBX-support, we decided to approach the problem from a different perspective: what if you could stream the 3D content directly at runtime while skipping the time-consuming optimization and import phases altogether?

That’s exactly what we did. Umbra Composit is now the fastest and easiest way to use large and complex 3D content in your application. Before we dive deeper, the video below features a brief overview of Composit for Unity and a visualization using scanned 3D content measuring up to 2 billion polygons and 700 gb of texture data!

A 700 gigabyte scanned 3D model of Helsinki city

Role of the cloud

Anyone familiar with scanned 3D models knows how big the data sets can get - a few hundred gigabytes of point cloud data isn’t a rare occurrence. Increase the capture quality, scan a larger area and we're starting to talk terabytes, even petabytes of data. Storing and transferring such large amounts of data becomes a burden in and of itself. Imagine trying to display that amount of 3D data on an iPhone, iPad or the HoloLens. That's where Umbra Composit steps in.

Umbra processes your 3D data into a format that is streamed directly into the end-user's device. That data is based on content visibility and distance to the camera in your application's runtime. Umbra's cloud processing automatically applies the following 3D optimizations to your content:

  • Level of detail (LOD) generation and management
  • Mesh, texture and draw call optimization
  • Occlusion culling
  • Retargeting for specific viewing platforms

These optimizations respect the strict performance budgets imposed by mobile, AR and VR-devices while making sure your application maintains the desired frame rate. And naturally, it saves an awful lot of time spent on manual optimization work.

To reiterate, Umbra actually streams the content to be rendered on the end-device. This means that umbrafied 3D content can be used even if a network connection isn't available, which wouldn’t be possible if the rendering was done in the cloud. 

What’s in it for you as a developer?

Quite a bit! Umbra allows you to:

  • Use 3D content of any size and complexity in your Unity application
  • Minimize your application size and startup times
  • Stop worrying about polygon counts and memory budgets
  • Ensure 60 - 120 frames per second performance

Additionally, when something changes in the original 3D data set, just reprocess it through Umbra Composit and it’ll be automatically updated in your application (check our Downloads page for supported inputs). Finally, you’ll have more time to focus on creating better, more immersive and visually stunning experiences instead of wrestling with getting the content to work.

Want to find out more on how to stream a huge 3D model into Unity? Check out this post.

Popular Posts