Materials and Textures

    There are two rendering modes on Sketchfab: Classic and PBR (Physically Based Rendering). By default, uploads are set to PBR mode. This is almost always the best choice. It provides more realistic material and lighting, and does not prevent anything that could be done in a Classic workflow.

    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.

    When uploading the Wavefront (.OBJ) format, the material library file (.MTL) should be included for best results.
    Sketchfab supports a maximum of 100 materials. If we detect more than 100 materials during processing, we attempt to merge identical materials. If there are still more than 100 materials, we merge everything together into a single material.

    Sketchfab 3D model editor multiple materials

    Colors

    If you are not using texture images, you can choose a color for any slot from the color picker.

    Sketchfab 3d model settings material 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.

    When using the Wavefront (.OBJ) format, the material library file (.MTL) should be included for best results.

    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.

    Sketchfab 3d model material import texture

    Sketchfab 3d model material texture settings

    Sketchfab 3d model material texture settings

    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
    Anything that is not .JPG or .PNG is converted to .PNG. See Processing & Compression.

    In 3D Settings:

    • .JPG
    • .PNG
    • .TGA
    .TGA is converted to .PNG.
    The maximum supported file size per texture is 75MB. However, we recommend staying well below this limit whenever possible. Such large images use a lot of resources, and are usually overkill. Keep in mind that we will not render textures larger than 8192px × 8192px. See Processing & Compression.

    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.

    Color Space

    Sketchfab supports sRGB and Linear RGB colorspaces for textures. You can switch between them in the Material Editor's Manage Textures dialog. If you're unsure, Auto is the best choice.

    Sketchfab 3d model material texture settings colorspace

    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.

    Sketchfab 3D model editor texture UV channels

    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

    Sketchfab 3D model editor texture UV channels S/T wrap repeat mirror clamp

    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, Normal, Alpha, etc. Normal maps use ASTC.

    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.

    For performance reasons, non-"power of 2" textures will not be used; the viewer uses to the closest, smaller version.

    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.

    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 sub-stings, 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'
    • Transparency: 'transparency', 'transparent', 'opacity', 'mask', 'alpha'

    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.

     For performance tips, see Viewer Performance.

    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.

    Have more questions? Submit a request

    Comments

    • Avatar
      overthere

      Is it actually possible to bake lighting and texture from Keyshot, googling would seem to suggest not?

    • Avatar
      James

      @overthere - I've done quite a bit of googling myself, I also think not...

    • Avatar
      bigattck

      booo, making fbx not have texture is like not having water in the ocean.

    • Avatar
      James

      @bigattck - I'm not sure what you mean. We completely support textures in FBX, just not the specific "FbxLayeredTexture" http://help.autodesk.com/view/FBX/2015/ENU/?guid=_cpp_ref_class_fbx_layeredtexture_html

    • Avatar
      Kirill_llirik

      Hello James. Have a Sketchfab support import model with animation like a FBX Review? Its realy will be great for show 3d porfolio for animators.

    • Avatar
      James

      Hi Kirill,

      Not yet, but animation is a big milestone for us in the future!

    • Avatar
      KrzysztofZwolinski

      Can I pack textures to chanels ?? R-metallic, G-spec, B - ao etc. Les memory better performance special on web and mobile devices. Now im working with simple matcap shader that use only "Normalmap" and im using only R+G for normals, B is ambient and A is alpha.

    • Avatar
      James

      @KrzysztofZwolinski - Not completely, but it's something we might implement in the future. You can do it with a few specific slots. Alpha Blending/Alpha Masking can use Alpha (A) or Luminance (R). Emission can use Luminance (R), and Base Color/Albedo can use Luminance (R).

    • Avatar
      clockworxdesign

      Hi James, could i use animated textures in future? say upload a small gif for a blinking eye , or a short looping video clip to play on a TV on an exhibition stand or similar?

    • Avatar
      James

      @clockworxdesign - Yes, it's something we're experimenting with.

    • Avatar
      iqs99

      Hello can anyone tell me which type of normal map is accepted in Sketchfab, DirectX (X+, Y-, Z+) or OpenGL (X+, Y+, Z+) ?

    • Avatar
      James

      @iqs99 - We offer an "Invert Y" option in the normal map channel in order to support both formats:

      normal map invert y

    • Avatar
      degit22

      How to set in MTL file Diffuse / Albedo, Metalness, Specular, Roughness, Glossiness, Ambient Occlusion, Cavity, Normal, Bump, Emission, Opacity? Where an example?

    • Avatar
      James

      @degit22 - You need to set your texture names like they are defined above:

      https://help.sketchfab.com/hc/en-us/articles/202600873-Textures-Materials-Formats#obj

    • Avatar
      degit22

      @James - Before update work suffixes. Now textures do not automatically choose.

    • Avatar
      James

      @degit22 - Ah, I'm sorry. I think it might be related to this bug. Could you try the workaround here?

      https://forum.sketchfab.com/t/sketchfab-does-not-load-automatically-textures/5535

    • Avatar
      craftworkmobile

      Unity3d uses specular map from alpha channel. Is it possible to use it right from the texture alpha channel or I should use unique specular map?

    • Avatar
      James

      @craftworkmobile

      For Classic materials, we support RGB and Luminance (R) in the specular slot, but not Alpha (A).

      For PBR (Metalness workflow), Specular F0 map is optional, but we expect a linear, greyscale RGB image.

      For PBR (Specular workflow), we expect an RGB map in the Specular slot.

      So, in your case, yes I think you should use a unique specular map.

    • Avatar
      klonoaxlolo

      I have a klonoa model but when i add his textures his eyes aren't open all the way but his eyes are colored.  Someone please help me

    • Avatar
      James

      Hi @klonoaxlolo - You can make the eyelid materials 100% transparent in 3D Settings: http://puu.sh/ofL3H/8b78d89a0e.jpeg

    • Avatar
      frankmaraite

      In agisoft photoscan I can set 'UDIM texture layout' when exporting OBJ. Should I set this or not?

    • Avatar
      James

      @frankmaraite - I'm not really sure what that option does, but I never set it when I use PhotoScan.

    • Avatar
      jinkapo

      *coughs* So... I don't blame you from laughing at this, but I made a prop last night and was using sketchfab as a previewer while I was working on it at a public PC, so anyway, the computer decided to crashed and the files ended up becoming corrupt. So yeah, I was wondering if there is a way to retrieve my textures when the download property is a .blend file.

    • Avatar
      James

      @jinkapo - These things happen :)

      If you packed the texture in the .blend file before exporting, you should be able to extract them in Blender. If not, you can grab them from Developer Tools > Resources.

      Edit: Turn off image compression to make sure you're downloading your original versions and not our processed versions:

      https://sketchfab.com/models/f3339e611a5143f88c09b9dfb56a0c7f?image_compression=0

    • Avatar
      bicom

      .

    • Avatar
      James

      @jk76 - looks like you got some answers on the forum?

    • Avatar
      lukeyu

      Why "Invert Y" in the normal map would be a default setting ?

    • Avatar
      James

      @lukeyu - Because DirectX (-Y) is more common than OpenGL (+Y)

    • Avatar
      lukeyu

      Is it possible to let us to choose "Invert Y" option at once for all materials ?

    • Avatar
      lukeyu

      And according this table (http://wiki.polycount.com/wiki/Normal_Map_Technical_Details) I think you should use OpenGL as a default