OGRE
1.12.13
Object-Oriented Graphics Rendering Engine
|
Real Time Shader System: enables GPU program generation during the runtime of a process. More...
Classes | |
class | Ogre::RTShader::AssignmentAtom |
shorthand for "lhs = rhs;" insted of using FFP_Assign(rhs, lhs) More... | |
struct | Ogre::RTShader::At |
shorthand for operator[] on preceding operand. e.g. myArray[p] More... | |
class | Ogre::RTShader::BinaryOpAtom |
shorthand for "dst = a OP b;" More... | |
class | Ogre::RTShader::CGProgramProcessor |
CG Language program processor class. More... | |
class | Ogre::RTShader::CGProgramWriter |
CG target language writer implementation. More... | |
class | Ogre::RTShader::ConstParameter< valueType > |
Helper template which is the base for our ConstParameters. More... | |
class | Ogre::RTShader::DualQuaternionSkinning |
Implement a sub render state which performs dual quaternion hardware skinning. More... | |
class | Ogre::RTShader::FFPColour |
Colour sub render state implementation of the Fixed Function Pipeline. More... | |
class | Ogre::RTShader::FFPColourFactory |
A factory that enables creation of FFPColour instances. More... | |
class | Ogre::RTShader::FFPFog |
Fog sub render state implementation of the Fixed Function Pipeline. More... | |
class | Ogre::RTShader::FFPFogFactory |
A factory that enables creation of FFPFog instances. More... | |
class | Ogre::RTShader::FFPLighting |
Lighting sub render state implementation of the Fixed Function Pipeline. More... | |
class | Ogre::RTShader::FFPLightingFactory |
A factory that enables creation of FFPLighting instances. More... | |
class | Ogre::RTShader::FFPRenderStateBuilder |
Fixed Function Pipeline render state builder. More... | |
class | Ogre::RTShader::FFPTexturing |
Texturing sub render state implementation of the Fixed Function Pipeline. More... | |
class | Ogre::RTShader::FFPTexturingFactory |
A factory that enables creation of FFPTexturing instances. More... | |
class | Ogre::RTShader::FFPTransform |
Transform sub render state implementation of the Fixed Function Pipeline. More... | |
class | Ogre::RTShader::FFPTransformFactory |
A factory that enables creation of FFPTransform instances. More... | |
class | Ogre::RTShader::Function |
A class that represents a shader based program function. More... | |
class | Ogre::RTShader::FunctionAtom |
A class that represents an atomic code section of shader based program function. More... | |
class | Ogre::RTShader::FunctionInvocation |
A class that represents function invocation code from shader based program function. More... | |
class | Ogre::RTShader::FunctionStageRef |
represents a FFPShaderStage, part of a Function More... | |
class | Ogre::RTShader::GBuffer |
Transform sub render state implementation of writing to GBuffers. More... | |
class | Ogre::RTShader::GBufferFactory |
A factory that enables creation of GBuffer instances. More... | |
class | Ogre::RTShader::GLSLESProgramProcessor |
GLSL ES Language program processor class. More... | |
class | Ogre::RTShader::GLSLESProgramWriter |
GLSL ES target language writer implementation. More... | |
class | Ogre::RTShader::GLSLProgramProcessor |
GLSL Language program processor class. More... | |
class | Ogre::RTShader::GLSLProgramWriter |
GLSL target language writer implementation. More... | |
class | Ogre::RTShader::HardwareSkinning |
Implement a sub render state which performs hardware skinning. More... | |
class | Ogre::RTShader::HardwareSkinningFactory |
A factory that enables creation of HardwareSkinning instances. More... | |
class | Ogre::RTShader::HardwareSkinningTechnique |
Implement a sub render state which performs hardware skinning. More... | |
class | Ogre::RTShader::HLSLProgramProcessor |
CG Language program processor class. More... | |
class | Ogre::RTShader::HLSLProgramWriter |
HLSL target language writer implementation. More... | |
struct | Ogre::RTShader::In |
struct | Ogre::RTShader::InOut |
class | Ogre::RTShader::IntegratedPSSM3 |
Integrated PSSM shadow receiver with 3 splits sub render state implementation. More... | |
class | Ogre::RTShader::IntegratedPSSM3Factory |
A factory that enables creation of IntegratedPSSM3 instances. More... | |
class | Ogre::RTShader::LinearSkinning |
Implement a sub render state which performs hardware skinning. More... | |
class | Ogre::RTShader::NormalMapLighting |
Normal Map Lighting extension sub render state implementation. More... | |
class | Ogre::RTShader::NormalMapLightingFactory |
A factory that enables creation of NormalMapLighting instances. More... | |
class | Ogre::RTShader::Operand |
A class that represents a function operand (its the combination of a parameter the in/out semantic and the used fields) More... | |
struct | Ogre::RTShader::Out |
class | Ogre::RTShader::Parameter |
A class that represents a shader based program parameter. More... | |
class | Ogre::RTShader::ParameterFactory |
Helper utility class that creates common parameters. More... | |
class | Ogre::RTShader::PerPixelLighting |
Per pixel Lighting extension sub render state implementation. More... | |
class | Ogre::RTShader::PerPixelLightingFactory |
A factory that enables creation of PerPixelLighting instances. More... | |
class | Ogre::RTShader::Program |
A class that represents a shader based program. More... | |
class | Ogre::RTShader::ProgramManager |
A singleton manager class that manages shader based programs. More... | |
class | Ogre::RTShader::ProgramProcessor |
A class that provides extra processing services on CPU based programs. More... | |
class | Ogre::RTShader::ProgramSet |
Container class for shader based programs. More... | |
class | Ogre::RTShader::ProgramWriter |
Base class interface for shader program writers. More... | |
class | Ogre::RTShader::ProgramWriterFactory |
Interface definition for factories of ShaderProgramWriter. More... | |
class | Ogre::RTShader::ProgramWriterManager |
class | Ogre::RTShader::RenderState |
This is a container class for sub render state class. More... | |
class | Ogre::RTShader::SampleTextureAtom |
shorthand for "dst = texture(sampler, uv);" instead of using FFP_SampleTexture More... | |
class | Ogre::RTShader::SGMaterialSerializerListener |
This class responsible for translating core features of the RT Shader System for Ogre material scripts. More... | |
class | Ogre::RTShader::SGScriptTranslator |
This class responsible for translating core features of the RT Shader System for Ogre material scripts. More... | |
class | Ogre::RTShader::ShaderGenerator |
Shader generator system main interface. More... | |
class | Ogre::RTShader::ShaderProgramWriterCGFactory |
CG program writer factory implementation. More... | |
class | Ogre::RTShader::ShaderProgramWriterGLSLESFactory |
GLSL ES program writer factory implementation. More... | |
class | Ogre::RTShader::ShaderProgramWriterGLSLFactory |
GLSL program writer factory implementation. More... | |
class | Ogre::RTShader::ShaderProgramWriterHLSLFactory |
HLSL program writer factory implementation. More... | |
class | Ogre::RTShader::SubRenderState |
This class is the base interface of sub part from a shader based rendering pipeline. More... | |
class | Ogre::RTShader::SubRenderStateAccessor |
This class uses as accessor from a template SubRenderState to all of its instances that created based on it. More... | |
class | Ogre::RTShader::SubRenderStateFactory |
Abstract factory interface for creating SubRenderState implementation instances. More... | |
class | Ogre::RTShader::TargetRenderState |
This is the target render state. More... | |
struct | Ogre::RTShader::TextureAtlasRecord |
class | Ogre::RTShader::TextureAtlasSampler |
Implements texture atlas sampling. More... | |
class | Ogre::RTShader::TextureAtlasSamplerFactory |
A factory that enables creation of TextureAtlasSampler instances. More... | |
class | Ogre::RTShader::TriplanarTexturing |
Triplanar Texturing. More... | |
class | Ogre::RTShader::TriplanarTexturingFactory |
A factory that enables creation of TriplanarMapping instances. More... | |
class | Ogre::RTShader::UniformParameter |
Uniform parameter class. More... | |
Macros | |
#define | FFP_FUNC_ADDSIGNED "FFP_AddSigned" |
#define | FFP_FUNC_ADDSMOOTH "FFP_AddSmooth" |
#define | FFP_FUNC_ALPHA_TEST "FFP_Alpha_Test" |
#define | FFP_FUNC_DOTPRODUCT "FFP_DotProduct" |
#define | FFP_FUNC_GENERATE_TEXCOORD_ENV_NORMAL "FFP_GenerateTexCoord_EnvMap_Normal" |
#define | FFP_FUNC_GENERATE_TEXCOORD_ENV_REFLECT "FFP_GenerateTexCoord_EnvMap_Reflect" |
#define | FFP_FUNC_GENERATE_TEXCOORD_ENV_SPHERE "FFP_GenerateTexCoord_EnvMap_Sphere" |
#define | FFP_FUNC_GENERATE_TEXCOORD_PROJECTION "FFP_GenerateTexCoord_Projection" |
#define | FFP_FUNC_LERP "FFP_Lerp" |
#define | FFP_FUNC_MODULATEX2 "FFP_ModulateX2" |
#define | FFP_FUNC_MODULATEX4 "FFP_ModulateX4" |
#define | FFP_FUNC_NORMALIZE "FFP_Normalize" |
#define | FFP_FUNC_PIXELFOG_DEPTH "FFP_PixelFog_Depth" |
#define | FFP_FUNC_PIXELFOG_EXP "FFP_PixelFog_Exp" |
#define | FFP_FUNC_PIXELFOG_EXP2 "FFP_PixelFog_Exp2" |
#define | FFP_FUNC_PIXELFOG_LINEAR "FFP_PixelFog_Linear" |
#define | FFP_FUNC_SAMPLE_TEXTURE_PROJ "FFP_SampleTextureProj" |
#define | FFP_FUNC_TRANSFORM "FFP_Transform" |
#define | FFP_FUNC_TRANSFORM_TEXCOORD "FFP_TransformTexCoord" |
#define | FFP_FUNC_VERTEXFOG_EXP "FFP_VertexFog_Exp" |
#define | FFP_FUNC_VERTEXFOG_EXP2 "FFP_VertexFog_Exp2" |
#define | FFP_FUNC_VERTEXFOG_LINEAR "FFP_VertexFog_Linear" |
#define | FFP_LIB_ALPHA_TEST "FFPLib_AlphaTest" |
#define | FFP_LIB_COMMON "FFPLib_Common" |
#define | FFP_LIB_FOG "FFPLib_Fog" |
#define | FFP_LIB_TEXTURING "FFPLib_Texturing" |
#define | FFP_LIB_TRANSFORM "FFPLib_Transform" |
#define | SGX_FUNC_ADJOINT_TRANSPOSE_MATRIX "SGX_AdjointTransposeMatrix" |
#define | SGX_FUNC_ANTIPODALITY_ADJUSTMENT "SGX_AntipodalityAdjustment" |
#define | SGX_FUNC_APPLYSHADOWFACTOR_DIFFUSE "SGX_ApplyShadowFactor_Diffuse" |
#define | SGX_FUNC_BLEND_WEIGHT "SGX_BlendWeight" |
#define | SGX_FUNC_BUILD_DUAL_QUATERNION_MATRIX "SGX_BuildDualQuaternionMatrix" |
#define | SGX_FUNC_CALCULATE_BLEND_NORMAL "SGX_CalculateBlendNormal" |
#define | SGX_FUNC_CALCULATE_BLEND_POSITION "SGX_CalculateBlendPosition" |
#define | SGX_FUNC_COMPUTE_SHADOW_COLOUR3 "SGX_ComputeShadowFactor_PSSM3" |
#define | SGX_FUNC_CONSTRUCT_TBNMATRIX "SGX_ConstructTBNMatrix" |
#define | SGX_FUNC_FETCHNORMAL "SGX_FetchNormal" |
#define | SGX_FUNC_LIGHT_DIRECTIONAL_DIFFUSE "SGX_Light_Directional_Diffuse" |
#define | SGX_FUNC_LIGHT_DIRECTIONAL_DIFFUSESPECULAR "SGX_Light_Directional_DiffuseSpecular" |
#define | SGX_FUNC_LIGHT_POINT_DIFFUSE "SGX_Light_Point_Diffuse" |
#define | SGX_FUNC_LIGHT_POINT_DIFFUSESPECULAR "SGX_Light_Point_DiffuseSpecular" |
#define | SGX_FUNC_LIGHT_SPOT_DIFFUSE "SGX_Light_Spot_Diffuse" |
#define | SGX_FUNC_LIGHT_SPOT_DIFFUSESPECULAR "SGX_Light_Spot_DiffuseSpecular" |
#define | SGX_FUNC_NORMALIZE_DUAL_QUATERNION "SGX_NormalizeDualQuaternion" |
#define | SGX_LIB_DUAL_QUATERNION "SGXLib_DualQuaternion" |
#define | SGX_LIB_INTEGRATEDPSSM "SGXLib_IntegratedPSSM" |
#define | SGX_LIB_NORMALMAP "SGXLib_NormalMap" |
#define | SGX_LIB_PERPIXELLIGHTING "SGXLib_PerPixelLighting" |
Real Time Shader System: enables GPU program generation during the runtime of a process.
The main interface to do that is the ShaderGenerator singleton. A typical usage of this system would be to create shader based technique from an existing technique and associate it with a destination scheme name (see ShaderGenerator::createShaderBasedTechnique). The source technique must include only fixed function based passes, otherwise the method will fail. Once this task accomplished, one may switch the scheme of the current viewport(s) he uses, to the scheme he associate previously, and then a technique based on the original one will be used but this time it will be based on GPU programs the were generated by this component.
The following are the highlights applications of this system.
#define SGX_LIB_DUAL_QUATERNION "SGXLib_DualQuaternion" |
#define SGX_FUNC_BLEND_WEIGHT "SGX_BlendWeight" |
#define SGX_FUNC_ANTIPODALITY_ADJUSTMENT "SGX_AntipodalityAdjustment" |
#define SGX_FUNC_CALCULATE_BLEND_POSITION "SGX_CalculateBlendPosition" |
#define SGX_FUNC_CALCULATE_BLEND_NORMAL "SGX_CalculateBlendNormal" |
#define SGX_FUNC_NORMALIZE_DUAL_QUATERNION "SGX_NormalizeDualQuaternion" |
#define SGX_FUNC_ADJOINT_TRANSPOSE_MATRIX "SGX_AdjointTransposeMatrix" |
#define SGX_FUNC_BUILD_DUAL_QUATERNION_MATRIX "SGX_BuildDualQuaternionMatrix" |
#define SGX_LIB_INTEGRATEDPSSM "SGXLib_IntegratedPSSM" |
#define SGX_FUNC_COMPUTE_SHADOW_COLOUR3 "SGX_ComputeShadowFactor_PSSM3" |
#define SGX_FUNC_APPLYSHADOWFACTOR_DIFFUSE "SGX_ApplyShadowFactor_Diffuse" |
#define SGX_LIB_NORMALMAP "SGXLib_NormalMap" |
#define SGX_FUNC_CONSTRUCT_TBNMATRIX "SGX_ConstructTBNMatrix" |
#define SGX_FUNC_FETCHNORMAL "SGX_FetchNormal" |
#define SGX_LIB_PERPIXELLIGHTING "SGXLib_PerPixelLighting" |
#define SGX_FUNC_LIGHT_DIRECTIONAL_DIFFUSE "SGX_Light_Directional_Diffuse" |
#define SGX_FUNC_LIGHT_DIRECTIONAL_DIFFUSESPECULAR "SGX_Light_Directional_DiffuseSpecular" |
#define SGX_FUNC_LIGHT_POINT_DIFFUSE "SGX_Light_Point_Diffuse" |
#define SGX_FUNC_LIGHT_POINT_DIFFUSESPECULAR "SGX_Light_Point_DiffuseSpecular" |
#define SGX_FUNC_LIGHT_SPOT_DIFFUSE "SGX_Light_Spot_Diffuse" |
#define SGX_FUNC_LIGHT_SPOT_DIFFUSESPECULAR "SGX_Light_Spot_DiffuseSpecular" |
#define FFP_LIB_COMMON "FFPLib_Common" |
#define FFP_FUNC_LERP "FFP_Lerp" |
#define FFP_FUNC_DOTPRODUCT "FFP_DotProduct" |
#define FFP_FUNC_NORMALIZE "FFP_Normalize" |
#define FFP_LIB_TRANSFORM "FFPLib_Transform" |
#define FFP_FUNC_TRANSFORM "FFP_Transform" |
#define FFP_LIB_TEXTURING "FFPLib_Texturing" |
#define FFP_FUNC_TRANSFORM_TEXCOORD "FFP_TransformTexCoord" |
#define FFP_FUNC_GENERATE_TEXCOORD_ENV_NORMAL "FFP_GenerateTexCoord_EnvMap_Normal" |
#define FFP_FUNC_GENERATE_TEXCOORD_ENV_SPHERE "FFP_GenerateTexCoord_EnvMap_Sphere" |
#define FFP_FUNC_GENERATE_TEXCOORD_ENV_REFLECT "FFP_GenerateTexCoord_EnvMap_Reflect" |
#define FFP_FUNC_GENERATE_TEXCOORD_PROJECTION "FFP_GenerateTexCoord_Projection" |
#define FFP_FUNC_SAMPLE_TEXTURE_PROJ "FFP_SampleTextureProj" |
#define FFP_FUNC_MODULATEX2 "FFP_ModulateX2" |
#define FFP_FUNC_MODULATEX4 "FFP_ModulateX4" |
#define FFP_FUNC_ADDSIGNED "FFP_AddSigned" |
#define FFP_FUNC_ADDSMOOTH "FFP_AddSmooth" |
#define FFP_LIB_FOG "FFPLib_Fog" |
#define FFP_FUNC_VERTEXFOG_LINEAR "FFP_VertexFog_Linear" |
#define FFP_FUNC_VERTEXFOG_EXP "FFP_VertexFog_Exp" |
#define FFP_FUNC_VERTEXFOG_EXP2 "FFP_VertexFog_Exp2" |
#define FFP_FUNC_PIXELFOG_DEPTH "FFP_PixelFog_Depth" |
#define FFP_FUNC_PIXELFOG_LINEAR "FFP_PixelFog_Linear" |
#define FFP_FUNC_PIXELFOG_EXP "FFP_PixelFog_Exp" |
#define FFP_FUNC_PIXELFOG_EXP2 "FFP_PixelFog_Exp2" |
#define FFP_LIB_ALPHA_TEST "FFPLib_AlphaTest" |
#define FFP_FUNC_ALPHA_TEST "FFP_Alpha_Test" |
typedef std::vector<TextureAtlasRecord> Ogre::RTShader::TextureAtlasTable |
typedef std::map<String, TextureAtlasTablePtr> Ogre::RTShader::TextureAtlasMap |
typedef std::vector<Function*> Ogre::RTShader::ShaderFunctionList |
typedef ShaderFunctionList::iterator Ogre::RTShader::ShaderFunctionIterator |
typedef ShaderFunctionList::const_iterator Ogre::RTShader::ShaderFunctionConstIterator |
typedef std::vector<FunctionAtom*> Ogre::RTShader::FunctionAtomInstanceList |
typedef FunctionAtomInstanceList::iterator Ogre::RTShader::FunctionAtomInstanceIterator |
typedef FunctionAtomInstanceList::const_iterator Ogre::RTShader::FunctionAtomInstanceConstIterator |
typedef ShaderParameterList::iterator Ogre::RTShader::ShaderParameterIterator |
typedef ShaderParameterList::const_iterator Ogre::RTShader::ShaderParameterConstIterator |
typedef std::vector<UniformParameterPtr> Ogre::RTShader::UniformParameterList |
typedef UniformParameterList::iterator Ogre::RTShader::UniformParameterIterator |
typedef UniformParameterList::const_iterator Ogre::RTShader::UniformParameterConstIterator |
typedef std::shared_ptr<TargetRenderState> Ogre::RTShader::TargetRenderStatePtr |
typedef std::vector<SubRenderState*> Ogre::RTShader::SubRenderStateList |
typedef SubRenderStateList::iterator Ogre::RTShader::SubRenderStateListIterator |
typedef SubRenderStateList::const_iterator Ogre::RTShader::SubRenderStateListConstIterator |
typedef std::set<SubRenderState*> Ogre::RTShader::SubRenderStateSet |
typedef SubRenderStateSet::iterator Ogre::RTShader::SubRenderStateSetIterator |
typedef SubRenderStateSet::const_iterator Ogre::RTShader::SubRenderStateSetConstIterator |
Ogre::RTShader::DualQuaternionSkinning::DualQuaternionSkinning | ( | ) |
Class default constructor.
|
virtual |
Implements Ogre::RTShader::HardwareSkinningTechnique.
|
virtual |
Implements Ogre::RTShader::HardwareSkinningTechnique.
|
virtual |
Implements Ogre::RTShader::HardwareSkinningTechnique.
_OgreRTSSExport void Ogre::RTShader::operator<< | ( | std::ostream & | o, |
const HardwareSkinning::SkinningData & | data | ||
) |
Ogre::RTShader::HardwareSkinningTechnique::HardwareSkinningTechnique | ( | ) |
Class default constructor.
|
virtual |
|
virtual |
ushort Ogre::RTShader::HardwareSkinningTechnique::getBoneCount | ( | ) |
Returns the number of bones in the model assigned to the material.
ushort Ogre::RTShader::HardwareSkinningTechnique::getWeightCount | ( | ) |
Returns the number of weights/bones affecting a vertex.
bool Ogre::RTShader::HardwareSkinningTechnique::hasCorrectAntipodalityHandling | ( | ) |
Only applicable for dual quaternion skinning.
bool Ogre::RTShader::HardwareSkinningTechnique::hasScalingShearingSupport | ( | ) |
Only applicable for dual quaternion skinning.
void Ogre::RTShader::HardwareSkinningTechnique::setDoBoneCalculations | ( | bool | doBoneCalculations | ) |
|
inline |
|
pure virtual |
Implemented in Ogre::RTShader::DualQuaternionSkinning, and Ogre::RTShader::LinearSkinning.
|
pure virtual |
Implemented in Ogre::RTShader::DualQuaternionSkinning, and Ogre::RTShader::LinearSkinning.
|
pure virtual |
Implemented in Ogre::RTShader::DualQuaternionSkinning, and Ogre::RTShader::LinearSkinning.
Ogre::RTShader::LinearSkinning::LinearSkinning | ( | ) |
Class default constructor.
|
virtual |
Implements Ogre::RTShader::HardwareSkinningTechnique.
|
virtual |
Implements Ogre::RTShader::HardwareSkinningTechnique.
|
virtual |
Implements Ogre::RTShader::HardwareSkinningTechnique.
_OgreRTSSExport void Ogre::RTShader::operator<< | ( | std::ostream & | o, |
const TextureAtlasSamplerFactory::TextureAtlasAttib & | tai | ||
) |
Ogre::RTShader::SGScriptTranslator::SGScriptTranslator | ( | ) |
|
virtual |
Implements Ogre::ScriptTranslator.
|
virtual |
Returns a sub render state of a given name which has already been created for material currently being generated by the script translator.
typeName | The type of the sub-render state to find. |
|
virtual |
Reimplemented from Ogre::MaterialSerializer::Listener.
|
virtual |
Reimplemented from Ogre::MaterialSerializer::Listener.
|
virtual |
Reimplemented from Ogre::MaterialSerializer::Listener.
|
virtual |
Reimplemented from Ogre::MaterialSerializer::Listener.