The above image is one of several 3D reflection techniques that i have been implementing in my free time. I called the technique used to generate the above images Virtual Camera Position (VCP). Its a multi-pass rendering technique with the 1st pass rendering the reflection to a render target (e.g. texture surface) from the "Virtual Camera Position" behind the mirroring plane. The reflections generated depends largely on the calculations of the projection and view matrices from the VCP to the mirror vertices. The VCP reflections if done properly is very accurate and almost pixel perfect. Well, not pixel perfect all the time, the texture that holds the reflections have limited resolutions. When you get really close to the mirror, the image quality degrades. The top image showed a perfect reflection of the floor texture since the bottom edge of the mirror is touching the floor. The bottom image shows a reflection from a position near the floor that revealed objects at the top of the scene behind the camera.
Another plus for VCP is that there is absolutely no limitation on
where you can place the mirror in a scene. Objects can be placed
anywhere in the scene (behind or infront of the mirror) and the
mirror's reflection can be guaranteed to be correct. The planar mirror
could be of any orientation as well. Moving, rotating or dynamically
resizable mirror is also possible! You can find a paper i wrote on
this implementation here http://www.geocities.com/startux05/programming/graphics/VCP/VCP.html. The discussion on this paper centers on the sample implementation which generated the above images. The sample application is done in DirectX 8.1 and the scene is done by me using MilkShape3D and some free textures. Please forgive me that the scene sucks! Its programmer art ;-).
Yen Kwoon, Hun