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_DebugViz )
DeclareFeatureType(MFT_DeferredConditioner )
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_GlowMap )
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_InterlacedDeferred )
DeclareFeatureType(MFT_InvertRoughness )
DeclareFeatureType(MFT_isBackground )
DeclareFeatureType(MFT_IsBC3nm )
This two feature do normal map decompression for DXT5/3dc.
DeclareFeatureType(MFT_IsBC5nm )
DeclareFeatureType(MFT_isDeferred )
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_MatInfoFlags )
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_ORMConfigVars )
DeclareFeatureType(MFT_OrmMap )
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_ReflectionProbes )
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_StaticCubemap )
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_DebugViz )
DeclareFeatureType(MFT_DeferredConditioner )
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_GlowMap )
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_InterlacedDeferred )
DeclareFeatureType(MFT_InvertRoughness )
DeclareFeatureType(MFT_isBackground )
DeclareFeatureType(MFT_IsBC3nm )
This two feature do normal map decompression for DXT5/3dc.
DeclareFeatureType(MFT_IsBC5nm )
DeclareFeatureType(MFT_isDeferred )
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_MatInfoFlags )
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_ORMConfigVars )
DeclareFeatureType(MFT_OrmMap )
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_ReflectionProbes )
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_StaticCubemap )
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 two feature do normal map decompression for DXT5/3dc 88DeclareFeatureType( MFT_IsBC3nm ); 89DeclareFeatureType( MFT_IsBC5nm ); 90 91DeclareFeatureType( MFT_TexAnim ); 92DeclareFeatureType( MFT_Parallax ); 93 94DeclareFeatureType( MFT_DiffuseMap ); 95DeclareFeatureType( MFT_OverlayMap ); 96DeclareFeatureType( MFT_DetailMap ); 97DeclareFeatureType( MFT_DiffuseColor ); 98DeclareFeatureType( MFT_DetailNormalMap ); 99DeclareFeatureType( MFT_Imposter ); 100 101DeclareFeatureType( MFT_AccuMap ); 102DeclareFeatureType( MFT_AccuScale ); 103DeclareFeatureType( MFT_AccuDirection ); 104DeclareFeatureType( MFT_AccuStrength ); 105DeclareFeatureType( MFT_AccuCoverage ); 106DeclareFeatureType( MFT_AccuSpecular ); 107 108/// This feature enables vertex coloring for the diffuse channel. 109DeclareFeatureType( MFT_DiffuseVertColor ); 110 111/// This feature is used to do alpha test clipping in 112/// the shader which can be faster on SM3 and is needed 113/// when the render state alpha test is not available. 114DeclareFeatureType( MFT_AlphaTest ); 115 116DeclareFeatureType( MFT_NormalMap ); 117DeclareFeatureType( MFT_RTLighting ); 118 119DeclareFeatureType( MFT_IsEmissive ); 120DeclareFeatureType( MFT_SubSurface ); 121DeclareFeatureType( MFT_LightMap ); 122DeclareFeatureType( MFT_ToneMap ); 123DeclareFeatureType( MFT_VertLit ); 124DeclareFeatureType( MFT_VertLitTone ); 125 126DeclareFeatureType( MFT_StaticCubemap ); 127DeclareFeatureType( MFT_CubeMap ); 128DeclareFeatureType( MFT_InvertRoughness ); 129DeclareFeatureType( MFT_OrmMap ); 130DeclareFeatureType( MFT_ORMConfigVars ); 131 132DeclareFeatureType( MFT_GlowMap ); 133 134DeclareFeatureType( MFT_ReflectionProbes ); 135 136/// This feature is only used to detect alpha transparency 137/// and does not have any code associtated with it. 138DeclareFeatureType( MFT_IsTranslucent ); 139 140/// 141DeclareFeatureType( MFT_IsTranslucentZWrite ); 142 143/// This feature causes MFT_NormalMap to set the world 144/// space normal vector to the output color rgb. 145DeclareFeatureType( MFT_NormalsOut ); 146 147DeclareFeatureType( MFT_MinnaertShading ); 148DeclareFeatureType( MFT_GlowMask ); 149DeclareFeatureType( MFT_Visibility ); 150DeclareFeatureType( MFT_EyeSpaceDepthOut ); 151DeclareFeatureType( MFT_DepthOut ); 152DeclareFeatureType( MFT_Fog ); 153 154/// This should be the last feature of any material that 155/// renders to a HDR render target. It converts the high 156/// dynamic range color into the correct HDR encoded format. 157DeclareFeatureType( MFT_HDROut ); 158 159DeclareFeatureType( MFT_DebugViz ); 160 161/// 162DeclareFeatureType( MFT_DeferredConditioner ); 163DeclareFeatureType( MFT_InterlacedDeferred ); 164 165/// This feature causes MFT_ToneMap and MFT_LightMap to output their light color 166/// to the second render-target 167DeclareFeatureType( MFT_LightbufferMRT ); 168 169/// This feature outputs black to RenderTarget3 170DeclareFeatureType( MFT_RenderTarget1_Zero ); 171DeclareFeatureType( MFT_RenderTarget2_Zero ); 172DeclareFeatureType( MFT_RenderTarget3_Zero ); 173 174DeclareFeatureType( MFT_Foliage ); 175 176// Texture atlasing features 177DeclareFeatureType( MFT_DiffuseMapAtlas ); 178DeclareFeatureType( MFT_NormalMapAtlas ); 179 180// Particle features 181DeclareFeatureType( MFT_ParticleNormal ); 182 183/// This feature is used to indicate that the material should use forward shading 184/// instead of deferred shading (if applicable) 185DeclareFeatureType( MFT_ForwardShading ); 186 187/// A special vertex feature which unpacks the imposter vertex 188/// so that the rest of the material features can work on it. 189DeclareFeatureType( MFT_ImposterVert ); 190 191DeclareFeatureType( MFT_HardwareSkinning ); 192 193 194// Deferred Shading 195DeclareFeatureType( MFT_isDeferred ); 196DeclareFeatureType( MFT_isBackground ); 197DeclareFeatureType( MFT_SkyBox ); 198DeclareFeatureType( MFT_MatInfoFlags ); 199#endif // _MATERIALFEATURETYPES_H_ 200