The purpose of this article is to guide you through Sketchfab's implementation of PBR, not to teach you how to use PBR. There are many great resources on PBR theory and practice, including Allegorithmic's PBR Guide.
What is PBR?
Physically Based Rendering (PBR) is a method of shading and rendering that provides a more accurate representation of how light interacts with surfaces. It can be referred to as Physically Based Rendering (PBR) or Physically Based Shading (PBS). Depending on what aspect of the pipeline is being discussed, PBS is usually specific to shading concepts and PBR specific to rendering and lighting. However, both terms describe on a whole, the process of representing assets from a physically accurate standpoint. - Wes McDermott, Allegorithmic PBR Guide, Vol. 2
PBR on Sketchfab
Shading mode must be Lit for PBR lighting and reflections to work. Using an Environment to light the scene is typically the best option. See Lighting.
The PBR material tools are available in 3D Settings.
- From your model, click Edit 3D Settings or add "/edit" to the end of any model URL.
- Select the Materials panel in the top left.
See also Materials and Textures.
PBR Maps
PBR has two main workflow options: Metalness and Specular.
Metalness
The channels specific to Metal/Roughness are Base Color, Metalness, and Specular F0.
- Base Color: an (s)RGB texture or solid color for reflected color (non-metals a.k.a. 'dielectrics') or reflectance values (metals)
- Metalness: a linear grayscale texture; black (0.0) for non-metal and white (1.0) for raw metal
- Specular F0: a linear grayscale texture for Fresnel values (non-metals)
Specular
The channels specific to Specular/Glossiness are Albedo and Specular.
- Albedo: an (s)RGB texture or solid color, without reflectance values
- Specular: an (s)RGB texture or solid color for reflectance values (metals, color) and F0 (non-metals, grayscale)
Anisotropy
Anisotropic reflections are stretched across a surface due to patterned roughness on that surface. Some common use cases are hair and brushed steel. See more: Anisotropy
Roughness / Glossiness
A linear grayscale texture, or a solid grayscale color, for describing surface irregularities. See Diffuse vs Specular Reflections.
Displacement
A grayscale depth map to displace a model's vertices. The model must be subdivided as needed before uploading because we cannot generate new vertices in real time.
Normal / Bump Map
A texture to add bumps and dents. Enable Invert Y to reverse the bumps and dents. See also Tangent Space and Normal Maps.
Subsurface Scattering / Skin
The Subsurface scattering (SSS) channel simulates the effect of light scattering inside an object. It is useful for translucent materials like skin, wax, and ice.
- The Subsurface scattering texture is a grayscale texture. It works as a mask to indicate where the effect is visible and how strong it is.
- The Subsurface profile is two colors that define the behavior and color of scattered light. It works similarly to the UE4 Subsurface Profile Shading. You may use up to 3 profiles per model.
- The Subsurface color is multiplied by the scattering color and can be used as a weight for the subsurface effect. 100% black means there is no subsurface effect, and 100% white means that all light that enters the material is scattered. Non-grayscale values give more control over color contribution.
- The Falloff color defines the material scattering color after light has entered the material.
The Translucency channel controls the backscattering of light behind an object. It is useful for materials like leaves and thin body parts like ears and noses.
- The Translucency texture is a grayscale texture that defines the depth or thickness of the material. Black values represent thin parts of the model, and white values represent thick parts of the model.
- The Color defines the color of the light passing through the object. It is usually the same as the subsurface profile color.
- The Thickness factor indicates how light is being dispersed.
Here is the same model with Subsurface scattering disabled:
Example
Clear Coat
The Clear Coat channel simulates the effect of a thin reflective layer on top of a surface. A common use case is the transparent coating on top of car paint. It can also be used for things like varnish on wooden furniture, wet surfaces, or anything that benefits from having multiple layers.
You can control the coat's Intensity (grayscale texture or single value), Thickness, Reflectivity, and Tint (solid color). You can also add surface Roughness (grayscale texture or single value) and a Normal Map.
Ambient Occlusion (AO)
A texture to define large areas of occluded light. Usually, AO only affects the diffuse light contribution. You can enable Occlude specular to also occlude the specular contribution (reflections).
Cavity
A texture to define small areas of occluded light.
Transparency
Sketchfab supports several transparency modes: Blending, Refraction, Additive, Dithered, and Mask.
See Transparency for details.
Emission
A texture or a solid color to make the material glow.
Faces Rendering
You can switch between rendering both sides of a material surface or just the front face. Single-sided rendering (back-face culling) is often a good choice for 3D scans. It can also help performance. Other applications include Cel Shading and Cartoon Outlines.
Saving
Once you've made your adjustments, including position and orientation, be sure to update your model's thumbnail image and default position with Save View and/or save your changes with Save Settings. You can return to your model by clicking either the model's name or Exit.
Also see:
Comments
42 comments
Is it possible to have separate Metalness and Specular materials?
I just can't add a moving custom environment, it is static, what do I do wrong?
@somchith3d - Not at the moment: Switching between them will change the workflow for ALL materials in the scene.
@auslander - I'm not sure what you mean, can you elaborate?
Hello, I have imported my model as a .STL. I am a product design engineer, not a rendering or 3D artist type, so I was quite surprised to see our favourite formats of .IGES and .STEP are not supported. I had to faff about and work out how to export an STL to get it into Sketchfab. The problem I have now is, the model is made up of several parts. There is a case and it has buttons on it. I need the buttons to be another material to the case. The STL seems to have imported in such a way that it treats the buttons and the case as the same 3D object. I cannot workout therefore how to apply a different material to the buttons than the case. I have a horrible feeling that I wont be able to do this. If this is the case, can you tell me how I might be able to get round this, bearing in mind that as a design engineer, I don't use 3DS max or any of the graphic/art type modelling systems.
Thanks.
in the future can we have emission map, but based on gradients normals?
or maybe in near future we can have a stand alone sketchfab win applications. for better adjustments, say setting up color animations; its graph etc before publishing it...
Hi @rubykamen - Sounds interesting. Do you have an example of this kind of emission map?
hi @james - glad you interested... its for faking SSS, X-ray materials or maybe making some kind of xplosion ( sadly currently we cant make it with voxels ) with emission value controlled from the gradient normals...
I still cant get my textures to show up on my models, it just dose the color of the texture. i am using blender.
@whitejackal Are they properly UV unwrapped and embedded in the .blend file? https://help.sketchfab.com/hc/en-us/articles/209143886-Blender-Materials#blender-textures
Could you post a link to the upload so I can take a closer look?
@James i don't know how to UV yet, they are generated textures. https://sketchfab.com/models/8a0cd3a2261a4c5ca7415129d066f18d
this is what its suposed to look like
Thanks. I just saw your email. I'll reply there.
We only support UV mapped textures in Blender at the moment.
https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics
Hello, I recently uploaded a 3D model that is supposed to have different materials/textures assigned to different parts of the model. In Maya, I have 5 different materials, each with their own unique texture that is currently 2K resolution. However after previewing it in 3D Settings on Sketchfab, under the Materials tab I only see "Scene - Root" as the only material. How can I assign different textures that I upload to different parts in Sketchfab to get my model to display correctly? Thanks
@mmkh - I'm sorry you're having trouble. What file format did you upload? Have you tried the Maya Exporter plugin? https://sketchfab.com/exporters/maya
I have the same question as hocusproducts . Why has no one answered?
@doboindesign @hocusproducts - Sorry about that. We support IGES files now, but it might not be the most robust support. Otherwise, you'll need to convert your model to another format.
James, thanks for the reply! My problem is not so much converting files. I use rhino and can convert to many file formats. the problem I'm having is how to assign different textures to different parts of the object. Like hocusproducts said, my models have differenbt components except the layers for each component is not being imported to sketchfab. i just see something called "scene root". I'm a total noob here so I'm most probably overlooking something. However, i have come here because I still can't find info on how to assig different textures to different parts of an object.
Hmm, do you mind sending my an example Rhino file so I can take a closer look? You can email support@sketchfab.com
I've sent you an example... thanks !
Great, thanks :)
Is there a Maya material preset (ShaderFX or Stingray PBS or other) that would map 1:1 to a GL material Sketchfab is using?
@scanlabstudio I'm not very familiar with Maya's material presets, but most likely those will not translate 1:1 if they are unique to Maya. However, you can use our material/texture naming conventions to automatically match and apply PBR channels:
https://help.sketchfab.com/hc/en-us/articles/202600873-Materials-and-Textures#textures-auto-pbr
I'm talking about a GLSL material you use to display WebGL content at Sketchfab, nevermind Maya.
Oh, sorry, I'm not sure about that :-\
How should I upload my scene to have separate materials? Or the only option is making atlas?
What software and file format are you using? We support multiple materials in a scene, they just need to have unique names and be exported correctly.
I am using 3ds Max and export in .obj and .fbx. How should I esport it properly?
Are you using textures?
1) You can use the 3ds Max Exporter plug-in, which includes texture options:
https://sketchfab.com/exporters/3dsmax
2) FBX: make sure to enable "embed media" in the FBF export options.
3) OBJ: make sure to include the .MTL file and textures in the upload
Hi James!
I uploaded a 3d model from clo, it is a shirt. I'm trying to add a print to the main fabric by uploading a jpg file to the 'specular' > 'albedo' thing, but it's not working. Now I wonder if I'm trying to upload it in/with the wrong tool or if it's not possible at all to add it in sketchfab..
Would you give me a hand?
Thank you in advance for your time and patience :)
Hi, I've just made some tests to add a miror on a room.
I'm having the reflection on the room on the mirror. so It's working fine, exept that the HDRI using to create the reflection is very zoomed.
Is there any way to adjust the size of the reflection?
Thank you very much for your support!
Matthieu
Please sign in to leave a comment.