Renderer Name: ATI RenderMonkey.
Platform: Windows.
Source Code: Free software but not open source
Download: http://ati.amd.com/developer/rendermonkey/downloads.html
Documents and Tutorials:
http://ati.amd.com/developer/rendermonkey/downloads.html,
http://ati.amd.com/developer/rendermonkey/publications.html.
The install package has quite a few examples for OpenGL and DirectX.
RenderMonkey aims to provide a collaborative environment for programmers and artists. Programmers focus on producing various rendering effects using its shading language and artists focus on creating models and adjusting rendering parameters to generate the final scene.
It’s compatible with various formats of 3D model file:
(1) 3D studio files (*.3ds), Polygon meshes
(2) NormalMapper files (*.nmf),
(3) Alias & wavefront obj files (*.obj).
(4) DirectX files (*.x)
It supports two shading languages: GLSL (OpenGL) and HLSL (DirectX). Users can choose which driver to use (OpenGL or DirectX), then program two shaders (Vertex/Pixel Shaders for DirectX, Vertex/Fragment Shaders for OpenGL). Typically each shader has less than 100 line codes. It can be used to produce a number of effects (transparency, reflection, refraction, global illumination).
After compilation the two shaders will replace two corresponding parts in the rendering pipelines. Compared to traditional rendering methods (e.g. rendering a scene in OpenGL without ARB extensions), this GPU based rendering speeds up a lot.
RenderMonkey has quite a few very nice rendering examples. By making use of the power of GPU most scenes are rendered in real-time (fps > 60).I explored some examples and put them here.
The pictures below are captured from the output window of RenderMonkey. Each scene is programmed by HLSL.



Left: Ocean at night (clouds, water effects)
Middle: a skull under a water mirror (refraction effects)
Right: a skull over a reflective bump mapping disc (reflection effects)


The two pictures above are taken in a same scene. The background (mountain and sky) is given by a cubemap.
In my laptop (CPU: T2300, GPU: X1300) it achieves a favorable frame rate. The frame rate is shown at the right up corner of each snapshot.
I also tried to render my own scene based on the second model above.
(1) Wooden elephant under a water mirror (cheap but real-time refraction effects)

Video: Elephant.mp4 (playable on quicktime)
(2) A tower near to a river bank (real-time reflection and water wave effects)

Video: Tower_near_riverbank.mp4 (playable on quicktime)
Model: I tried several built-in models in the RenderMonkey package (e.g. elephant, skull and butterfly). All these models are 3ds files created by 3DMax.
Setup:
First step is to create a special effect group and import the model.One advantage of RenderMonkey is, it places the model in the center of the screen by default. If needed, users can translate the model to their desired place by programming in the vertex shader.
Second step is to create 3 passes, and each of them creates an effect. Combining all effect passes together will yield the final scene.
Process:
(1) Render to Texture
Put the wood texture onto the elephant model. Render the textured elephant to a texture. (512x512)
(2) Render to FrameBuffer
Render the wood textured elephant. This step creates the 'real elephant' we see under the water mirror.
(3) Render the translucent disk mirror and produce refractive effects
Here we put the texture generated in (1) onto the disk and distort the tex coordinate to produce 'cheap' refraction effects. This will buy us real time effects.
In the second example (tower near to a river bank), it creates two passes. The first one is simplely drawing the background by cube mapping, and the second one is rendering the background to a quad and randomly (actually doing this according to a noise volume) distort the tex coordinates on the quad. This will yield the final result.
What I like: The IDE allows users to try their rendering methods and make a fast prototype. Users don't need to setup a lot of parameters (e.g. window size, viewport, modelview/projection matrices, enabling zooming and rotation). All these are automatically handled by the IDE so they can really focus on rendering methods.
In the shader program, users can choose their rendering methods to produce various effects. In other words users can explicitly specify how to compute the ambient, diffuse and specular components separately on each vertex. I really like this because compared to traditional OpenGL (it provides only the simplest guaround shading) It’s much more powerful.
What I don't like: The shading language is half-assembly and half-C style and difficult to learn. Also programmers must have a very good understanding of geometry because a lot of computations in the shaders require accurate coordinate transformation. (e.g. bump mapping). I also find that it has quite a few tutorials but they lack comments and the built-in SDK document is not very easy to follow. Some setups are needed to deal with carefully (e.g. stream mapping). By googling I found some very useful step-by-step tutorials.