What does PBR stand for?
PBR, which stands for physically based rendering, is about being able to render images in a physically correct manner resulting in more realistic looking images. (Wikipedia)
There are two different PBR workflows, which one are we using?
There are two main ways to describe PBR materials:
- Metallic/Roughness workflow.
- Specular/Glossiness workflow.
We are using the metallic/roughness workflow due to its popularity and ease of use compared to the specularity/glossiness workflow.
What are the main benefits with PBR?
- It is more intuitive and simpler to work with.
- More physically accurate compared to Classic materials.
- There are a lot of materials online with textures prepared for the Metal/Roughness approach. Importing materials is just a drag'n drop operation away.
Rendering Guide Introduction
I have noticed that PBR materials uses cmmips files instead of png and jpg. What is cmmips?
Cmmips is a texture format that contains multiple resolutions for a single texture.
Instead of just storing a 1024x1024 texture we store a chain of textures, 1x1, 2x2, 4x4 .. 1024x1024.
The benefit of this is that we can chose to use a lower resolution during real-time which results in faster creation of snappers, loading drawings etc.
We can then switch to a higher resolution texture when the uses want to do produce a rendering.
Are there any limitations to the resolution used for the PBR textures?
A lot of work has been put into making textures work nicely with PBR for:
- Working in the drawing, referred to real-time rendering.
- Producing still images, referred to offline rendering.
We currently have the following texture limitations:
- real-time rendering: 512x512.
- offline rendering: 2048x2048.
There is currently no way for the user to change this.
Will the drawing size increase when using many PBR materials?
Yes, it may increase. It depends on the number of textures being used and the resolution of those textures.
A PBR material supports the use of more textures compared to a Classic material. It also allows us to handle high resolution textures efficiently.
As a consequence, we should expect the drawing size to increase but it boils down to how the extensions make sure of this technology.
Our core materials are heavier in terms of memory consumption compared to before, but they are still pretty modest compared to what you could do.
How is the drawing load time affected by PBR materials?
Since our PBR system makes use of cmmips (more info above) we can choose to use lower resolution for the real-time rendering.
This will speed up the process of loading drawings.
What is the ideal resolution for textures in PBR materials?
It depends on where the material is intended to be applied.
If you are working on materials intended to be used on a floor you need 2048x2048 since the floor will cover many pixels on the screen.
If you are working on a material used for a worksurface 1024x1024 might be enough. But if you want to support renderings done really close to the worksurface you maybe need 2048x2048 there too.
Also note that not all materials require a texture to give a nice result. A single value may suffice for some properties such as roughness or metallic.
Can you give a short introduction to all the new PBR material properties?
The base color property, also known as albedo, generally has the biggest impact on the appearance of a PBR material. Unlike Classic material the base color is not supposed to carry any shadowing
The opacity property defines the how transparent the material is perceived. Basically, how much light that leaks through the material. You may control the opacity across the material by using a texture (also known as alpha mask). This may be useful for creating special type of fabrics etc.
The normal property can be used to add details to a surface that would otherwise require a lot more polygons. The texture that can be used to describe the normal property is referred to a normal map. There are different types of normal maps but in CET Designer we expect an OpenGL based normal map defined in tangent space.
To evaluate that a normal map is correct you need to move around the camera and make sure the high lights on the surface using the normal map are where they should be. Note that in real-time CET Designer is using a light source at the camera so think about what the surface you are viewing would look like if you would light it with a flashlight.
Note that the normal property will never change the position of the polygons themselves so if the surface is viewed from a small grazing angle the effect will produce a less realistic appearance. That said, using a normal map is a cheap way to make a surface look detailed and if the surface is a bit from the viewpoint, it generally produces a nice effect.
Also note that the normal property should be used for “bigger” details in the surface. Think surface details that are larger than 1mm. If you want to model “smaller” surface irregularities, you should instead use the roughness property.
The roughness property defines how rough the surface is at a microscopic level. No roughness will result in a mirror like surface while high roughness will result in a more matte appearance. Together with the base color this property has a very big impact on the appearance of the material. It is important to avoid mixing up roughness with the normal property. As a rule of thumb, you can think of roughness controlling how the material behaves on a very small scale, think below 1 mm, and a normal map affects changes above 1mm. Note that it would be possible to describe roughness by just using a normal map, but it would require a very high-resolution normal map and you would pay a lot of texture memory for something that would be much cheaper, performance wise, to describe using the roughness property.
The metallic property naturally defines if the surface is metallic or not. Generally, it should either be 0 or 1, not in between. When a surface is metallic the reflection color will be colored according to the base color. For instance, a red metallic material used for a car will have a redder tone in its reflections compared to a very shiny red plastic material.
The occlusion property can be used to darken areas that light cannot reach. Generally, it is a good idea not to use it too aggressively because when we use ray tracing, like we do when we are producing still images, the geometry and normal map will take care of this in a good way.
The emissive property can be used to make the surface look as if it is emitting light. Note that unlike some other real-time renderers CET Designer will not produce a glowing effect around emissive surfaces.
In Material Lab there is a control that allow me to reduce the resolution of the textures in the material. Why would I want to use that?
This can be useful if you import a very high-resolution texture for your material. At the time of writing 2048x2048 resolution (2k) textures generally is enough for most surfaces. For some surfaces 2k textures may even be unnecessary. Keep in mind that using higher resolution textures will impact the render time so try to think about where the material is supposed to be used. Floors and walls that cover a lot of pixels in a rendering generally benefit more from a high-resolution texture. But a soda only covering maybe 100x100 pixels is not as critical.