DefaultCustomComponent< ParameterType, ResultType,
ShaderHelper > Class Template Reference
[Custom
Passes]
#include
<adskComponent.h>
List of
all members.
Detailed Description
template<typename ParameterType, typename ResultType,
typename ShaderHelper>
class DefaultCustomComponent< ParameterType, ResultType,
ShaderHelper >
Custom component.
This component is for computing custom results outside the
normal set of results for surface shaders. It is called at multiple
points in the light loop to allow for one or many custom results to
be determined.
- Template Parameters:
-
|
ParameterType |
The structure used in the shader declaration to represent the
shader parameters. |
|
ResultType |
The result structure for the shader. |
|
ShaderHelper |
The class used in the shader declaration to represent the
shader helper. See ShaderHelper for details on the
required methods. |
|
Public Member Functions
|
|
DefaultCustomComponent (miState *pState, ParameterType
*pParameters) |
|
Component constructor.
|
|
~DefaultCustomComponent () |
|
Component destructor.
|
miBoolean |
shortCircuitShading (miState *pState, ParameterType
*pParameters, ResultType *pResult, miBoolean *pShaderResult) |
|
Called at beginning of shading call, can
stop shading.
|
void |
operator() (miState *pState, ParameterType *pParameters,
ShaderHelper
&pHelper, const miColor &pMaterialColor, const miVector
&pLightDirection, miScalar pDotNL) |
|
Function object operator. Called for each
sample on each light.
|
void |
adjustForSamples (ShaderHelper &pHelper, int
pNumberOfSamples) |
|
Adjust results for number of samples from a
light.
|
void |
adjustBeautyResult (miState *pState, ParameterType
*pParameters, ShaderHelper &pHelper, miColor
&pBeautyColor) |
|
Modify the color to add to custom beauty
passes.
|
void |
adjustFinalResult (miState *pState, ParameterType *pParameters,
ResultType *pResult, ShaderHelper &pHelper) |
|
Set custom results in result structure after
light loop.
|
Constructor & Destructor Documentation
template<typename ParameterType,
typename ResultType, typename ShaderHelper>
Component constructor.
- Parameters:
-
[in,out] |
pState |
The mental ray rendering state. |
[in] |
pParameters |
The shader parameters. |
Member Function Documentation
template<typename ParameterType,
typename ResultType, typename ShaderHelper>
miBoolean DefaultCustomComponent<
ParameterType, ResultType, ShaderHelper
>::shortCircuitShading |
( |
miState * |
pState, |
|
|
ParameterType * |
pParameters, |
|
|
ResultType * |
pResult, |
|
|
miBoolean * |
pShaderResult |
|
|
) |
|
|
[inline] |
Called at beginning of shading call, can stop shading.
This is called before anything else in the main shading
function, returning true will cause shading to stop and return the
result found in shaderResult. Use to prevent full light loop and
shading in special cases. Can fill in results in result.
- Parameters:
-
[in,out] |
pState |
The mental ray rendering state. |
[in] |
pParameters |
The shader parameters. |
[in,out] |
pResult |
The result structure for the shader |
[out] |
pShaderResult |
What the shader should return if short circuiting |
template<typename ParameterType,
typename ResultType, typename ShaderHelper>
void DefaultCustomComponent<
ParameterType, ResultType, ShaderHelper >::operator() |
( |
miState * |
pState, |
|
|
ParameterType * |
pParameters, |
|
|
ShaderHelper & |
pHelper, |
|
|
const miColor & |
pMaterialColor, |
|
|
const miVector & |
pLightDirection, |
|
|
miScalar |
pDotNL |
|
|
) |
|
|
[inline] |
Function object operator. Called for each sample on each
light.
- Parameters:
-
[in,out] |
pState |
The mental ray rendering state. |
[in,out] |
pParameters |
The shader parameters. |
[in,out] |
pHelper |
The shader helper for this shader. |
[in] |
pMaterialColor |
The raw material color of the surface, evaluated at the current
intersection |
[in] |
pLightDirection |
The direction of incoming light |
[in] |
pDotNL |
The dot product of the direction from the current intersection
point in the state to the light and the normal in the state |
template<typename ParameterType,
typename ResultType, typename ShaderHelper>
Adjust results for number of samples from a light.
Called after all samples have been accumulated to allow the
results to be adjusted based on the number of samples for the
current light.
- Parameters:
-
[in,out] |
pHelper |
The shader helper for this shader. |
[in] |
pNumberOfSamples |
The number of samples taken for the light |
template<typename ParameterType,
typename ResultType, typename ShaderHelper>
Modify the color to add to custom beauty passes.
- Parameters:
-
[in,out] |
pState |
The mental ray rendering state |
[in] |
pParameters |
The shader parameters |
[in,out] |
pHelper |
The shader helper for this shader. |
[in,out] |
pBeautyColor |
The standard beauty result to modify |
template<typename ParameterType,
typename ResultType, typename ShaderHelper>
Set custom results in result structure after light loop.
- Parameters:
-
[in,out] |
pState |
The mental ray rendering state |
[in] |
pParameters |
The shader parameters |
[in,out] |
pResult |
The result structure for the shader |
[in,out] |
pHelper |
The shader helper for this shader. |