materialFeatureTypes.h
Engine/source/materials/materialFeatureTypes.h
Public Enumerations
MaterialFeatureGroup { MFG_PreTransform MFG_Transform MFG_PostTransform MFG_PreTexture MFG_Texture MFG_PreLighting MFG_Lighting MFG_PostLighting MFG_PostProcess MFG_Misc = -1 }
Public Functions
DeclareFeatureType(MFT_AccuCoverage )
DeclareFeatureType(MFT_AccuDirection )
DeclareFeatureType(MFT_AccuMap )
DeclareFeatureType(MFT_AccuScale )
DeclareFeatureType(MFT_AccuSpecular )
DeclareFeatureType(MFT_AccuStrength )
DeclareFeatureType(MFT_AlphaTest )
This feature is used to do alpha test clipping in the shader which can be faster on SM3 and is needed when the render state alpha test is not available.
DeclareFeatureType(MFT_CubeMap )
DeclareFeatureType(MFT_DeferredEmptySpec )
DeclareFeatureType(MFT_DeferredMatInfoFlags )
DeclareFeatureType(MFT_DeferredSpecMap )
DeclareFeatureType(MFT_DeferredSpecVars )
DeclareFeatureType(MFT_DepthOut )
DeclareFeatureType(MFT_DetailMap )
DeclareFeatureType(MFT_DetailNormalMap )
DeclareFeatureType(MFT_DiffuseColor )
DeclareFeatureType(MFT_DiffuseMap )
DeclareFeatureType(MFT_DiffuseMapAtlas )
DeclareFeatureType(MFT_DiffuseVertColor )
This feature enables vertex coloring for the diffuse channel.
DeclareFeatureType(MFT_EyeSpaceDepthOut )
DeclareFeatureType(MFT_Fog )
DeclareFeatureType(MFT_Foliage )
DeclareFeatureType(MFT_ForwardShading )
This feature is used to indicate that the material should use forward shading instead of deferred shading (if applicable)
DeclareFeatureType(MFT_GlossMap )
DeclareFeatureType(MFT_GlowMask )
DeclareFeatureType(MFT_HardwareSkinning )
DeclareFeatureType(MFT_HDROut )
This should be the last feature of any material that renders to a HDR render target.
DeclareFeatureType(MFT_Imposter )
DeclareFeatureType(MFT_ImposterVert )
A special vertex feature which unpacks the imposter vertex so that the rest of the material features can work on it.
DeclareFeatureType(MFT_InterlacedPrePass )
DeclareFeatureType(MFT_isDeferred )
DeclareFeatureType(MFT_IsDXTnm )
This feature does normal map decompression for DXT1/5.
DeclareFeatureType(MFT_IsEmissive )
DeclareFeatureType(MFT_IsSinglePassParaboloid )
This feature is queried from the MFT_ParaboloidVertTransform feature to detect if it needs to generate a single pass.
DeclareFeatureType(MFT_IsTranslucent )
This feature is only used to detect alpha transparency and does not have any code associtated with it.
DeclareFeatureType(MFT_IsTranslucentZWrite )
DeclareFeatureType(MFT_LightbufferMRT )
This feature causes MFT_ToneMap and MFT_LightMap to output their light color to the second render-target.
DeclareFeatureType(MFT_LightMap )
DeclareFeatureType(MFT_MinnaertShading )
DeclareFeatureType(MFT_NormalMap )
DeclareFeatureType(MFT_NormalMapAtlas )
DeclareFeatureType(MFT_NormalsOut )
This feature causes MFT_NormalMap to set the world space normal vector to the output color rgb.
DeclareFeatureType(MFT_OverlayMap )
DeclareFeatureType(MFT_ParaboloidVertTransform )
A special transform with paraboloid warp used in shadow and reflection rendering.
DeclareFeatureType(MFT_Parallax )
DeclareFeatureType(MFT_ParticleNormal )
DeclareFeatureType(MFT_PixSpecular )
DeclareFeatureType(MFT_PrePassConditioner )
DeclareFeatureType(MFT_RenderTarget1_Zero )
This feature outputs black to RenderTarget3.
DeclareFeatureType(MFT_RenderTarget2_Zero )
DeclareFeatureType(MFT_RenderTarget3_Zero )
DeclareFeatureType(MFT_RTLighting )
DeclareFeatureType(MFT_SkyBox )
DeclareFeatureType(MFT_SpecularMap )
DeclareFeatureType(MFT_SubSurface )
DeclareFeatureType(MFT_TexAnim )
DeclareFeatureType(MFT_ToneMap )
DeclareFeatureType(MFT_UseInstancing )
If defined then this shader should use hardware mesh instancing.
DeclareFeatureType(MFT_VertLit )
DeclareFeatureType(MFT_VertLitTone )
DeclareFeatureType(MFT_VertTransform )
The standard vertex transform.
DeclareFeatureType(MFT_Visibility )
Detailed Description
Public Enumerations
MaterialFeatureGroup
Enumerator
- MFG_PreTransform
One or more pre-transform features are allowed at any one time and are executed in order to each other.
- MFG_Transform
Only one transform feature is allowed at any one time.
- MFG_PostTransform
- MFG_PreTexture
The features that need to occur before texturing takes place.
Usually these are features that will manipulate or generate texture coords.
- MFG_Texture
The different diffuse color features including textures and colors.
- MFG_PreLighting
- MFG_Lighting
- MFG_PostLighting
- MFG_PostProcess
Final features like fogging.
- MFG_Misc = -1
Miscellaneous features that require no specialized ShaderFeature object and are just queried as flags.
Public Functions
DeclareFeatureType(MFT_AccuCoverage )
DeclareFeatureType(MFT_AccuDirection )
DeclareFeatureType(MFT_AccuMap )
DeclareFeatureType(MFT_AccuScale )
DeclareFeatureType(MFT_AccuSpecular )
DeclareFeatureType(MFT_AccuStrength )
DeclareFeatureType(MFT_AlphaTest )
This feature is used to do alpha test clipping in the shader which can be faster on SM3 and is needed when the render state alpha test is not available.
DeclareFeatureType(MFT_CubeMap )
DeclareFeatureType(MFT_DeferredEmptySpec )
DeclareFeatureType(MFT_DeferredMatInfoFlags )
DeclareFeatureType(MFT_DeferredSpecMap )
DeclareFeatureType(MFT_DeferredSpecVars )
DeclareFeatureType(MFT_DepthOut )
DeclareFeatureType(MFT_DetailMap )
DeclareFeatureType(MFT_DetailNormalMap )
DeclareFeatureType(MFT_DiffuseColor )
DeclareFeatureType(MFT_DiffuseMap )
DeclareFeatureType(MFT_DiffuseMapAtlas )
DeclareFeatureType(MFT_DiffuseVertColor )
This feature enables vertex coloring for the diffuse channel.
DeclareFeatureType(MFT_EyeSpaceDepthOut )
DeclareFeatureType(MFT_Fog )
DeclareFeatureType(MFT_Foliage )
DeclareFeatureType(MFT_ForwardShading )
This feature is used to indicate that the material should use forward shading instead of deferred shading (if applicable)
DeclareFeatureType(MFT_GlossMap )
DeclareFeatureType(MFT_GlowMask )
DeclareFeatureType(MFT_HardwareSkinning )
DeclareFeatureType(MFT_HDROut )
This should be the last feature of any material that renders to a HDR render target.
It converts the high dynamic range color into the correct HDR encoded format.
DeclareFeatureType(MFT_Imposter )
DeclareFeatureType(MFT_ImposterVert )
A special vertex feature which unpacks the imposter vertex so that the rest of the material features can work on it.
DeclareFeatureType(MFT_InterlacedPrePass )
DeclareFeatureType(MFT_isDeferred )
DeclareFeatureType(MFT_IsDXTnm )
This feature does normal map decompression for DXT1/5.
DeclareFeatureType(MFT_IsEmissive )
DeclareFeatureType(MFT_IsSinglePassParaboloid )
This feature is queried from the MFT_ParaboloidVertTransform feature to detect if it needs to generate a single pass.
DeclareFeatureType(MFT_IsTranslucent )
This feature is only used to detect alpha transparency and does not have any code associtated with it.
DeclareFeatureType(MFT_IsTranslucentZWrite )
DeclareFeatureType(MFT_LightbufferMRT )
This feature causes MFT_ToneMap and MFT_LightMap to output their light color to the second render-target.
DeclareFeatureType(MFT_LightMap )
DeclareFeatureType(MFT_MinnaertShading )
DeclareFeatureType(MFT_NormalMap )
DeclareFeatureType(MFT_NormalMapAtlas )
DeclareFeatureType(MFT_NormalsOut )
This feature causes MFT_NormalMap to set the world space normal vector to the output color rgb.
DeclareFeatureType(MFT_OverlayMap )
DeclareFeatureType(MFT_ParaboloidVertTransform )
A special transform with paraboloid warp used in shadow and reflection rendering.
DeclareFeatureType(MFT_Parallax )
DeclareFeatureType(MFT_ParticleNormal )
DeclareFeatureType(MFT_PixSpecular )
DeclareFeatureType(MFT_PrePassConditioner )
DeclareFeatureType(MFT_RenderTarget1_Zero )
This feature outputs black to RenderTarget3.
DeclareFeatureType(MFT_RenderTarget2_Zero )
DeclareFeatureType(MFT_RenderTarget3_Zero )
DeclareFeatureType(MFT_RTLighting )
DeclareFeatureType(MFT_SkyBox )
DeclareFeatureType(MFT_SpecularMap )
DeclareFeatureType(MFT_SubSurface )
DeclareFeatureType(MFT_TexAnim )
DeclareFeatureType(MFT_ToneMap )
DeclareFeatureType(MFT_UseInstancing )
If defined then this shader should use hardware mesh instancing.
DeclareFeatureType(MFT_VertLit )
DeclareFeatureType(MFT_VertLitTone )
DeclareFeatureType(MFT_VertTransform )
The standard vertex transform.
DeclareFeatureType(MFT_Visibility )
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#ifndef _MATERIALFEATURETYPES_H_ 25#define _MATERIALFEATURETYPES_H_ 26 27#ifndef _FEATURETYPE_H_ 28#include "shaderGen/featureType.h" 29#endif 30 31 32/// 33enum MaterialFeatureGroup 34{ 35 /// One or more pre-transform features are 36 /// allowed at any one time and are executed 37 /// in order to each other. 38 MFG_PreTransform, 39 40 /// Only one transform feature is allowed at 41 /// any one time. 42 MFG_Transform, 43 44 /// 45 MFG_PostTransform, 46 47 /// The features that need to occur before texturing 48 /// takes place. Usually these are features that will 49 /// manipulate or generate texture coords. 50 MFG_PreTexture, 51 52 /// The different diffuse color features including 53 /// textures and colors. 54 MFG_Texture, 55 56 /// 57 MFG_PreLighting, 58 59 /// 60 MFG_Lighting, 61 62 /// 63 MFG_PostLighting, 64 65 /// Final features like fogging. 66 MFG_PostProcess, 67 68 /// Miscellaneous features that require no specialized 69 /// ShaderFeature object and are just queried as flags. 70 MFG_Misc = -1, 71}; 72 73/// If defined then this shader should use hardware mesh instancing. 74DeclareFeatureType( MFT_UseInstancing ); 75 76/// The standard vertex transform. 77DeclareFeatureType( MFT_VertTransform ); 78 79/// A special transform with paraboloid warp used 80/// in shadow and reflection rendering. 81DeclareFeatureType( MFT_ParaboloidVertTransform ); 82 83/// This feature is queried from the MFT_ParaboloidVertTransform 84/// feature to detect if it needs to generate a single pass. 85DeclareFeatureType( MFT_IsSinglePassParaboloid ); 86 87/// This feature does normal map decompression for DXT1/5. 88DeclareFeatureType( MFT_IsDXTnm ); 89 90DeclareFeatureType( MFT_TexAnim ); 91DeclareFeatureType( MFT_Parallax ); 92 93DeclareFeatureType( MFT_DiffuseMap ); 94DeclareFeatureType( MFT_OverlayMap ); 95DeclareFeatureType( MFT_DetailMap ); 96DeclareFeatureType( MFT_DiffuseColor ); 97DeclareFeatureType( MFT_DetailNormalMap ); 98DeclareFeatureType( MFT_Imposter ); 99 100DeclareFeatureType( MFT_AccuMap ); 101DeclareFeatureType( MFT_AccuScale ); 102DeclareFeatureType( MFT_AccuDirection ); 103DeclareFeatureType( MFT_AccuStrength ); 104DeclareFeatureType( MFT_AccuCoverage ); 105DeclareFeatureType( MFT_AccuSpecular ); 106 107/// This feature enables vertex coloring for the diffuse channel. 108DeclareFeatureType( MFT_DiffuseVertColor ); 109 110/// This feature is used to do alpha test clipping in 111/// the shader which can be faster on SM3 and is needed 112/// when the render state alpha test is not available. 113DeclareFeatureType( MFT_AlphaTest ); 114 115DeclareFeatureType( MFT_NormalMap ); 116DeclareFeatureType( MFT_RTLighting ); 117 118DeclareFeatureType( MFT_IsEmissive ); 119DeclareFeatureType( MFT_SubSurface ); 120DeclareFeatureType( MFT_LightMap ); 121DeclareFeatureType( MFT_ToneMap ); 122DeclareFeatureType( MFT_VertLit ); 123DeclareFeatureType( MFT_VertLitTone ); 124 125DeclareFeatureType( MFT_CubeMap ); 126DeclareFeatureType( MFT_PixSpecular ); 127DeclareFeatureType( MFT_SpecularMap ); 128DeclareFeatureType( MFT_GlossMap ); 129 130/// This feature is only used to detect alpha transparency 131/// and does not have any code associtated with it. 132DeclareFeatureType( MFT_IsTranslucent ); 133 134/// 135DeclareFeatureType( MFT_IsTranslucentZWrite ); 136 137/// This feature causes MFT_NormalMap to set the world 138/// space normal vector to the output color rgb. 139DeclareFeatureType( MFT_NormalsOut ); 140 141DeclareFeatureType( MFT_MinnaertShading ); 142DeclareFeatureType( MFT_GlowMask ); 143DeclareFeatureType( MFT_Visibility ); 144DeclareFeatureType( MFT_EyeSpaceDepthOut ); 145DeclareFeatureType( MFT_DepthOut ); 146DeclareFeatureType( MFT_Fog ); 147 148/// This should be the last feature of any material that 149/// renders to a HDR render target. It converts the high 150/// dynamic range color into the correct HDR encoded format. 151DeclareFeatureType( MFT_HDROut ); 152 153/// 154DeclareFeatureType( MFT_PrePassConditioner ); 155DeclareFeatureType( MFT_InterlacedPrePass ); 156 157/// This feature causes MFT_ToneMap and MFT_LightMap to output their light color 158/// to the second render-target 159DeclareFeatureType( MFT_LightbufferMRT ); 160 161/// This feature outputs black to RenderTarget3 162DeclareFeatureType( MFT_RenderTarget1_Zero ); 163DeclareFeatureType( MFT_RenderTarget2_Zero ); 164DeclareFeatureType( MFT_RenderTarget3_Zero ); 165 166DeclareFeatureType( MFT_Foliage ); 167 168// Texture atlasing features 169DeclareFeatureType( MFT_DiffuseMapAtlas ); 170DeclareFeatureType( MFT_NormalMapAtlas ); 171 172// Particle features 173DeclareFeatureType( MFT_ParticleNormal ); 174 175/// This feature is used to indicate that the material should use forward shading 176/// instead of deferred shading (if applicable) 177DeclareFeatureType( MFT_ForwardShading ); 178 179/// A special vertex feature which unpacks the imposter vertex 180/// so that the rest of the material features can work on it. 181DeclareFeatureType( MFT_ImposterVert ); 182 183DeclareFeatureType( MFT_HardwareSkinning ); 184 185 186// Deferred Shading 187DeclareFeatureType( MFT_isDeferred ); 188DeclareFeatureType( MFT_SkyBox ); 189DeclareFeatureType( MFT_DeferredSpecMap ); 190DeclareFeatureType( MFT_DeferredSpecVars ); 191DeclareFeatureType( MFT_DeferredMatInfoFlags ); 192DeclareFeatureType( MFT_DeferredEmptySpec ); 193#endif // _MATERIALFEATURETYPES_H_ 194
