class RED::SoftFrameBufferSample

Storage of all frame buffer informations for a pixel sample rendered in software. More...

#include <REDSoftShaderCallback.h>

Public functions:

SoftFrameBufferSample ( )
~SoftFrameBufferSample ( )

Public variables:

BSDF_REQUEST_in_bsdf_request
double_in_bsdf_rnd [2]
double_in_out_bsdf_dir [4]
BSDF_EVENT_in_out_bsdf_event
double_in_out_bsdf_ior
double_out_bsdf_emitted [4]
double_out_bsdf_pdf
double_out_bsdf_specular_refl_dir [4]
double_out_bsdf_specular_refl_weight [4]
double_out_bsdf_specular_tran_dir [4]
double_out_bsdf_specular_tran_weight [4]
double_out_bsdf_weight [4]
double_out_color [4]
double_out_color_diffuse [4]
double_out_color_direct [4]
double_out_color_indirect [4]
double_out_color_reflect [4]
double_out_color_refract [4]
double_out_depth
double_out_ior
bool_out_wcs_normal

Detailed description:

Storage of all frame buffer informations for a pixel sample rendered in software.

This structure is an I / O data structure that is used by the RED::SOFT_SHADER_CALLBACK software shading callback to read input pixel informations and to produce results for the final image frame buffer.

Functions documentation

Default constructor.

Destructor.

Variables documentation

Type of request made to the BSDF.

Random numbers used by the BSDF shader to make statistical decisions.

BSDF unit direction: can be used in input (to get its PDF through BSDF_REQUEST_PDF) or in output as a result of a BSDF_REQUEST_SAMPLE request.

Sampling event resulting from a BSDF_REQUEST_SAMPLE request.

BSDF IOR.

BSDF: emitted light component.

Pdf of the provided or sampled direction.

Specular reflection direction returned by the BSDF on a BSDF_REQUEST_SAMPLE request.

Weight of the BSDF for the specular reflection.

Specular transmission direction returned by the BSDF on a BSDF_REQUEST_SAMPLE request.

Weight of the BSDF for the specular transmission.

Weight of the BSDF in the provided or sampled direction.

Output shader color. This is the color that is produced by the software shader callback. This color will be used as the SRC_COLOR in the equation defined by the last RED::StateShader that was read before the RED::RenderShader that called the callback.

Output shader diffuse color. This color is filled by lighting shaders. It's the result of the evaluation of the surface diffuse component.

Output shader direct color. This color is filled by lighting shaders. It's the result of the evaluation of the direct lighting term at the surface.

Output shader indirect color. This color is filled by ambient lighting shaders. It's the result of the evaluation of the indirect lighting term at the surface.

Output shader reflection color. This color is filled by reflection shaders so that one can isolate the contribution of reflections to an image. That color is initialized with DBL_MAX values for each component. Writing any other value to it indicates that a reflection color has been written.

Output shader refraction color. This color is filled by refraction propagation so that one can isolate the contribution of refractions to an image. That color is initialized with DBL_MAX values for each component. Writing any other value to it indicates that a reflection color has been written.

Output shader depth. This is the depth value that is produced by the software shader callback. By default, it's set to DBL_MAX, indicating that the shader does not produce any depth buffer value and that the produced depth is the depth of the geometrical primitive intersected with the incoming ray. If set to another value, it'll override the geometrical depth resulting of the primitive.
Please note that '_out_depth' is ignored for all reflection and refraction rays.

Output shader index of refraction (IOR). This information is supplied by global illumination refraction shaders (like RED::RayGIRefractionColorShader for example) to support refraction caustics. Other shaders let it set to 1.0.

This output flag indicates that a world space (WCS) normal direction has been calculated. This is used to bypass normal map calculations that occur during a call to RED::ISoftRayContext::SampleNormalMap. Whenever a composite image is connected as a normal map input, it can set this flag to true to indicate that a WCS normal has been calculated in '_out_color' rather than a tangent space (TCS) value that is turned then later on into a WCS normal using the ( tangent, binormal, normal ) local basis at the triangle. Note that this feature has no equivalence on the GPU where a normal map composite must return TCS directions encoded as colors.
This flag must enforce the indications provided by RED::ISoftRayContext::IsNoBumpNormalOnly to decide on whether to add a bump mapping contribution to the result or not.