MaterialDef Phong Lighting { MaterialParameters { // Compute vertex lighting in the shader // For better performance Boolean VertexLighting // Use more efficent algorithms to improve performance Boolean LowQuality // Improve quality at the cost of performance Boolean HighQuality // Output alpha from the diffuse map Boolean UseAlpha // Alpha threshold for fragment discarding Float AlphaDiscardThreshold (AlphaTestFallOff) // Normal map is in BC5/ATI2n/LATC/3Dc compression format Boolean LATC // Use the provided ambient, diffuse, and specular colors Boolean UseMaterialColors // Activate shading along the tangent, instead of the normal // Requires tangent data to be available on the model. Boolean VTangent // Use minnaert diffuse instead of lambert Boolean Minnaert // Use ward specular instead of phong Boolean WardIso // Use vertex color as an additional diffuse color. Boolean UseVertexColor // Ambient color Color Ambient (MaterialAmbient) // Diffuse color Color Diffuse (MaterialDiffuse) // Specular color Color Specular (MaterialSpecular) // Specular power/shininess Float Shininess (MaterialShininess) : 1 // Diffuse map Texture2D DiffuseMap // Diffuse map Texture2D BackgroundDiffuseMap // Diffuse map Texture2D NoiseMap // Normal map Texture2D NormalMap // Specular/gloss map Texture2D SpecularMap // Parallax/height map Texture2D ParallaxMap //Set to true is parallax map is stored in the alpha channel of the normal map Boolean PackedNormalParallax //Sets the relief height for parallax mapping Float ParallaxHeight : 0.05 //Set to true to activate Steep Parallax mapping Boolean SteepParallax // Texture that specifies alpha values Texture2D AlphaMap // Color ramp, will map diffuse and specular values through it. Texture2D ColorRamp // Texture of the glowing parts of the material Texture2D GlowMap // Set to Use Lightmap Texture2D LightMap // Set to use TexCoord2 for the lightmap sampling Boolean SeparateTexCoord // The glow color of the object Color GlowColor // Parameters for fresnel // X = bias // Y = scale // Z = power Vector3 FresnelParams // Env Map for reflection TextureCubeMap EnvMap // the env map is a spheremap and not a cube map Boolean EnvMapAsSphereMap //shadows Int FilterMode Boolean HardwareShadows Texture2D ShadowMap0 Texture2D ShadowMap1 Texture2D ShadowMap2 Texture2D ShadowMap3 //pointLights Texture2D ShadowMap4 Texture2D ShadowMap5 Float ShadowIntensity Vector4 Splits Vector2 FadeInfo Matrix4 LightViewProjectionMatrix0 Matrix4 LightViewProjectionMatrix1 Matrix4 LightViewProjectionMatrix2 Matrix4 LightViewProjectionMatrix3 //pointLight Matrix4 LightViewProjectionMatrix4 Matrix4 LightViewProjectionMatrix5 Vector3 LightPos Float PCFEdge Float ShadowMapSize // For hardware skinning Int NumberOfBones Matrix4Array BoneMatrices // Ground scattering parameters Boolean UseScattering Vector3 SunPosition Float Exposure Float KmESun Float InnerRadius Float RadiusScale Float PlanetScale : 1 Vector3 InvWavelengthsKrESun Float AverageDensityScale Float InvAverageDensityHeight; Vector3 KWavelengths4PI; } Technique { LightMode MultiPass VertexShader GLSL110: MatDefs/MultiResolution.vert FragmentShader GLSL110: MatDefs/MultiResolution.frag WorldParameters { WorldViewProjectionMatrix NormalMatrix WorldViewMatrix ViewMatrix CameraPosition WorldMatrix } Defines { LATC : LATC VERTEX_COLOR : UseVertexColor VERTEX_LIGHTING : VertexLighting ATTENUATION : Attenuation MATERIAL_COLORS : UseMaterialColors V_TANGENT : VTangent MINNAERT : Minnaert WARDISO : WardIso LOW_QUALITY : LowQuality HQ_ATTENUATION : HighQuality DIFFUSEMAP : DiffuseMap NORMALMAP : NormalMap SPECULARMAP : SpecularMap PARALLAXMAP : ParallaxMap NORMALMAP_PARALLAX : PackedNormalParallax STEEP_PARALLAX : SteepParallax ALPHAMAP : AlphaMap COLORRAMP : ColorRamp LIGHTMAP : LightMap SEPARATE_TEXCOORD : SeparateTexCoord USE_REFLECTION : EnvMap SPHERE_MAP : SphereMap NUM_BONES : NumberOfBones USE_SCATTERING : UseScattering } } Technique PreShadow { VertexShader GLSL110 : Common/MatDefs/Shadow/PreShadow.vert FragmentShader GLSL110 : Common/MatDefs/Shadow/PreShadow.frag WorldParameters { WorldViewProjectionMatrix WorldViewMatrix } Defines { COLOR_MAP : ColorMap DISCARD_ALPHA : AlphaDiscardThreshold NUM_BONES : NumberOfBones } ForcedRenderState { FaceCull Off DepthTest On DepthWrite On PolyOffset 5 3 ColorWrite Off } } Technique PostShadow15{ VertexShader GLSL150: Common/MatDefs/Shadow/PostShadow15.vert FragmentShader GLSL150: Common/MatDefs/Shadow/PostShadow15.frag WorldParameters { WorldViewProjectionMatrix WorldMatrix } Defines { HARDWARE_SHADOWS : HardwareShadows FILTER_MODE : FilterMode PCFEDGE : PCFEdge DISCARD_ALPHA : AlphaDiscardThreshold COLOR_MAP : ColorMap SHADOWMAP_SIZE : ShadowMapSize FADE : FadeInfo PSSM : Splits POINTLIGHT : LightViewProjectionMatrix5 NUM_BONES : NumberOfBones } ForcedRenderState { Blend Modulate DepthWrite Off PolyOffset -0.1 0 } } Technique PostShadow{ VertexShader GLSL110: Common/MatDefs/Shadow/PostShadow.vert FragmentShader GLSL110: Common/MatDefs/Shadow/PostShadow.frag WorldParameters { WorldViewProjectionMatrix WorldMatrix } Defines { HARDWARE_SHADOWS : HardwareShadows FILTER_MODE : FilterMode PCFEDGE : PCFEdge DISCARD_ALPHA : AlphaDiscardThreshold COLOR_MAP : ColorMap SHADOWMAP_SIZE : ShadowMapSize FADE : FadeInfo PSSM : Splits POINTLIGHT : LightViewProjectionMatrix5 NUM_BONES : NumberOfBones } ForcedRenderState { Blend Modulate DepthWrite Off PolyOffset -0.1 0 } } Technique PreNormalPass { VertexShader GLSL110 : Common/MatDefs/SSAO/normal.vert FragmentShader GLSL110 : Common/MatDefs/SSAO/normal.frag WorldParameters { WorldViewProjectionMatrix WorldViewMatrix NormalMatrix } Defines { DIFFUSEMAP_ALPHA : DiffuseMap NUM_BONES : NumberOfBones } } Technique GBuf { VertexShader GLSL110: Common/MatDefs/Light/GBuf.vert FragmentShader GLSL110: Common/MatDefs/Light/GBuf.frag WorldParameters { WorldViewProjectionMatrix NormalMatrix WorldViewMatrix WorldMatrix } Defines { VERTEX_COLOR : UseVertexColor MATERIAL_COLORS : UseMaterialColors V_TANGENT : VTangent MINNAERT : Minnaert WARDISO : WardIso DIFFUSEMAP : DiffuseMap NORMALMAP : NormalMap SPECULARMAP : SpecularMap PARALLAXMAP : ParallaxMap } } Technique Glow { VertexShader GLSL110: Common/MatDefs/Misc/Unshaded.vert FragmentShader GLSL110: Common/MatDefs/Light/Glow.frag WorldParameters { WorldViewProjectionMatrix } Defines { NEED_TEXCOORD1 HAS_GLOWMAP : GlowMap HAS_GLOWCOLOR : GlowColor NUM_BONES : NumberOfBones } } }