class RED::ISoftShaderContext

Shader evaluation context. Contains shader evaluation parameters.

#include <REDISoftShaderContext.h>

Inherits: IREDObject.

Public functions:

virtual doubleGetGlossyAngle ( ) const = 0
virtual doubleGetGlossyAngleAniso ( ) const = 0
virtual intGetGlossySamplesCount ( ) const = 0
virtual voidGetMatrixLocal ( RED::Matrix & ioMatrix, int iBindPos, const RED::ISoftRayContext & iRayContext, const RED::ISoftRenderingContext & iRenderContext ) const = 0
virtual voidGetProgramLocal ( double oParameter[4], int iBindPos, const RED::ISoftRayContext & iRayContext, const RED::ISoftRenderingContext & iRenderContext ) const = 0
virtual RenderCode &GetRenderCode ( ) = 0
virtual const RenderCode &GetRenderCode ( ) const = 0
virtual const int *GetStateVector ( ) const = 0
virtual RED::Object *GetTexture ( int iBindPos, const RED::ISoftRayContext & iRayContext, const RED::ISoftRenderingContext & iRenderContext ) const = 0
virtual voidMatrixLocalMultiply4 ( double oVector[4], int iBindPos, double iVector[4], const RED::ISoftRayContext & iRayContext, const RED::ISoftRenderingContext & iRenderContext ) const = 0

Public static functions:

static RED::CIDGetClassID ( )

Functions documentation

public virtual double RED::ISoftShaderContext::GetGlossyAngle() const = 0

Returns:

the glossiness angle.
public virtual double RED::ISoftShaderContext::GetGlossyAngleAniso() const = 0

Returns:

the anisotropic glossiness angle.

Returns:

The number of glossiness samples to fire.
public virtual void RED::ISoftShaderContext::GetMatrixLocal(RED::Matrix &ioMatrix,
intiBindPos,
const RED::ISoftRayContext &iRayContext,
const RED::ISoftRenderingContext &iRenderContext
)const = 0

Gets a matrix parameter streamed as 4 program locals.

Parameters:

ioMatrix:Receive the matrix components.
iBindPos:The matrix binding position (first row out of 4).
iRayContext:The actual ray context.
iRenderContext:The actual rendering context.
public virtual void RED::ISoftShaderContext::GetProgramLocal(doubleoParameter[4],
intiBindPos,
const RED::ISoftRayContext &iRayContext,
const RED::ISoftRenderingContext &iRenderContext
)const = 0

Gets a program parameter.

Parameters:

oParameter:Reference to the returned program local value.
iBindPos:Binding position of the parameter.
iRayContext:The actual ray context.
iRenderContext:The actual rendering context.

Gets the shader binding specification.

Returns:

The address of the RED::RenderCode to use for this shader.
public virtual const RenderCode & RED::ISoftShaderContext::GetRenderCode() const = 0
public virtual const int * RED::ISoftShaderContext::GetStateVector() const = 0

Gets the state vector.

The state vector is unused if we are used for a render shader.

Returns:

The statevector in this shader context.
public virtual RED::Object * RED::ISoftShaderContext::GetTexture(intiBindPos,
const RED::ISoftRayContext &iRayContext,
const RED::ISoftRenderingContext &iRenderContext
)const = 0

Gets a shader texture.

Parameters:

iBindPos:Binding position of the texture.
iRayContext:The actual ray context.
iRenderContext:The actual rendering context.

Returns:

The texture address.
public virtual void RED::ISoftShaderContext::MatrixLocalMultiply4(doubleoVector[4],
intiBindPos,
doubleiVector[4],
const RED::ISoftRayContext &iRayContext,
const RED::ISoftRenderingContext &iRenderContext
)const = 0

Homogeneous product of a vector by a local matrix.

Parameters:

oVector:Resulting transformed vector (can be the same as 'iVector').
iBindPos:Binding position of the first matrix vector. If 'iBindPos' is negative, 'oVector' is returned equal to 'iVector'.
iVector:Input vector.
iRayContext:The actual ray context.
iRenderContext:The actual rendering context.