159b2e6871c65f58fdad78cd7229c292f6a177578Scott BartaMaterialDef Phong Lighting Deferred {
259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    MaterialParameters {
459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Use more efficent algorithms to improve performance
659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Boolean LowQuality
759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Improve quality at the cost of performance
959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Boolean HighQuality
1059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Activate shading along the tangent, instead of the normal
1259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Requires tangent data to be available on the model.
1359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Boolean VTangent
1459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Use minnaert diffuse instead of lambert
1659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Boolean Minnaert
1759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Use ward specular instead of phong
1959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Boolean WardIso
2059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Texture2D DiffuseData
2259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Texture2D SpecularData
2359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Texture2D NormalData
2459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Texture2D DepthData
2559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Vector3 FrustumCorner
2759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Vector2 FrustumNearFar
2859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Matrix4 ViewProjectionMatrixInverse
2959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        // Color ramp, will map diffuse and specular values through it.
3159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Texture2D ColorRamp
3259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
3359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    Technique {
3559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        LightMode MultiPass
3659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        VertexShader GLSL100:   Common/MatDefs/Light/Deferred.vert
3859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        FragmentShader GLSL100: Common/MatDefs/Light/Deferred.frag
3959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
4059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        WorldParameters {
4159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            WorldViewProjectionMatrix
4259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            WorldViewMatrix
4359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            ViewMatrix
4459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            CameraPosition
4559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        }
4659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
4759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Defines {
4859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            ATTENUATION : Attenuation
4959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            V_TANGENT : VTangent
5059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            MINNAERT  : Minnaert
5159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            WARDISO   : WardIso
5259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            LOW_QUALITY : LowQuality
5359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            HQ_ATTENUATION : HighQuality
5459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            COLORRAMP : ColorRamp
5559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        }
5659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
5759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    Technique FixedFunc {
5959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
6059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
6159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta}