Sketchfab's viewer is based on PBR (Physically Based Rendering) methodology.
Materials
Sketchfab supports multiple materials and objects in your scene. Give each material a unique name because the 3D editor merges objects by material name. Avoid special characters when naming.
If possible, you should join every mesh that shares a material because it helps performance.
Colors
If you are not using texture images, you can choose a color for any slot from the color picker.
See also Vertex Colors.
Textures
Textures are images mapped to the surface of your model. For details on shaders/texture slots, see Materials (PBR).
Importing
Upload textures with your model file or embed textures in the model file (e.g. .BLEND, .FBX). You can put image files in the same folder/directory as the model file, or a sub folder/directory. If your textures are properly referenced by the model file or use our naming conventions, they will be automatically applied to your model.
If you need to add textures after uploading, you can use the texture manager or drag and drop images into their slots in the material editor.
Supported Formats
Different image formats can be used depending on whether you uploaded them together with the model file, or upload them in 3D Settings after the model is processed
During upload:
- .JPG
- .PNG
- .TIFF
- .TGA
- .DDS
- .GIF
- .BMP
- .VTF
In 3D Settings:
- .JPG
- .PNG
- .TGA
Processing & Compression
Textures are compressed to minimize model download times. We convert any image that is not .JPG or .PNG to .PNG. Then, we generate compressed versions of every texture. The format and level of compression depends on the image attributes and channel requirements: RGB, Luminance, or Alpha. We do our best to minimize file size without affecting visual quality.
We also generate multiple resolutions of each texture at every "power of 2" between 32×32 pixels and the original (up to 8192×8192). For example, if you upload a 1024×1024 texture, we will generate 32, 64, 128, 256, and 512 versions. Depending on your device, these are used in "LD" and "SD" modes in the viewer.
Textures are re-processed each time you change Material settings, with a small delay. This can take 10-15 minutes to complete. 3D Settings always uses full resolution, uncompressed textures.
If you experience issues with compression artifacts, especially on normal maps ("blocky" or "pixelated" textures, please see this post.
Automatic PBR Mapping
Use our texture naming conventions to help us automatically choose settings and apply textures to the right shader slots. The format is "MaterialName_suffix.extension". For example, if you have a material named "Material1", you could name your textures like "Material1_diffuse.png", "Material1_metallic.png", etc.
Avoid material names with special characters, especially periods '.', underscores '_', and hyphens '-' because it can break the match.
Avoid material names with matching substrings, for example "handle" and "woodenhandle" in the same scene.
If the model has only one material, we will apply textures based on the shader name match regardless of the material's name or the position of the string in the name of the image file.
These are the strings we look for in the suffix:
- Diffuse / Albedo / Base Color: 'diffuse', 'albedo', 'basecolor'
- Metalness: 'metalness', 'metallic', 'metal', 'm'
- Specular: 'specular', 'spec', 's'
- Specular F0: 'specularf0', 'f0'
- Roughness: 'roughness', 'rough', 'r'
- Glossiness: 'glossiness', 'glossness', 'gloss', 'g', 'glossy'
- AO: 'ambient occlusion', 'ao', 'occlusion', 'lightmap', 'diffuseintensity'
- Cavity: 'cavity'
- Normal Map: 'normal', 'nrm', 'normalmap'
- Bump Map: 'bump', 'bumpmap', 'heightmap'
- Emission: 'emission', 'emit', 'emissive'
- Opacity: 'transparency', 'transparent', 'opacity', 'mask', 'alpha'
- Subsurface Scattering: 'scattering', 'subsurface'
- Subsurface Translucency: 'translucency', 'thickness'
- Clear Coat: 'clearcoat'
- Clear Coat Roughness: 'clearcoat roughness'
- Clear Coat Normal Map: 'clearcoat normal map'
Troubleshooting
- Make sure you include the image files with the upload, and the .MTL file when uploading .OBJ.
- Make sure the path and file names linking the textures are correct.
- Try uploading your textures manually in 3D settings.
- If applying a texture does nothing, or seems to apply a solid color, this can indicate a UV-mapping problem.
- 3D scans and models with baked lighting often look best in Shadeless mode.
- Avoid spaces and special characters in your material, texture, and file names. Name everything with ASCII / UTF-8 compliant characters.
- Avoid image sizes bigger than 8192×8192 pixels.
- Avoid image file sizes bigger than 10MB.
- Avoid color spaces like CMYK.
For performance tips, see Viewer Performance.
Filtering
There are four options for texture filtering.
- Trilinear: Usually the best choice, especially for large textures.
- Nearest (mipmap): Can be useful for block textures like Minecraft blocks and pixel art with very small textures
- Bilinear: Can be useful for masking and hiding texture seams
- Nearest: Legacy, use Nearest (mipmap) instead.
Color Formats
Depending on the shader slot you're working with, you'll see different color encoding options under Format:
- RGB: Red, Green, and Blue color channels
- Alpha: Alpha transparency channel only
- Luminance: R channel only
By choosing the appropriate format, texture opacity can be encoded either as an alpha mask or by grayscale levels.
UV Channels
If you have more than one UV channel on a single material, you will see an additional interface option to switch between them.
UV Offset and Tiling
UV Offset and Tiling are not currently supported.
Texture Wrap Modes
Texture UV coordinates (u, v) map to surface ST coordinates (s, t). UV coordinate values can only range from (0, 0) to (1, 1), so there are several ways to wrap a surface with a texture. Mapping options can be changed with Wrap S and Wrap T:
- Repeat: The texture is tiled (2.6 → 0.6)
- Mirror: The texture is mirrored (1.2 → 0.8)
- Clamp: Texture pixels outside the [0, 1] range will be clamped to the border of the texture
3rd Party Rendering Engines
Proprietary renderers/shaders like V-Ray, and Mental Ray should have their lighting and textures baked for best results. The 3ds Max Exporter, for example, is able to bake materials and upload to Sketchfab automatically.
KeyShot currently offers no baking features and very limited material encoding in supported formats (STL and OBJ). Keyshot users should prepare materials/textures in other software or use PBR mode in Sketchfab without textures.
Comments
92 comments
Thanks, I'm passing on the feedback and escalated the request in our tracker. You should receive an email from me soon.
Yes, I received it, another suggestion is if API could add a parameter to define Normal direction, it's would be very helpful.
I'm trying to upload something with hair particles and they are not showing up...
help?
@epinephrine - What software are you using? They will probably have to be baked or converted to meshes.
@James - The software I use is Blender. I'm not sure how to bake particles, though would I need to bake them if it isn't an animation? and I've had a look around to see if I could convert them to a mesh but the advice I got was 'there should be a convert button on the particlesystem in the object modifiers tab" which there wasn't. I do use Blender 2.78a
@epinephrine - There should be an option to convert particles to mesh:
@James I've looked but there isn't :(
Someone suggested:
"If you don't have hair selected and have emitter selected, the button won't display until you have assigned something to be emitted"
Does that help?
@James
Nah they are still very flat on the website
Are 16 bit per channel .png images supported?
@marcclintdion - At the moment, we output only 8 bit images.
HI,
I would like to change textures of certain materials with viewer api.
Is there example code for that?
I see that I can do that on 3D settings in sketchfab viewer. Also I see there is a example to control diffuse level of certain materal.
Regards,
Justin
Hi Justin,
Yes, you can add a texture from a CORS-enabled URL, then use it in your materials. Documentation here: https://sketchfab.com/developers/viewer/functions#api-addTexture
Hi,
I have tried uploading 4 textures in sketchfab 3D setting.
However, it looks like I can only access 2 of them in API. Is there a way to access all 4?
If that is possible, it would be better to upload at sketchfab server rather than uploading 3rd party server.
Also, I tried uploading multiple textures in my AWS S3 server and tried to access via API.
It sometimes works, and sometimes spit out CORS ACAO error.
Below is AWS S3 CORS setting. I am basically allowing all origins including sketchfab.com.

Is there something wrong in my CORS setting? Or could you suggest me some solution?
Regards,
Justin
Hi Justin,
I also answered on forum. The viewer only includes textures that are actually used in model options, so you won't be able to access the other textures.
I'm not sure what would cause the CORS error only intermittently. Maybe you have multiple domains?
No, I am only storing my texture on Amazon S3 cloudfront single domain.
Is my CORS setting above, correct?
If you have any guidelines on CORS setting please give me some example.
Regards,
according to my email settings, I should not be receiving email notifications for this thread and yet I am(the option to receive emails for threads I've commented on is 'off'). I don't see an option on this page for per-thread controls, there is only generic settings site-wide preferences in the user settings.
I'd prefer not to re-disable email notifications entirely but your site's limited tools seem to make this necessary.
@marcclintdion The Help Center notifications are different from your Sketchfab notifications. You can unfollow article comments here: https://help.sketchfab.com/hc/en-us/subscriptions
@realvu Do you have a live site I can take a look at?
Thanks James, Now that I know that 'Help Subscriptions' is available in the User drop-down menu the issue is solved. :)
Hi James,
I have a problem with one of my models. If I upload it to Sketchfab all the texstures get lost and the parts of my model are just white. I upload the textures zipped together with the 3ds-file, but in the 3D-editor they don`t show up anymore. On an older model it still worked fine.
Here is the model without the textures: https://sketchfab.com/models/5e1f95da77b34ad5a370e60f2eaf39c1
And here the older one with textures: https://sketchfab.com/models/135a6c42c87c408cb41ab79c5afae2a0
Thank you for your help
Hi,
We support a maximum of 100 unique materials (see above in this article).
The model where materials didn't work has 115 materials. The model that did work has only 93.
Thanks James, that was what I was suspecting too, but I thougt I had deleted enough materials to be under the limit. Good thing to have you helping
hello,why can't I see additional interface option to switch uvs channel?
I'm sure My mode have more than 1 channel ,have two channel ,but can't found uvs additional interface option.
my model upload from sketchafab unity plugins.
Looks like you also reported the issue on GitHub? https://github.com/sketchfab/Unity-glTF-Exporter/issues/27
Aurélien over there is the best one to help!
i new to this whole thing. so I use magicavoxel and i exported my file to obj. when i uploaded it, there was no color. how do i fix this?
@MagmaMouse Usually there should be a .MTL file and probably also a texture image file along with the OBJ file. Did MagicaVoxel export those with it?
@James yes there is. so i would just zip it up in a seperate file or?
@MagmaMouse You can either select them all during upload or zip them together to save space.
Hello.
How can i upload my model with materials of glass and chrome without textures?
3D studio MAX and V-Ray
Thank You.
@3dmodelado Materials without textures should work fine if you export a format like FBX or OBJ (+ MTL). You can also adjust materials in 3D Settings after uploading. For example, here I made quick chrome and glass -looking materials just in Sketchfab's material editor:
You can also upload directly from 3ds Max using our exporter plugin: https://sketchfab.com/exporters/3dsmax
Please sign in to leave a comment.