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
scene_composer = MaterialsSceneComposer(antialiasing_level=2048)
scene_composer.setup_scene()
pbr_shader = PBRShader(scene_composer.renderer_context)
material_definition = MaterialDefinition(shader=pbr_shader)
scene_composer.renderer_context.set_material_definition(
node_name="shaderball_GEO", material_definition=material_definition
)
2025-02-04 10:45:01,371 | skyrenderer.scene.renderer_context | INFO: Root paths:
- root path: /dli/skyenvironment/skyrenderer/skyrenderer
- assets path: /dli/mount/assets
- config path: /dli/skyenvironment/skyrenderer/skyrenderer/config
- gpu sources path: /dli/skyenvironment/skyrenderer/skyrenderer/optix_sources/sources
- cache path: /dli/mount/cache
- ptx cache path: compiled_ptx/ptx
- ocio path: ocio_configs/aces_1.2/config.ocio
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()
PBRShader.update_default_parameter("base_color", (1, 1, 1))
scene_composer.visualize_grid_desc(renders, shape=(1000, 1500), n_cols=3)
2025-02-04 10:45:01,814 | skyrenderer.utils.time_measurement | INFO: Setup time: 403 ms
2025-02-04 10:45:04,607 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.79 seconds
2025-02-04 10:45:28,903 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:45:28,906 | skyrenderer.utils.time_measurement | INFO: Render time: 24.30 seconds
2025-02-04 10:45:28,991 | skyrenderer.utils.time_measurement | INFO: Setup time: 59 ms
2025-02-04 10:45:32,340 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.35 seconds
2025-02-04 10:45:50,310 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:45:50,311 | skyrenderer.utils.time_measurement | INFO: Render time: 17.97 seconds
2025-02-04 10:45:51,304 | skyrenderer.utils.time_measurement | INFO: Setup time: 974 ms
2025-02-04 10:45:54,350 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.05 seconds
2025-02-04 10:46:12,467 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:46:12,468 | skyrenderer.utils.time_measurement | INFO: Render time: 18.12 seconds
2025-02-04 10:46:12,559 | skyrenderer.utils.time_measurement | INFO: Setup time: 73 ms
2025-02-04 10:46:15,440 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.88 seconds
2025-02-04 10:46:27,564 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:46:27,565 | skyrenderer.utils.time_measurement | INFO: Render time: 12.12 seconds
2025-02-04 10:46:27,632 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:46:30,505 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.87 seconds
2025-02-04 10:46:42,513 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:46:42,514 | skyrenderer.utils.time_measurement | INFO: Render time: 12.01 seconds
2025-02-04 10:46:42,584 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:46:45,357 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.77 seconds
2025-02-04 10:46:57,499 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:46:57,500 | skyrenderer.utils.time_measurement | INFO: Render time: 12.14 seconds
Metallic and roughness
renders = {}
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)
2025-02-04 10:46:58,039 | skyrenderer.utils.time_measurement | INFO: Setup time: 55 ms
2025-02-04 10:47:01,014 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.97 seconds
2025-02-04 10:47:12,473 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:47:12,474 | skyrenderer.utils.time_measurement | INFO: Render time: 11.46 seconds
2025-02-04 10:47:12,545 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:47:15,328 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.78 seconds
2025-02-04 10:47:26,824 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:47:26,825 | skyrenderer.utils.time_measurement | INFO: Render time: 11.50 seconds
2025-02-04 10:47:26,892 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:47:29,895 | skyrenderer.utils.time_measurement | INFO: Context update time: 3.00 seconds
2025-02-04 10:47:41,818 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:47:41,819 | skyrenderer.utils.time_measurement | INFO: Render time: 11.92 seconds
2025-02-04 10:47:41,898 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms
2025-02-04 10:47:44,659 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.76 seconds
2025-02-04 10:47:56,762 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:47:56,763 | skyrenderer.utils.time_measurement | INFO: Render time: 12.10 seconds
2025-02-04 10:47:56,830 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:47:59,782 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.95 seconds
2025-02-04 10:48:11,262 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:48:11,263 | skyrenderer.utils.time_measurement | INFO: Render time: 11.48 seconds
2025-02-04 10:48:11,331 | skyrenderer.utils.time_measurement | INFO: Setup time: 55 ms
2025-02-04 10:48:14,217 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.89 seconds
2025-02-04 10:48:21,613 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:48:21,614 | skyrenderer.utils.time_measurement | INFO: Render time: 7.40 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)
PBRShader.update_default_parameter("clearcoat_factor", 0.0)
PBRShader.update_default_parameter("base_color", (1, 1, 1))
2025-02-04 10:48:22,094 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms
2025-02-04 10:48:24,863 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.77 seconds
2025-02-04 10:48:35,803 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:48:35,804 | skyrenderer.utils.time_measurement | INFO: Render time: 10.94 seconds
2025-02-04 10:48:35,870 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:48:38,845 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.97 seconds
2025-02-04 10:48:49,666 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:48:49,667 | skyrenderer.utils.time_measurement | INFO: Render time: 10.82 seconds
2025-02-04 10:48:49,736 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms
2025-02-04 10:48:52,522 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.78 seconds
2025-02-04 10:49:04,047 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:49:04,048 | skyrenderer.utils.time_measurement | INFO: Render time: 11.53 seconds
2025-02-04 10:49:04,120 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:49:07,097 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.98 seconds
2025-02-04 10:49:18,111 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:49:18,112 | skyrenderer.utils.time_measurement | INFO: Render time: 11.01 seconds
2025-02-04 10:49:18,179 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:49:20,956 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.78 seconds
2025-02-04 10:49:32,615 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:49:32,615 | skyrenderer.utils.time_measurement | INFO: Render time: 11.66 seconds
2025-02-04 10:49:32,681 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:49:35,596 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.91 seconds
2025-02-04 10:49:46,538 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:49:46,539 | skyrenderer.utils.time_measurement | INFO: Render time: 10.94 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("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)
2025-02-04 10:49:47,028 | skyrenderer.utils.time_measurement | INFO: Setup time: 55 ms
2025-02-04 10:49:49,813 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.78 seconds
2025-02-04 10:50:01,196 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:50:01,197 | skyrenderer.utils.time_measurement | INFO: Render time: 11.38 seconds
2025-02-04 10:50:01,263 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:50:04,162 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.90 seconds
2025-02-04 10:50:16,322 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:50:16,323 | skyrenderer.utils.time_measurement | INFO: Render time: 12.16 seconds
2025-02-04 10:50:16,390 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:50:19,173 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.78 seconds
2025-02-04 10:50:30,626 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:50:30,628 | skyrenderer.utils.time_measurement | INFO: Render time: 11.45 seconds
2025-02-04 10:50:30,699 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:50:33,669 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.97 seconds
2025-02-04 10:50:45,700 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:50:45,701 | skyrenderer.utils.time_measurement | INFO: Render time: 12.03 seconds
2025-02-04 10:50:45,768 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:50:48,559 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.79 seconds
2025-02-04 10:51:00,683 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:51:00,684 | skyrenderer.utils.time_measurement | INFO: Render time: 12.12 seconds
2025-02-04 10:51:00,754 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:51:03,744 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.99 seconds
2025-02-04 10:51:15,137 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:51:15,138 | skyrenderer.utils.time_measurement | INFO: Render time: 11.39 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("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)
2025-02-04 10:51:15,599 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms
2025-02-04 10:51:18,420 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.82 seconds
2025-02-04 10:51:31,646 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:51:31,647 | skyrenderer.utils.time_measurement | INFO: Render time: 13.23 seconds
2025-02-04 10:51:31,713 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:51:34,518 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.80 seconds
2025-02-04 10:52:09,159 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:52:09,160 | skyrenderer.utils.time_measurement | INFO: Render time: 34.64 seconds
2025-02-04 10:52:09,232 | skyrenderer.utils.time_measurement | INFO: Setup time: 54 ms
2025-02-04 10:52:12,163 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.93 seconds
2025-02-04 10:52:46,471 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:52:46,472 | skyrenderer.utils.time_measurement | INFO: Render time: 34.31 seconds
2025-02-04 10:52:46,543 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:52:49,375 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.83 seconds
2025-02-04 10:53:24,859 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:53:24,860 | skyrenderer.utils.time_measurement | INFO: Render time: 35.48 seconds
2025-02-04 10:53:24,926 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:53:27,885 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.96 seconds
2025-02-04 10:54:02,339 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:54:02,340 | skyrenderer.utils.time_measurement | INFO: Render time: 34.45 seconds
2025-02-04 10:54:02,406 | skyrenderer.utils.time_measurement | INFO: Setup time: 53 ms
2025-02-04 10:54:05,198 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.79 seconds
2025-02-04 10:54:39,880 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:54:39,881 | skyrenderer.utils.time_measurement | INFO: Render time: 34.68 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 FileTextureProvider
from skyrenderer.basic_types.item_component import Background
from skyrenderer.basic_types.procedure import EnvMapMiss
from skyrenderer.basic_types.provider import HdrTextureProvider
scene_composer.renderer_context.instancers["shaderball_GEO"].modify_material_definition(
texture_provider=FileTextureProvider(scene_composer.renderer_context, "metal_red")
)
scene_composer.renderer_context.define_env(
Background(
scene_composer.renderer_context,
EnvMapMiss(scene_composer.renderer_context, "env_miss"),
HdrTextureProvider(scene_composer.renderer_context, "sunny_beach"),
)
)
renders = {}
PBRShader.update_default_parameter("tex_scale", (0.5, 0.5))
renders["tex_scale=0.5"] = scene_composer.get_render()
PBRShader.update_default_parameter("tex_scale", (3, 3))
renders["tex_scale=3"] = scene_composer.get_render()
PBRShader.update_default_parameter("tex_scale", (1, 1))
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)
2025-02-04 10:54:40,382 | skyrenderer.basic_types.provider.unit_providers.hdr_texture_provider | WARNING: Parameter light_adapt provided in HDR json is not supported
2025-02-04 10:54:40,382 | skyrenderer.basic_types.provider.unit_providers.hdr_texture_provider | WARNING: Parameter color_adapt provided in HDR json is not supported
2025-02-04 10:54:40,383 | skyrenderer.scene.renderer_context | WARNING: Setting background definition after setup.
2025-02-04 10:54:40,383 | 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-02-04 10:54:40,440 | skyrenderer.utils.time_measurement | INFO: Setup time: 56 ms
2025-02-04 10:54:40,442 | skyrenderer.basic_types.provider.unit_providers.hdr_texture_provider | INFO: Background HDR (/dli/mount/assets/renderer/background_hdrs/sunny_beach/spiaggia_di_mondello_8k.hdr) is being processed, this may take a while...
2025-02-04 10:54:50,298 | skyrenderer.utils.time_measurement | INFO: Context update time: 9.86 seconds
2025-02-04 10:55:24,357 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:55:24,358 | skyrenderer.utils.time_measurement | INFO: Render time: 34.06 seconds
2025-02-04 10:55:24,444 | skyrenderer.utils.time_measurement | INFO: Setup time: 74 ms
2025-02-04 10:55:29,362 | skyrenderer.utils.time_measurement | INFO: Context update time: 4.92 seconds
2025-02-04 10:56:03,215 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:56:03,216 | skyrenderer.utils.time_measurement | INFO: Render time: 33.85 seconds
2025-02-04 10:56:03,345 | skyrenderer.utils.time_measurement | INFO: Setup time: 108 ms
2025-02-04 10:56:08,436 | skyrenderer.utils.time_measurement | INFO: Context update time: 5.09 seconds
2025-02-04 10:56:42,764 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:56:42,765 | skyrenderer.utils.time_measurement | INFO: Render time: 34.33 seconds
2025-02-04 10:56:42,886 | skyrenderer.utils.time_measurement | INFO: Setup time: 108 ms
2025-02-04 10:56:47,913 | skyrenderer.utils.time_measurement | INFO: Context update time: 5.03 seconds
2025-02-04 10:56:54,956 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms
2025-02-04 10:56:54,956 | skyrenderer.utils.time_measurement | INFO: Render time: 7.04 seconds
Summary
In this section you have learnt:
- PBRShader has many parameters that affect shader appearance.