Viewer Performance

In theory, there's no limit to the complexity of models that can be displayed. However, WebGL is hardware-accelerated, so the viewer's performance depends greatly on the machine displaying it. This is even more important to consider for mobile users.

Download Time

Before a model or scene can be rendered, the viewer needs to download and prepare all the required assets. This is what happens during the Loading 3D Model screen as well as the first moments of rendering when higher-resolution textures are loaded (the blue loading bar across the top of the viewer - if you want to avoid this step, try the preload embed parameter).

Textures

All the texture images need to be downloaded, so using many high-resolution textures can greatly affect download time. We optimize texture file size after you publish a model, and we will never use a texture larger than 8192×8192 pixels. However, you should minimize the number of textures and the size of textures as mush as possible.

Visit the Materials & Textures article and texture performance in this article for more details.

Mesh Vertices

The higher the vertex count / polygon count of your model, the longer it will take to download.

Background

HDRi environments are large images, and if you are using one for the background or lighting (or both), it needs to be downloaded. A fixed image background also needs to be downloaded. A solid color background is the best, as it requires no download.

Scene Optimization

While not technically part of the "download", several scene optimization processes take place before the scene is rendered. This can greatly improve viewer performance, but the more complex the scene, the longer this will take.

Materials

Identical materials are merged together.

Geometries

Meshes that share the same material are merged together.

Geometries are not merged for animated objects!

Rendering Performance

If you're having trouble with slow model viewing, bad frame rates, or browser crashes, the scene is probably too complex for your device or browser. There are many complexity factors that affect performance.

Materials

A large number of materials is a significant bottleneck in rendering performance. Instead, you can use a single texture instead of many material colors.

Textures

Textures require a lot of VRAM to render, so the fewer textures you can use, the better. A 4096×4096 (4k) texture, for instance, can require ~50MB (50 MiB, actually) of memory. It adds up quickly with lots of meshes and big textures.

Keep in mind the size of a texture versus the final screen size of the object in question. It's unnecessary to use a large texture on an object that will appear very small on the screen. Rather than use many separate textures, you can use a texture atlas to pack the textures for different objects together. Check out the Polycount Wiki on the subject.

While there's no strict rule here, we've found that 4k resolution is a good limit for performance and compatibility. It's better to use a 4k texture than several 2k textures, but it could be better to use a few 4k textures rather than an 8k texture.

Textures above 8k will never be rendered in the viewer. If you need higher resolution, use multiple textures instead.
Non "power of two" textures will never be rendered in the viewer. See Materials and Textures.

Meshes

The more separate meshes/objects/geometries in your scene, the worse the model will perform. Ideally, there would be only one mesh for each material. This is a common issue with SketchUp models and CAD models. During processing, we also split large meshes into 65,536-vertex chunks, in order to support all graphics cards.

Polygons / Vertices

Decimating your models to reduce polygon count can be a good way to improve performance. In most cases, it's unnecessary to have a polycount in the millions. It's also possible to 'fake' a higher polycount with normal mapping. Here are some related tutorials:

Bones

The more bones you use in an animated skeleton, the more expensive it is to render the animation.

Nodes

The total number of nodes in the scene graph roughly represents the overall complexity of the model, and includes common objects like nodes, transforms, meshes, and bones.

Transparency

Rendering transparency is very expensive, depending on the type of transparency you use. From fastest to slowest: Mask, Dithered, Additive, Blending.

See Transparency.

Shadows / Lighting

Rendering real time shadows from dynamic lights is expensive. Lights Attached to camera are problematic because they must be rendered every single frame as the camera moves. It's best to avoid Directional and Hemi lights casting shadows and attached to camera whenever possible.

Shading

Using Shadeless mode is faster than Lit mode because there are no light calculations needed.

Post-Processing Filters

Using a lot of post-processing filters can hurt performance. SSAO, Bloom, and DoF are particularly expensive.

Conclusion

All of these different complexity factors interact to influence the complexity of the scene and affect the viewer's performance. It's not an exact science, but here are some recommendations for model performance:

  • As few materials as possible
  • 50 geometries/meshes or less
  • 10 textures or less, especially when they are 4k+
  • 500,000 polygons or less
  • Fewer than 35 bones per geometry
  • Low scene complexity
  • Avoid expensive transparency methods
  • Avoid lights casting shadows when attached to the camera
  • Consider using Shadeless mode when appropriate

Obviously, different models will have different requirements, but it's important to keep these points in mind, especially for large and complex scenes. Check out Unity's Performance Tips for more details.

Other common problems

Shaky model with cracks and seams

Sketchfab 3d model viewer shaky scale

This shaking problem is caused by having very large (or very small) numbers as vertex coordinates. A solution is to reduce (or increase) the scale of the model before uploading. It can also be caused by overly precise vertex coordinates (floating point error), which can be fixed by rounding off coordinate values to a lower degree of accuracy. This can be particularly problematic for georeferenced models. It's best to change from a global coordinate system (like WGS84) to a local coordinate system.

A good solution is to recenter the model in its bounding box, which can be done in software like MeshLab

  • Open the model in MeshLab
  • Go to Filters → Normals, Curvatures and Orientation → Transform: Move, Translate, Center
  • Check Freeze Matrix and translate center of bbox to origin

Sketchfab model troubleshooting - center bounding box in MeshLab

  • Click Apply. You may see the model disappear - this is OK.
  • Export the model as OBJ, make sure you have TexCoord enabled if you have textures.
  • ZIP the OBJ + MTL + Texture and Re-Upload to Sketchfab

Flickering surfaces (Z-Fighting)

Sketchfab 3d model flicker surfaces

This problem is caused by overlapping faces. You should remove any overlapping surfaces from your model.

Have more questions? Submit a request

Comments

  • Avatar
    noitanigami

    I uploaded my boned-model that I made with C4D, but it turns out somewhat like polygonal disaster (awful abstract triangles).

  • Avatar
    James

    @noitanigami - Which model are you talking about? It looks like "IMGChan_Casual" was successful.

  • Avatar
    noitanigami

    @padrezippo - Yeah, I re-upload it and delete the bones. My Crystal GEN2 model, it looks horrible after uploading it.

  • Avatar
    James

    @noitanigami - Ah I see. No, we don't support rigging (yet) so it was probably messing up the meshes. Are you uploading manually or using the C4D exporter?

    I noticed some flickering on your playstation model. I'm not that familiar with C4D, could there be overlapping surfaces or maybe n-gons that need to be triangulated?

  • Avatar
    noitanigami

    @padrezippo - Oh okay. I use FBX Exporter, because C4D Exporter doesn't work. It says "HTTPS error" when I press Export with C4D Exporter.

    Yeah, I was forgot to untriangulate my Playstation NGons.

  • Avatar
    levi_grosse

    i made screenshots,where do they get saved? :D

  • Avatar
    moliorarchitects

    What sets the initial view of the model? I keep uploading mine but the initial view when you open in the viewer is of the rear, any tips

  • Avatar
    James

    @levi_gross - the Take Screenshot button only defines the thumbnail image that appears in model gallery pages. If you're interested in exporting screenshots, check out the Viewer API: https://sketchfab.com/developers/viewer/screenshot

    @moliorarchitects - To set the default position/orientation, go to Settings → 3D Settings on the model page, move the model where you want it, and Save Settings. You can also manipulate axes, lighting, materials, annotations, and so on: https://help.sketchfab.com/hc/en-us/sections/200509186-3D-Settings

  • Avatar
    kaadesign

    Hello,

    what´s wrong with the Sketchfab reflections? Most of my models, the sharp eges looking rounded here. The model has no errors.
    If You switch on "mesh" You see the sharp edges. But light and reflection makes the model soft ...

    Example: https://skfb.ly/C9DL or: https://skfb.ly/CrZ6 --> front view: Ring is flat, but looks rounded.

  • Avatar
    James

    DWF files (and the Inventor plugin) should be working again.

    Not sure what's going on with the reflections - will look into it.

  • Avatar
    lfried

    Exporting .iam or .ipt from Inventor using the provided exporter tools, gives me empty files.

  • Avatar
    James

    @lfried - we don't support .iam or .ipt. The Inventor exporter plugin uses .dwf

  • Avatar
    lfried

    James, that is why I stated that exporting using the provided exporter tool gives me empty files. Whatever format the exporter exports in (DWF apparently), my files are empty on Sketchfab.

    Furthermore, manually exporting to DWF then uploading to Sketchfab yeilds the same results. This is regardless of the file extension, since my .dwg's that I export to .dwf have the same result...and empty 3D viewer.

  • Avatar
  • Avatar
    James

    Sorry, I misunderstood. Moving over to the forum.

  • Avatar
    James

    @oleggee That's weird. Which model / categories?

  • Avatar
    finemech

    ...eemmhh... where I can switch off email notifications about new forum entries here?

  • Avatar
    James

    @finemech - Those options are not exposed to users at the moment, sorry about that! I will update the site to allow it as soon as I can.

  • Avatar
    Cosmin_Gx

    I keep uploading my model but it has no textures , what can i do ?

  • Avatar
    James

    @Cosmin_Gx - Can you please give me the model URL, and/or a sample file? Email would be best for this: support@sketchfab.com

  • Avatar
    James

    @finemech - I've updated the Help Center. You can now follow / unfollow from the bottom of any article. You can also unfollow from the Subscriptions menu in the top right drop-down on any page.

  • Avatar
    joannazoom

    Hi!
    I have lots of flicker problems in my model "1p" but I don't understand how to fix it. Maybe because English is not my first language? Should I try to fix it in sketchup or in sketchfab? I can't find any double surfaces in Sketchup.

  • Avatar
    kaadesign

    @joannazoom
    Try to check & repair with free tool "Netfabb Basic" ?

  • Avatar
    James

    @joannazoom - This workflow can fix a lot of SketchUp problems (bad performance, flickering, etc.): http://forum.sketchfab.com/t/sketchup-model-processing-and-performance/1073

  • Avatar
    joannazoom

    Thank you James, the flickering problem is now solved! Unfortunatelly some of the materials doesn't show right instead. Two of my materials now looks black instead of wood and grey. They are also missing in the Sketchfab materials list. I used the Sketchfab uploader, maby I did something wrong with the settings?

  • Avatar
    James

    @joannazoom - Hmm. Would you mind sending me the SketchUp file so I can take a closer look? support@sketchfab.com

  • Avatar
    rudolf-rednose

    About the flickering.
    To make a face visible from two sides, Unity advises to duplicate it and then flip the normals. So you have two faces on the same spot, just pointing in opposit directions.
    Is that a problem in Sketchfab? (And are faces double sided if I upload them like that from Blender?)

  • Avatar
    James

    @rudolf-rednose - Faces in Sketchfab are two-sided by default, with the option to switch to single-sided. I expect you would either have to upload the the duplicated faces and set both meshes to single-sided, or just upload a single face and leave it on double-sided.

  • Avatar
    rudolf-rednose

    But,.....(trust me to use a "but" a lot) doesn't that mean that there are overlapping faces?
    (Quoting: This problem is caused by overlapping faces. You should remove any overlapping surfaces from your model.)
    Or is that no problem when the normals of the overlapping faces are pointing in the oposite direction?
    Maybe I should post something first, and worry about it later.......

  • Avatar
    James

    Yep, I can't really say for sure without seeing a test model. My guess is that a single, double-sided face is better than two single-sided faces.