PBR Shader Parameters
In this tutorial you will get familiar with PBRShader's parameters. You will see how change of parameter values
affect materials using PBRShader.
Agenda:
- PBRShader look - basic parameters
- PBRShader control parameters
Scene setup
Let's use custom scene composer to set up the scene.
from skyrenderer.cases.utils import MaterialsSceneComposer
from skyrenderer.basic_types.procedure import PBRShader
from skyrenderer.scene.scene_layout.layout_elements_definitions import MaterialDefinition
/home/ws3h/projects/content-marketing/skyrenderer/skyrenderer/utils/visualization_helper.py:3: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html from tqdm.autonotebook import tqdm
scene_composer = MaterialsSceneComposer(antialiasing_level=32)
scene_composer.setup_scene()
pbr_shader = PBRShader(scene_composer.renderer_context)
material_definition = MaterialDefinition(shader=pbr_shader)
for shaderball_part in scene_composer.SHADERBALL_PARTS:
scene_composer.renderer_context.set_material_definition(
node_name=shaderball_part, material_definition=material_definition
)
2025-08-07 09:59:51,129 | skyrenderer.scene.renderer_context | INFO: Root paths: - root path: /home/ws3h/projects/content-marketing/skyrenderer/skyrenderer - assets path: /dli/mount/assets - config path: /home/ws3h/projects/content-marketing/skyrenderer/skyrenderer/config - gpu sources path: /home/ws3h/projects/content-marketing/skyrenderer/skyrenderer/optix_sources/sources - cache path: /dli/mount/cache - ptx cache path: compiled_ptx/ptx - ocio path: ocio_configs
PBRShader look - basic parameters
In this section we will walk you through changing and setting basic PBRShader parameters:
- alpha and base color
- metallic and roughness
- clearcoat parameters
- fresnel parameters
- perlin noise
During that, we will use update default parameter methodology known from Procedure tutorial.
Alpha nad base color
renders = {}
renders["alpha=1"] = scene_composer.get_render()
PBRShader.update_default_parameter("alpha", 0.5)
renders["alpha=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("alpha", 0.25)
renders["alpha=0.25"] = scene_composer.get_render()
PBRShader.update_default_parameter("alpha", 1)
PBRShader.update_default_parameter("base_color", (1, 0, 0))
renders["base_color=(1, 0, 0)"] = scene_composer.get_render()
PBRShader.update_default_parameter("base_color", (1, 1, 0))
renders["base_color=(1, 1, 0)"] = scene_composer.get_render()
PBRShader.update_default_parameter("base_color", (1, 0.7, 0.4))
renders["base_color=(1, 0.7, 0.4)"] = scene_composer.get_render()
scene_composer.visualize_grid_desc(renders, shape=(1000, 1500), n_cols=3, thickness=2)
2025-08-07 09:59:51,335 | skyrenderer.utils.time_measurement | INFO: Setup time: 78 ms 2025-08-07 09:59:52,094 | skyrenderer.utils.time_measurement | INFO: Context update time: 759 ms 2025-08-07 10:00:04,066 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:00:04,067 | skyrenderer.utils.time_measurement | INFO: Render time: 11.97 seconds 2025-08-07 10:00:04,208 | skyrenderer.utils.time_measurement | INFO: Setup time: 64 ms 2025-08-07 10:00:04,932 | skyrenderer.utils.time_measurement | INFO: Context update time: 724 ms 2025-08-07 10:00:20,866 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:00:20,867 | skyrenderer.utils.time_measurement | INFO: Render time: 15.93 seconds 2025-08-07 10:00:21,001 | skyrenderer.utils.time_measurement | INFO: Setup time: 63 ms 2025-08-07 10:00:21,718 | skyrenderer.utils.time_measurement | INFO: Context update time: 717 ms 2025-08-07 10:00:33,997 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:00:33,998 | skyrenderer.utils.time_measurement | INFO: Render time: 12.28 seconds 2025-08-07 10:00:34,095 | skyrenderer.utils.time_measurement | INFO: Setup time: 71 ms 2025-08-07 10:00:34,855 | skyrenderer.utils.time_measurement | INFO: Context update time: 760 ms 2025-08-07 10:00:46,600 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:00:46,601 | skyrenderer.utils.time_measurement | INFO: Render time: 11.74 seconds 2025-08-07 10:00:46,700 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:00:47,404 | skyrenderer.utils.time_measurement | INFO: Context update time: 704 ms 2025-08-07 10:00:59,221 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:00:59,222 | skyrenderer.utils.time_measurement | INFO: Render time: 11.82 seconds 2025-08-07 10:00:59,322 | skyrenderer.utils.time_measurement | INFO: Setup time: 68 ms 2025-08-07 10:01:00,080 | skyrenderer.utils.time_measurement | INFO: Context update time: 757 ms 2025-08-07 10:01:12,030 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:01:12,031 | skyrenderer.utils.time_measurement | INFO: Render time: 11.95 seconds
Metallic and roughness
renders = {}
PBRShader.update_default_parameter("base_color", scene_composer.SKY_ACCENT_COLOUR)
PBRShader.update_default_parameter("roughness", 0.01)
renders["roughness=0.01"] = scene_composer.get_render()
PBRShader.update_default_parameter("roughness", 0.5)
renders["roughness=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("roughness", 1.0)
renders["roughness=1.0"] = scene_composer.get_render()
PBRShader.update_default_parameter("roughness", 0.0)
PBRShader.update_default_parameter("metallic", 0.0)
renders["roughness=0,metallic=0.0"] = scene_composer.get_render()
PBRShader.update_default_parameter("metallic", 0.5)
renders["roughness=0,metallic=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("metallic", 1)
renders["roughness=0,metallic=1"] = scene_composer.get_render()
PBRShader.update_default_parameter("metallic", 0)
scene_composer.visualize_grid_desc(renders, shape=(1000, 1500), n_cols=3, thickness=2)
2025-08-07 10:01:12,388 | skyrenderer.utils.time_measurement | INFO: Setup time: 66 ms 2025-08-07 10:01:13,102 | skyrenderer.utils.time_measurement | INFO: Context update time: 712 ms 2025-08-07 10:01:23,883 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:01:23,884 | skyrenderer.utils.time_measurement | INFO: Render time: 10.78 seconds 2025-08-07 10:01:23,955 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:01:24,653 | skyrenderer.utils.time_measurement | INFO: Context update time: 697 ms 2025-08-07 10:01:36,290 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:01:36,290 | skyrenderer.utils.time_measurement | INFO: Render time: 11.64 seconds 2025-08-07 10:01:36,362 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:01:37,065 | skyrenderer.utils.time_measurement | INFO: Context update time: 701 ms 2025-08-07 10:01:48,691 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:01:48,691 | skyrenderer.utils.time_measurement | INFO: Render time: 11.63 seconds 2025-08-07 10:01:48,766 | skyrenderer.utils.time_measurement | INFO: Setup time: 62 ms 2025-08-07 10:01:49,457 | skyrenderer.utils.time_measurement | INFO: Context update time: 690 ms 2025-08-07 10:02:00,184 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:02:00,185 | skyrenderer.utils.time_measurement | INFO: Render time: 10.73 seconds 2025-08-07 10:02:00,256 | skyrenderer.utils.time_measurement | INFO: Setup time: 57 ms 2025-08-07 10:02:00,954 | skyrenderer.utils.time_measurement | INFO: Context update time: 697 ms 2025-08-07 10:02:12,921 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:02:12,922 | skyrenderer.utils.time_measurement | INFO: Render time: 11.97 seconds 2025-08-07 10:02:13,002 | skyrenderer.utils.time_measurement | INFO: Setup time: 62 ms 2025-08-07 10:02:13,697 | skyrenderer.utils.time_measurement | INFO: Context update time: 695 ms 2025-08-07 10:02:24,444 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:02:24,445 | skyrenderer.utils.time_measurement | INFO: Render time: 10.75 seconds
Clearcoat parameters
In SkyRenderer's PBR shader there is a clearcoat (thin outer layer) behavior modelled. It is disabled by default,
but can be enabled at any time.
renders = {}
PBRShader.update_default_parameter("base_color", (1, 0, 0))
PBRShader.update_default_parameter("roughness", 1)
PBRShader.update_default_parameter("metallic", 1)
PBRShader.update_default_parameter("clearcoat_roughness", 1)
renders["no clearcoat"] = scene_composer.get_render()
PBRShader.update_default_parameter("clearcoat_factor", 0.5)
renders["clearcoat_factor=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("clearcoat_factor", 1)
renders["clearcoat_factor=1"] = scene_composer.get_render()
PBRShader.update_default_parameter("clearcoat_roughness", 0.0)
renders["clearcoat_factor=1,roughness=0"] = scene_composer.get_render()
PBRShader.update_default_parameter("clearcoat_roughness", 0.5)
renders["clearcoat_factor=1,roughness=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("clearcoat_roughness", 1)
renders["clearcoat_factor=1,roughness=1"] = scene_composer.get_render()
scene_composer.visualize_grid_desc(renders, shape=(1000, 1500), n_cols=3, thickness=2)
PBRShader.update_default_parameter("clearcoat_factor", 0.0)
2025-08-07 10:02:24,765 | skyrenderer.utils.time_measurement | INFO: Setup time: 61 ms 2025-08-07 10:02:25,461 | skyrenderer.utils.time_measurement | INFO: Context update time: 696 ms 2025-08-07 10:02:36,436 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:02:36,437 | skyrenderer.utils.time_measurement | INFO: Render time: 10.98 seconds 2025-08-07 10:02:36,515 | skyrenderer.utils.time_measurement | INFO: Setup time: 65 ms 2025-08-07 10:02:37,212 | skyrenderer.utils.time_measurement | INFO: Context update time: 697 ms 2025-08-07 10:02:48,034 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:02:48,035 | skyrenderer.utils.time_measurement | INFO: Render time: 10.82 seconds 2025-08-07 10:02:48,109 | skyrenderer.utils.time_measurement | INFO: Setup time: 61 ms 2025-08-07 10:02:48,806 | skyrenderer.utils.time_measurement | INFO: Context update time: 697 ms 2025-08-07 10:02:58,756 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:02:58,757 | skyrenderer.utils.time_measurement | INFO: Render time: 9.95 seconds 2025-08-07 10:02:58,829 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:02:59,552 | skyrenderer.utils.time_measurement | INFO: Context update time: 723 ms 2025-08-07 10:03:09,882 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:03:09,883 | skyrenderer.utils.time_measurement | INFO: Render time: 10.33 seconds 2025-08-07 10:03:09,954 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:03:10,666 | skyrenderer.utils.time_measurement | INFO: Context update time: 712 ms 2025-08-07 10:03:20,844 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:03:20,845 | skyrenderer.utils.time_measurement | INFO: Render time: 10.18 seconds 2025-08-07 10:03:20,927 | skyrenderer.utils.time_measurement | INFO: Setup time: 63 ms 2025-08-07 10:03:21,651 | skyrenderer.utils.time_measurement | INFO: Context update time: 724 ms 2025-08-07 10:03:31,605 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:03:31,606 | skyrenderer.utils.time_measurement | INFO: Render time: 9.95 seconds
Fresnel parameters
In Physically-Based Rendering (PBR) shading, Fresnel refers to the way light reflects off a surface at different
angles, particularly how more light is reflected at grazing angles. This effect is modeled using the Fresnel
equation, which describes how reflection intensity changes based on the incident angle and the material's
refractive index. In PBR, the Fresnel term is often incorporated into specular highlights and is crucial for
realistic materials, like metals and dielectrics, as it helps achieve more accurate reflections by blending
between direct reflection at normal incidence and sharper, more intense reflection at glancing angles.
renders = {}
PBRShader.update_default_parameter("base_color", (1, 1, 1))
PBRShader.update_default_parameter("metallic", 0)
PBRShader.update_default_parameter("roughness", 0)
PBRShader.update_default_parameter("ior", 1)
renders["ior=1"] = scene_composer.get_render()
PBRShader.update_default_parameter("ior", 1.5)
renders["ior=1.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("ior", 2)
renders["ior=2"] = scene_composer.get_render()
PBRShader.update_default_parameter("ior", 1.45)
PBRShader.update_default_parameter("fresnel_factor", 0)
renders["fresnel_factor=0"] = scene_composer.get_render()
PBRShader.update_default_parameter("fresnel_factor", 0.5)
renders["fresnel_factor=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("fresnel_factor", 1.0)
renders["fresnel_factor=1"] = scene_composer.get_render()
scene_composer.visualize_grid_desc(renders, shape=(1000, 1500), n_cols=3, thickness=2)
2025-08-07 10:03:31,914 | skyrenderer.utils.time_measurement | INFO: Setup time: 70 ms 2025-08-07 10:03:32,611 | skyrenderer.utils.time_measurement | INFO: Context update time: 696 ms 2025-08-07 10:03:44,320 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:03:44,321 | skyrenderer.utils.time_measurement | INFO: Render time: 11.71 seconds 2025-08-07 10:03:44,398 | skyrenderer.utils.time_measurement | INFO: Setup time: 61 ms 2025-08-07 10:03:45,094 | skyrenderer.utils.time_measurement | INFO: Context update time: 696 ms 2025-08-07 10:03:56,818 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:03:56,818 | skyrenderer.utils.time_measurement | INFO: Render time: 11.72 seconds 2025-08-07 10:03:57,021 | skyrenderer.utils.time_measurement | INFO: Setup time: 187 ms 2025-08-07 10:03:57,746 | skyrenderer.utils.time_measurement | INFO: Context update time: 724 ms 2025-08-07 10:04:08,624 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:04:08,625 | skyrenderer.utils.time_measurement | INFO: Render time: 10.88 seconds 2025-08-07 10:04:08,725 | skyrenderer.utils.time_measurement | INFO: Setup time: 73 ms 2025-08-07 10:04:09,535 | skyrenderer.utils.time_measurement | INFO: Context update time: 809 ms 2025-08-07 10:04:20,122 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:04:20,123 | skyrenderer.utils.time_measurement | INFO: Render time: 10.59 seconds 2025-08-07 10:04:20,200 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms 2025-08-07 10:04:20,891 | skyrenderer.utils.time_measurement | INFO: Context update time: 690 ms 2025-08-07 10:04:31,558 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:04:31,559 | skyrenderer.utils.time_measurement | INFO: Render time: 10.67 seconds 2025-08-07 10:04:31,639 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:04:32,335 | skyrenderer.utils.time_measurement | INFO: Context update time: 695 ms 2025-08-07 10:04:43,105 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:04:43,106 | skyrenderer.utils.time_measurement | INFO: Render time: 10.77 seconds
Perlin noise
Perlin noise is a gradient noise that can be applied in various ways to create procedural perturbations
of textures or geometries (see Wikipedia).
SkyRenderer PBR shader has a few built-in ripples based on improved Perlin noise that can be applied to normals.
There are three types of built-in noises:
perlin_noise_type=1
Smooth,perlin_noise_type=2
Marbled,perlin_noise_type=3
Crinkled.
Also, you can control frequency of a noise with perlin_noise_frequency parameter.
renders = {}
PBRShader.update_default_parameter("base_color", scene_composer.SKY_ACCENT_COLOUR)
PBRShader.update_default_parameter("perlin_noise_type", 1)
renders["perlin_noise_type=1"] = scene_composer.get_render()
PBRShader.update_default_parameter("perlin_noise_type", 2)
renders["perlin_noise_type=2"] = scene_composer.get_render()
PBRShader.update_default_parameter("perlin_noise_type", 3)
renders["perlin_noise_type=3"] = scene_composer.get_render()
PBRShader.update_default_parameter("perlin_noise_frequency", 5)
renders["perlin_noise_frequency=5"] = scene_composer.get_render()
PBRShader.update_default_parameter("perlin_noise_frequency", 10)
renders["perlin_noise_frequency=10"] = scene_composer.get_render()
PBRShader.update_default_parameter("perlin_noise_frequency", 20)
renders["perlin_noise_frequency=20"] = scene_composer.get_render()
scene_composer.visualize_grid_desc(renders, shape=(1000, 1500), n_cols=3, thickness=2)
2025-08-07 10:04:43,394 | skyrenderer.utils.time_measurement | INFO: Setup time: 60 ms 2025-08-07 10:04:44,093 | skyrenderer.utils.time_measurement | INFO: Context update time: 698 ms 2025-08-07 10:04:56,715 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:04:56,716 | skyrenderer.utils.time_measurement | INFO: Render time: 12.62 seconds 2025-08-07 10:04:56,788 | skyrenderer.utils.time_measurement | INFO: Setup time: 57 ms 2025-08-07 10:04:57,492 | skyrenderer.utils.time_measurement | INFO: Context update time: 703 ms 2025-08-07 10:05:33,935 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:05:33,936 | skyrenderer.utils.time_measurement | INFO: Render time: 36.44 seconds 2025-08-07 10:05:34,006 | skyrenderer.utils.time_measurement | INFO: Setup time: 57 ms 2025-08-07 10:05:34,703 | skyrenderer.utils.time_measurement | INFO: Context update time: 696 ms 2025-08-07 10:06:13,000 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:06:13,001 | skyrenderer.utils.time_measurement | INFO: Render time: 38.30 seconds 2025-08-07 10:06:13,070 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms 2025-08-07 10:06:13,761 | skyrenderer.utils.time_measurement | INFO: Context update time: 690 ms 2025-08-07 10:06:50,333 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:06:50,333 | skyrenderer.utils.time_measurement | INFO: Render time: 36.57 seconds 2025-08-07 10:06:50,404 | skyrenderer.utils.time_measurement | INFO: Setup time: 58 ms 2025-08-07 10:06:51,102 | skyrenderer.utils.time_measurement | INFO: Context update time: 697 ms 2025-08-07 10:07:27,383 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:07:27,384 | skyrenderer.utils.time_measurement | INFO: Render time: 36.28 seconds 2025-08-07 10:07:27,454 | skyrenderer.utils.time_measurement | INFO: Setup time: 57 ms 2025-08-07 10:07:28,149 | skyrenderer.utils.time_measurement | INFO: Context update time: 694 ms 2025-08-07 10:08:04,287 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:08:04,287 | skyrenderer.utils.time_measurement | INFO: Render time: 36.14 seconds
PBRShader - control parameters
These parameters are used to control PBRShader interaction with other parts of SkyRenderer's system. Among many,
there are a few worth mentioning (often used in SkyRenderer's use cases):
- tex_scale - scale of a texture
- use_reflections - disabling that parameter will stop ray generation after first hit
from skyrenderer.basic_types.provider import SubstanceTextureProvider
from skyrenderer.basic_types.item_component import Background
from skyrenderer.basic_types.procedure import EnvMapMiss
from skyrenderer.basic_types.provider import HdrTextureProvider
for shaderball_part in scene_composer.SHADERBALL_PARTS:
scene_composer.renderer_context.instancers[shaderball_part].modify_material_definition(
texture_provider=SubstanceTextureProvider(scene_composer.renderer_context, "scifi_center_split_plate_border_quincunx_vent_metal")
)
scene_composer.renderer_context.define_env(
Background(
scene_composer.renderer_context,
EnvMapMiss(scene_composer.renderer_context, "env_miss"),
HdrTextureProvider(scene_composer.renderer_context, "SELECTED_HDR/industrial_pipe_and_valve"),
)
)
scene_composer.renderer_context.remove_subtree("plane_GEO")
renders = {}
PBRShader.update_default_parameter("tex_scale", (1, 1))
renders["tex_scale=1"] = scene_composer.get_render()
PBRShader.update_default_parameter("tex_scale", (6, 6))
renders["tex_scale=6"] = scene_composer.get_render()
PBRShader.update_default_parameter("use_reflections", True)
renders["use_reflections=True"] = scene_composer.get_render()
PBRShader.update_default_parameter("use_reflections", False)
renders["use_reflections=False"] = scene_composer.get_render()
scene_composer.visualize_grid_desc(renders, shape=(1000, 1000), n_cols=2, thickness=2)
2025-08-07 10:08:04,567 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose diffuse. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : diffuse_map 2025-08-07 10:08:04,568 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose glossiness. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : glossiness_map 2025-08-07 10:08:04,568 | skyrenderer.basic_types.provider.iprovider | WARNING: Provider for this config has been already initialized! There should be just one Provider created per unit source, consider fixing the scene. Config: scifi_center_split_plate_border_quincunx_vent_metal 2025-08-07 10:08:04,583 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose diffuse. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : diffuse_map 2025-08-07 10:08:04,584 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose glossiness. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : glossiness_map 2025-08-07 10:08:04,584 | skyrenderer.basic_types.provider.iprovider | WARNING: Provider for this config has been already initialized! There should be just one Provider created per unit source, consider fixing the scene. Config: scifi_center_split_plate_border_quincunx_vent_metal 2025-08-07 10:08:04,599 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose diffuse. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : diffuse_map 2025-08-07 10:08:04,600 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose glossiness. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : glossiness_map 2025-08-07 10:08:04,600 | skyrenderer.basic_types.provider.iprovider | WARNING: Provider for this config has been already initialized! There should be just one Provider created per unit source, consider fixing the scene. Config: scifi_center_split_plate_border_quincunx_vent_metal 2025-08-07 10:08:04,616 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose diffuse. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : diffuse_map 2025-08-07 10:08:04,617 | skyrenderer.basic_types.provider.unit_providers.substance_texture_provider | WARNING: Unable to map purpose glossiness. Map will be parsed with legacy system. Purpose not present in ['ambientocclusion', 'basecolor', 'coatweight', 'coatroughness', 'emissive', 'height', 'metallic', 'normal', 'opacity', 'refractioncolor', 'roughness', 'specular', 'scattering', 'scatteringcolor', 'visibility', 'texturesemanticmap', 'any', 'mask'] See: Texture and substance convention for more details. Remember, purpose mapping is case insensitive. Parsed purpose : glossiness_map 2025-08-07 10:08:04,619 | skyrenderer.basic_types.provider.unit_providers.hdr_texture_provider | WARNING: Parameter light_adapt provided in HDR json is not supported 2025-08-07 10:08:04,619 | skyrenderer.basic_types.provider.unit_providers.hdr_texture_provider | WARNING: Parameter color_adapt provided in HDR json is not supported 2025-08-07 10:08:04,620 | skyrenderer.scene.renderer_context | WARNING: Setting background definition after setup. 2025-08-07 10:08:04,620 | skyrenderer.scene.renderer_context | WARNING: Setting light after setup. Origin refers to last scene tree set up. Lights are stored in dict - change is visible immediately; Wrong parameter provider possible 2025-08-07 10:08:04,621 | skyrenderer.scene.renderer_context | WARNING: You are removing subtree after context setup. No changes would be done in current scene. 2025-08-07 10:08:04,685 | skyrenderer.utils.time_measurement | INFO: Setup time: 64 ms 2025-08-07 10:08:08,555 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.87 seconds 2025-08-07 10:08:45,861 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:08:45,861 | skyrenderer.utils.time_measurement | INFO: Render time: 37.31 seconds 2025-08-07 10:08:46,057 | skyrenderer.utils.time_measurement | INFO: Setup time: 183 ms 2025-08-07 10:08:49,480 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.42 seconds 2025-08-07 10:09:28,079 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:09:28,080 | skyrenderer.utils.time_measurement | INFO: Render time: 38.60 seconds 2025-08-07 10:09:28,270 | skyrenderer.utils.time_measurement | INFO: Setup time: 177 ms 2025-08-07 10:09:31,694 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.42 seconds 2025-08-07 10:10:08,662 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:10:08,662 | skyrenderer.utils.time_measurement | INFO: Render time: 36.97 seconds 2025-08-07 10:10:08,864 | skyrenderer.utils.time_measurement | INFO: Setup time: 180 ms 2025-08-07 10:10:12,315 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.45 seconds 2025-08-07 10:10:21,063 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-08-07 10:10:21,063 | skyrenderer.utils.time_measurement | INFO: Render time: 8.75 seconds
Summary
In this section you have learnt:
- PBRShader has many parameters that affect shader appearance.