This article explains how to optimize images and videos for AR use. The use of large images and videos can bloat a project quickly resulting in the inability to publish your project in WorkLink Create or errors when viewing a published project on the WorkLink App.
Follow the guidelines below for recommended formats, size, length and number of images and videos to be used in a project.
Format - MP4
Size, Length and Quantity -
- Cut video to minimum desired video length needed. Cut off excess video parts that are not essential to the end user experience.
- Use the smallest resolution possible, while still having a pleasant viewing experience
- Eg.: 4K resolution videos for us in 3D space, while viewing on HL2 is not recommended. 540p videos should result in a very similar viewing quality, while the file size is up to 16x smaller.
- Use the lowest fps (frames per second) needed for a pleasant viewing experience
- Eg.: 25 -30 fps will be more than sufficient in most cases
- 60 fps can be considered overkill in most cases, recommended to lower the fps
- 15 fps could even be used for videos that don't include fast camera movement
- Doing so can further decrease file size, and increase performance on the end device (15fps is up to 4 times smaller file size vs 60 fps)
Video optimization can be done in software like Adobe Media Encoder, but for example, Windows also offers free tools to do so.
Free Optimization tools - Windows Video Editor
Note: Make sure to "finish" in 540p instead of 1080p like in the YouTube reference: How to use Free Windows 10 Video Editor
Format - JPG, PNG
Generally ecommended not to use image sizes over 1920 px, using higher resolutions can have a negative impact on loading time and performance on the end device, while not necessarily providing a higher quality viewing experience.
- Resolution: Use S(mall) or C(ustom) dimension with power of 2 (256-512-1024 px)
Free Optimization tools - Windows Photos Resize image standard functionality or Windows snipping tool.
Others - Triangles (Polygons) and Objects (draw calls)
- The amount of triangles (polygons) and objects (draw calls) when viewing a step can influence the "frames per second" the end device can handle.
- This mainly applies to the power of the GPU (graphic card on that device). If the device has a very weak GPU, expect lower fps vs a device with a powerful GPU.
- Generally, we would recommend to have experiences with around 1 million triangles and no more than a couple 100s of objects to guarantee a smooth experience for the end user. Nonetheless, very old devices, or devices like HL2 might struggle with those numbers, requiring potential better optimization of the 3D data (tessellation, decimation, reducing object count)
- The file size of the project (project size + 3D files + images + videos, etc.) can have influence on loading times (more file size = more MB to download to the device), as well as potential issues with RAM (memory) running out. Newer/higher end devices tend to have more RAM, while older devices might run out of memory (RAM) on large projects (potentially resulting in a crash). It is always a good idea to optimize e.g. images and videos to their smallest size needed for a great user experience.