• Intro

Providers

By: SKY ENGINE AI
scroll down ↓to find out more

Providers Introduction

Agenda

  • Providers
  • Unit Providers
  • Transform Providers
  • Parameter Providers
  • Multi Providers

Providers

Providers are classes in SkyRenderer that should be considered an interface for loading buffers. They hold
particular information specific to the type of Provider. Providers are connected with a Randomization system,
enabling controlling buffers with randomization strategies. We distinguish multiple types of Providers:

  • Unit Providers
  • Transform Providers
  • Parameter Providers
  • Multi Providers

Unit Providers

Unit Providers are the one that are interface to the assets like geometries or textures. One can use:
for geometries:

  • AlembicBufferProvider - animation storage for Sony's alembic (.abc) format from directory "alembics"
  • OBJBufferProvider - mesh stored in wavefront (.obj) format from directory "models"

for textures:

  • FileTextureProvider - texture file maps (.png, .jpg, .tiff) from directory "textures"
  • SubstanceTextureProvider - materials from substance maps (.sbsar) from directory "substances"
  • HDRTextureProvider - HDR textures (.hdr, .exr) from directory "background_hdrs"

Transform Providers

Transform Providers are responsible for steering transformations of bound objects like scale, rotation and
translation. We distinguish multiple types of Transform Providers, like CircleTransformProvider,
SphereTransformProvider and others enabling distribution of objects' transformations in a particular shapes or
boundaries.
They can be used with Randomization system allowing to use synchronization and randomization groups.
If already implemented Transform Providers are not enough, one can write their own custom Transform Providers.

Parameter Providers

Each procedure has their own Parameter Provider class, that passes values of procedure-specific parameters to the
procedure. This is a class responsible for connecting Procedure object with Randomization machine.

We have a few groups of procedures that use Parameter Providers:

  • Lights
  • Intersectors
  • Shaders
  • Raygens
  • Render Steps:
    • Postprocess
    • Camera Steps
    • Lens

To create a Parameter Provider we call procedure's .create_parameter_provider() method. In case we do not specify
some parameter values in Parameter Provider instance, default one are used. Available parameters and their default
values can be checked in procedure's documentation.

Multi Providers

In case one Provider type is not enough in some specific cases, user may use Multi Providers that allow to combine
different types of Providers and bind them to a single buffer. Let's say we have a particular object and sometimes
we want to load a buffer for this object from .abc file, and sometimes from .obj file - MultiProvider will allow
us to combine these two Providers and connect everything with Randomization system causing everything to work
smooth and handy.

Summary

In this section you have learnt:

  • Providers are an interface for loading and passing further assets.
  • Providers are bound with Randomization system in SkyRenderer.
  • We have Providers responsible for managing, assets, transformations and parameters of procedures.
  • It is possible to combine a few types of Providers via Multi Provider.