3D Model Features and Limitations

General

Textures

  • Materials are not supported, all shaders must be linked to image texture files.

  • Procedural textures are not supported.

  • Textures need to be a power of 2 in both dimensions (e.g. 512 x 512) however they do not need to be square (e.g. 256 x 512). In addition, textures above 2048 x 2048 are not supported.

  • The current version of Zappar does not support dynamic lighting. Your 3D program of choice should have the ability to "bake" lighting into the texture. Additional maps such as diffuse, occlusion, normal, specular and bump are also not supported.

  • Only 1 texture per mesh is supported.

  • When using textures with alpha, make sure the objects closest to the camera in 3D space are also above the lower objects in the scene list/outliner. This ensures Zappar will draw these first and avoid any unwanted alpha overlay artifacts.

UV Map

  • Models need a UV map, 1 per model maximum.

  • Only 1 set of UV coordinates per vertex are supported.

Rigging

  • A maximum of 3 influences per vertex for skeleton rigs.

  • 256 maximum bones.

  • Blend shapes are not supported.

Geometry

  • While not a hard limit, we recommend a maximum polycount of 20k for rigged character and 100k total for the complete experience (if using multiple models). If going above these recommendations, we advise thoroughly testing on the devices you expect to run the experience.

POD

The POD format supports multiple 3D objects in a single file, along with support for "skinned" character meshes to allow for animated characters. A POD file contains a single timeline shared by all objects in the file.

The POD format uses a tree of nodes in much the same way as ZapWorks Studio itself. All nodes in POD files have a position, scale, and rotation (a "transformation"). POD files consist of a few different types of nodes: objects (triangular meshes), lights, cameras, and "helpers" (such as the skeleton's bones for skinned characters). Zappar ignores any lights and cameras specified in the POD file, and only considers the objects and whichever helper nodes are required to render them.

The only animations that can be represented in POD files is the transformation of nodes. UV animations, vertex animations and visibility / color animations are not supported. Blend shapes are not supported - all character animation must be done using bones.

For skinned animations using bones there is a limitation of 4 influencers per vertex. Bone weights should also be normalized before export in your 3D package. The POD format also requires that the first frame exported contains the objects in their bind poses, and animation errors may be visible if this is not the case. When the models are imported into ZapWorks Studio the user will have full control of the animation frames used in the experience, so it doesn't matter if the frame with the bind pose is not going to be shown to the user - it is still required to ensure the object's shape changes can be calculated correctly for the rest of the animation.

Although the POD documentation suggests multiple texture coordinate sets are supported, Zappar will only consider the first one. Other limitations are shared with the POD format in general – all 3D geometry must be mesh-based, splines and NURBS surfaces are not supported.

zapcode branded_zapcode i