ISoftShaderContext
Functions
SET_CID |
|
const int * | GetStateVector |
RenderCode & | GetRenderCode |
const RenderCode & | GetRenderCode |
void | GetProgramLocal |
void | GetMatrixLocal |
void | MatrixLocalMultiply4 |
Object * | GetTexture |
double | GetGlossyAngle |
double | GetGlossyAngleAniso |
int | GetGlossySamplesCount |
Detailed Description
-
class
ISoftShaderContext
: public RED::IREDObject Shader evaluation context. Contains shader evaluation parameters.
@related The CPU Programming Pipeline, Writing a Custom Software Rendering Shader, class RED::ISoftRenderingContext, class RED::ISoftRayContext
Public Functions
-
SET_CID
(CID_class_REDISoftShaderContext)
-
virtual const int *
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.
-
virtual RenderCode &
GetRenderCode
() = 0 Gets the shader binding specification.
Returns: The address of the RED::RenderCode to use for this shader.
-
virtual const RenderCode &
GetRenderCode
() const = 0
-
virtual void
GetProgramLocal
(double oParameter[4], int iBindPos, 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.
-
virtual void
GetMatrixLocal
(RED::Matrix &ioMatrix, int iBindPos, 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.
-
virtual void
MatrixLocalMultiply4
(double oVector[4], int iBindPos, double iVector[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.
-
virtual RED::Object *
GetTexture
(int iBindPos, 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.
-
virtual double
GetGlossyAngle
() const = 0 Returns: the glossiness angle.
-
virtual double
GetGlossyAngleAniso
() const = 0 Returns: the anisotropic glossiness angle.
-
virtual int
GetGlossySamplesCount
() const = 0 Returns: The number of glossiness samples to fire.
-