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 of 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 use 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 choose to use a lower resolution in real-time, resulting 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 as real-time rendering.
- Producing still images, referred to as 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.
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 an excellent result. A single value may suffice for some properties, such as roughness or metallic.
In Material Lab, there is a control that allows 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 are 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.
I have an 8k resolution texture. Do I have to downsample this to 2k for it to work with CETs PBR materials?
Due to performance concerns, CET only allows 2K resolution textures. Importing an 8K resolution into CET will be automatically downsampled. However, there will be a loss of information during the process as well as pixels.
We highly recommend you downsample the textures yourselves. That way, you will have more control over what information to include in the textures.
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.
Consequently, we should expect the drawing size to increase, but it boils down to how the extensions make use 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 uses 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.
Can you give a short introduction to all the new PBR material properties?
The base color property, also known as albedo, generally has the most significant 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 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 an alpha mask). This may be useful for creating a particular type of fabric 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 describe the normal property is referred to as a normal map. There are different types of normal maps, but in CET, 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 uses a light source at the camera, so think about what the surface you are viewing would look like if you would shine it with a flashlight.
Note that the normal property will never change the polygons' position, 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 on the surface. Think of surface details that are larger than 1mm. If you want to model "smaller" surface irregularities, use the roughness property instead.
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 produce a more matte appearance. Together with the base color this property has a significant 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 tiny 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. Still, it would require a very high-resolution normal map, and you would pay a lot of texture memory for something 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 other real-time renderers, CET Designer will not produce a glowing effect around emissive surfaces.