C++
C++ projects: OpenGL demos, raytracers, simulations, Windows tools and graphics effects. 13 articles.
API hooking for window image capture
A C++ class to get the full bitmap of any window, even obscured or offscreen, by redirecting GetDC and ReleaseDC.
29 April 2010FakeServer
A Win32 console program that listens on a port and lets you talk to whatever connects, by typing into the console.
19 December 2009Reflective sphere
Analytical reflections in OpenGL: reverse reflection mapping draws objects at their reflected positions inside a sphere in a second pass.
27 January 2008Polychorons
Animated 3-dimensional Schlegel diagrams of 4-dimensional objects, in C++ and OpenGL.
25 January 2008httpproxy
A Win32 console program that sends an HTTP request over a raw socket, built on LSOCK, a home-made buffered sockets layer.
28 July 2005Fluid dynamics galaxy
Trying out a galaxy effect using an FFT-based fluid solver, where the force field on the liquid is gravitational.
29 March 2005Galaxy simulation
Simulating gravity in a 2D wrap-around universe, from Java applets to a C++ version using FFT convolution for the force field.
1 January 2005RTRay: a realtime raytracer
A realtime raytracer in C++: a classic scene with reflections and shadows, then cutting first-hit sphere tests with on-screen bounding boxes.
27 March 2002Procedural city block
A procedural method (grid subdividing, random building generation) to create the layout of a city, in C++ and OpenGL.
16 July 2000OpenGL ribbon
A Windows C++ OpenGL example: a ribbon effect, with full source.
26 January 2000OpenGL patterns with cubes
Using a 3D grid of cubes to create shapes and patterns. You could say that these are very primitive voxels.
17 January 2000Cloth simulation
A simple spring-mass grid simulates a piece of flexible material falling under gravity and slipping off objects.
13 October 1999C++ graphics effects
C++ graphics experiments for Windows: a fractal universe generator, a pattern generator and its function networks, triangles, pixel text and polygon booleans.
1 June 1998