Specular highlights are nothing more than reflection of light sources. With planar reflections, reflective surfaces can be rendered even more realistic.
Matrix.Reflection (New Plane (0, 1, 0, 0))
With help of the generated Matrix, the ViewProjection can be mirrored. The Y-Position of the plane depends on the position of the reflective SceneObject.
This has the great advantage that all SceneObjects and Pointlights can be rendered without modifications. The only thing you have to do is using front culling.
Create Reflection Map
Draw all SceneObjects with reflected ViewProjection to all deferred RenderTargets and calculate the lighting.
Draw normal Scene
Draw all SceneObjects as usual to all deferred RenderTargets. Objects with reflected material are writing a reflection intensitiy value to Alpha-Channel.
Final Post Processing
The created reflectionmap, the stored reflection intensity and all other informations are used as resource to calculate the final lighting.
Planar Reflected Material