GeForce3 PixelShader Test #1 V0.1(147 Kb) (EXE and Source)

It is not my intention to damage you, but you have to use this for your own risk. This means, Iīm not responsible for any damage caused by it. It is prohibited to sell or use this in any commercial way. If you want to publish or present it for downloading, you have to contact me.

The idea for this came from the discussion at flipcode. I posted some raytracing pictures of my wormring (thatīs how I call it) for the IOTD (Image of the day) and someone came up with idea to try this in realtime (If you want the read the messages you have to browse the IOTD gallery).
A few days later I got the new GeForce3. The GeForce3 is capable to calculate the z-value of the polygons on a per-pixel basis. This enables me to render spheres without converting them to polygons.

framerate about 2 fps, color of the smaller spheres is choosed random in the range from red to white, the red/white version isnīt slower that the yellow one

framerate about 5 fps

framerate about 28 fps, the right sphere shows the position of the light

The most expensive part of the rendering process is the pixel shader. This means as smaller the area to render as faster is the whole thing. The depth sprites arenīt available through DirectX, because they need a special pixel shader command which is only available through the NVidia OpenGL extension. The program I used for my tests is only a quick (1-2 hours) hack of the NVidia DepthSprite demo. This demo has very precise specular and diffuse lightning. I think it might me possible to get pictures like this with a better framerate. The quality can also be improved with shadowing, thatīs the main difference to my raytracing pictures. My system is a PentiumIII 833, with a GeForce3 from NVidia.

Some details: Spheres which are totally covered from other spheres are rejected in the preprocessing step. The bump mapping is a normal dot3 bump mapping and is static, which looks a little bit silly when moving. But this way done itīs for free, because the normal map is already in use for the sphere itself.
The rendering ist about 4 times faster when I turn of the depth sprites.

Please feel free to contact me (especially for correcting bad english).

GeForce3 PixelShader Test #2 (displacement mapping)