• Shader

Glass Shader

By: SKY ENGINE AI
scroll down ↓to find out moreglass-shader_1_resourcesTutorial

GlassShader

In SkyRenderer you can find multiple shaders that are prepared for simulating ray behavior on glass surfaces.
In this tutorial you will get familiar with GlassShader, which is the basic shader for surfaces made from glass.

Agenda:

  • GlassShader theory
  • GlassShader basic usage

Scene setup

Let's use custom scene composer to set up the scene.

from skyrenderer.cases.utils import MaterialsSceneComposer scene_composer = MaterialsSceneComposer() scene_composer.setup_scene(illuminance=10)
2025-01-31 10:22:07,518 | 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

GlassShader theory

GlassShader simulates the appearance of transparent, refractive materials like glass or water. It focuses on two
key effects: refraction and reflection. When light passes through glass, it bends due to changes in speed between
different mediums, defined by the material index of refraction (IOR). To enhance realism, in this model Fresnel
factor determine how light reflects at different viewing angles.

This model can be used for either one-sided geometries, double-sided thin geometries or geometries with
significant volume. To achieve realistic effects, it is important to correctly choose IOR parameter to each case,
e.g. IOR=1.0 for one-sided glass like windows.

GlassShader basic usage

Let's create a Material Definition using GlassShader and assign this material to the shaderball.
To assign the material we will use RendererContext's set_material_definition() method.
To find out how different parameters affects GlassShader appearance, check out SHADER_GlassShaderParameters
tutorial.

from skyrenderer.scene.scene_layout.layout_elements_definitions import MaterialDefinition from skyrenderer.basic_types.procedure.shader.basic_shaders.glass_shader import GlassShader glass_shader = GlassShader(scene_composer.renderer_context) material_definition = MaterialDefinition(shader=glass_shader) scene_composer.renderer_context.set_material_definition( node_name="shaderball_GEO", material_definition=material_definition ) scene_composer.visualize()
glass-shader_1_resourcesTutorial
2025-01-31 10:22:08,164 | skyrenderer.utils.time_measurement | INFO: Setup time: 600 ms 2025-01-31 10:22:10,995 | skyrenderer.utils.time_measurement | INFO: Context update time: 2.83 seconds 2025-01-31 10:22:16,429 | skyrenderer.utils.time_measurement | INFO: Key points calculation time: 0 ms 2025-01-31 10:22:16,430 | skyrenderer.utils.time_measurement | INFO: Render time: 5.43 seconds

Summary

In this section you have learnt:

  • GlassShader simulation focuses on two effects: reflection and refraction of the material.
  • GlassShader is used for variety of surfaces made from glass - glass bottles, windows etc.