neuray API Programmer's Manual

mi::neuraylib::IBaker Class Reference

[Miscellaneous MDL-related Interfaces]

Description

Allows to bake a varying or uniform expression of a compiled material into a texture or constant.

Public Member Functions

virtual Sint32 bake_constant( IData* constant, Uint32 samples = 1) const =0
Bakes the expression as constant. More...
virtual Sint32 bake_texture( ICanvas* texture, Uint32 samples = 1) const =0
Bakes the expression as texture. More...
virtual Sint32 bake_texture( ICanvas* texture, Float32 min_u, Float32 max_u, Float32 min_v, Float32 max_v, Uint32 samples = 1) const =0
Bakes the expression as texture. More...
virtual const char* get_pixel_type() const =0
Returns the pixel type that matches the expression to be baked best.
virtual bool  is_uniform() const =0
Indicates whether the expression to be baked is uniform or varying. More...

Member Functions

virtual Sint32 mi::​neuraylib::​IBaker::bake_constant( IData* constant, Uint32 samples = 1) const [pure virtual]

Bakes the expression as constant.

Parameters

constant
An instance of mi::IData of suitable type such that the baked constant can be stored in this argument. For pixel types "Float32" and "Float32<3>" the type name of this argument needs to match the pixel type. For pixel type "Rgb_fp" this argument needs to have the type name "Color".
samples
The (total) number of samples.

Returns

  • 0: Success.
  • -1: Invalid parameters (NULL pointer).
  • -2: The transaction that is bound to this baker is no longer open.
  • -3: The execution of the MDL code failed.
  • -4: The type of constant does not match the pixel type corresponding to the expression to be baked.

virtual Sint32 mi::​neuraylib::​IBaker::bake_texture( ICanvas* texture, Uint32 samples = 1) const [pure virtual]

Bakes the expression as texture.

Parameters

texture
The baked texture will be stored in this canvas. If the pixel type of canvas does not match the pixel type of the expression to be baked (as indicated by get_pixel_type()), then the pixel data is converted as described in mi::neuraylib::IImage_api::convert().
samples
The number of samples (per pixel).

Returns

  • 0: Success.
  • -1: Invalid parameters (NULL pointer).
  • -2: The transaction that is bound to this baker is no longer open.
  • -3: The execution of the MDL code failed.

virtual Sint32 mi::​neuraylib::​IBaker::bake_texture( ICanvas* texture, Float32 min_u, Float32 max_u, Float32 min_v, Float32 max_v, Uint32 samples = 1) const [pure virtual]

Bakes the expression as texture.

Parameters

texture
The baked texture will be stored in this canvas. If the pixel type of canvas does not match the pixel type of the expression to be baked (as indicated by get_pixel_type()), then the pixel data is converted as described in mi::neuraylib::IImage_api::convert().
min_u
The lower value of the U range used for baking.
max_u
The higher value of the U range used for baking.
min_v
The lower value of the V range used for baking.
max_v
The higher value of the V range used for baking.
samples
The number of samples (per pixel).

Returns

  • 0: Success.
  • -1: Invalid parameters (NULL pointer).
  • -2: The transaction that is bound to this baker is no longer open.
  • -3: The execution of the MDL code failed.

virtual const char* mi::​neuraylib::​IBaker::get_pixel_type() const [pure virtual]

Returns the pixel type that matches the expression to be baked best.

virtual bool mi::​neuraylib::​IBaker::is_uniform() const [pure virtual]

Indicates whether the expression to be baked is uniform or varying. Typically, varying expressions are baked into textures, and uniform expressions into constant. However, it is also possible to do it the other way round.