3D Overlay Specifications

HP Reveal has its own 3D engine, which can support a range of 3D model complexities from simple static models up to realistically textured, lit, rigged & animated 3D scenes.


What file format do I use when I export?

The Studio requires 3D files to be exported as a .dae file, which must be created using OpenCollada.


What file format is required for the Studio?

Once your .dae file is ready, if you want to upload a 3D model to the Reveal Studio you will need to ensure that it is packaged inside a '.tar' (an archive file which is very much like a '.zip' file).

You can create .tar files with a number of programs; we recommend one called ‘7zip’ which is available for free. Download it here.

Along with your dae, the .tar file at a minimum must also contain textures and a thumbnail, both in .png format. It can also contain an .mp3, if you want sound, and a .cfg file.

You can find more in-depth info on a .tar file here.  

NOTE: Make sure none of the files inside your .tar file are contained within subfolders 


What to export inside your .dae

  • Geometry (Tris and quads, no Ngons)
  • Lights (Point lights)
  • Bones (if exporting rigged geometry)

More info on how to create a .dae is available here.


Textures and Materials specifications

  • Textures:
    • Maximum texture size is 1024x1024 pixels.
  • Formats:
    • .Png format (8bit or 24)
    • Power of 2 (more on this here)
    • Material & texture file names must not contain spaces/brackets/capitals, stick to lower-case characters & underscores.
    • Material & texture file names must not start with a number.
  • Types of maps:
  • Transparency
    • Transparency blending is very processor intensive, if you use transparency on sections of mesh, put it in its own shader and therefore separated mesh/object
    • Avoid the use of transparency where possible, it can cause issues when rendering.
  • Notes:
    • Standard texture map shaders not procedural shaders. 
    • One material per mesh/object. If you need two materials then use two meshes/objects.
    • A material might be applied to several objects but objects can only have a single material applied to them.
    • Use the smallest texture maps possible, consider the physical size that your model(s) will actually appear on the screen of a device, as well as how close the user will be able to get.
    • Use the simplest shader possible for each situation. The order of complexity is as follows: +Simple - constant < lambert < phong < blinn + Heavy

More info is available on textures here.


Model specifications 

  • Geometry guidelines:
    • No more than 10,000-15,000 triangles, there is a direct trade-off between poly count and device performance.
    • No N-gons (i.e. polygons that are more than 4 sides).
    • Everything must be converted to editable polygons, with all the modifiers collapsed unless it is going to be rigged - in which case only the Skin modifier and Morpher (if used) would remain. Skin modifier at the top of the stack.
    • Check for holes and flipped normals in the mesh as they may cause visual anomalies. 
  • Mesh/Object guidelines:
    • Meshes must not have any non-uniform scaling.
    • Exported meshes should be triangulated on export - this is usually an option in the export window.
    • No more than 20 objects (meshes) in a scene. Animated rigid geometry is less processor intensive than skinned geometry, but extra draw calls are more intensive. Ultimately, once you have passed 10 or so objects, it is something that needs to be approached on an individual basis
  • Notes:
    • Groups are not supported in the engine.
    • Scene should be centered around the world origin (0,0,0) to ease placement in Studio.
    • Object names must not contain capital letters/spaces/brackets, stick to lower-case characters & underscores..


Lights specifications

  • Formats supported
    • Only omni/point lights are supported.
    • 3 lights are recommended – more than this will cause performance slow down on less powerful devices. 
  • Notes
    • You need to add lights to your scene before you export, otherwise your model will appear black, unless using constant or self-illuminated shaders.
    • Light value is based on the light’s colour value not intensity e.g. mid grey = 0.5 intensity multiplier.
    • Lights parameters cannot be animated, such as light colour.

Additional information available on lights here


Rigging specifications

  • Notes: 
    • Bone names must not contain spaces, brackets or special characters – replace spaces with underscores if needed.
    • The export rig should contain a maximum of 100 bones to optimise playback – the performance hit comes largely from skinning weight calculation. less bones = faster device performance.
    • It is advisable to name all bones properly - naming conventions make it easier to see what’s causing errors.
    • Objects cannot be linked/parented to non-export objects – Position and Orientation constraint targets do not need to be exported.
    • Make sure every vertex in a mesh with a skin modifier has a skinning weight.


Animation/Export specifications

  • Animation Settings:
    • Default play speed of 3D overlays is 30fps. 
  • Export Settings:
    • When exporting a ‘.dae’ you must tick the “bake keys” box in the Collada options (as laid out in this article)
  • Notes:
    • All animated export objects must have a key on the first and last frames on the timeline when exporting
    • Don’t animate materials/material parameters.
    • Don’t animate light colour.
    • All animation transforms are supported (Translate, Rotate and Scale).
    • Don’t scale to 0 (0.001 is supported)

More on animation here


Animated AR Characters

If you're looking to build (or already have) an animated character for use on our platform, see this article for a detailed break-down of how to prepare the character for export and get it uploaded into the Studio. 


Was this article helpful?
4 out of 4 found this helpful
Have more questions? Submit a request


Powered by Zendesk