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.