Playing around a little bit with a stylized rendering idea for a 2D platformer that popped into my head (looks better in motion).
Category: Rendering
FPGA 3D Pipeline
All of the information about this project is on the class Wiki : http://wwwx.cs.unc.edu/~joat/fpga3d/index.php
However, a quick demonstration is in order:

Image Analogies
Quick and dirty image analogies implementation (brute force searching).

Graphics research framework
This is pretty much just a laundry-list of features with some pretty pictures.
Useful stuff
- Flexible scene-graph with multiple render targets
- Virtual File System for seamless loading from regular directories, Quake PAK archives, or ZIP files.
- Limited GUI support (transparent text windows which can be dragged around or typed into, great for debugging)
Level formats supported
- Quake level loading (.BSP, version 0x1D)
- Quake II level loading (.BSP, version 0x26)
- Quake III level loading (.BSP, version 0x2E)
Model formats supported
- Quake II model loading (.MD2)
- Quake III model loading (.MD3)
- Molecule loader (.M3D)
- 3DS loading (.3DS, incomplete)
Textures/materials supported
- JPG
- PNG
- TGA
- PCX
- BMP
- Q2 .WAL
- Q3 .shader
Demo effects:
- Tunnel
- Infinite 3D grid
- Tie-dye (composite effect)
- Sinus Scanlines
- Copperbars
- Iterated function systems with multiple morph modes and pre-defined matricies for the morphers: Binary, Coral, Crystal, Dragon, Fern, Floor, Spiral, Swirl, Tree, Triangle, and Zig-zag
- Particle systems: Snow, rain, grid-bugs, explosion debris
Full-screen processing:
- Radial blur
- Roto blur
- Motion blur
- Glow blur
Procedural surfaces:
- Sphere
- Ellipsoid
- Cylinder
- Rectangular prism
- Torus
- Superellipsoid
- Supertoroid
- Elliptic Torus
- PQ torus knots
- Springs
- Bezier curves
- Supershapes
- Spherical harmonics
Misc. features:
- Texture-mapped fonts
- For a neat effect, text strings can be bound to any of the path objects, such as the PQ torus knot.
- Skydome (including real sun position and CIE clear/cloudy sky luminace)
- FBm generated heightmaps
- Heightmap from image
- Skybox
Generated surfaces (no parameters):
- Pisot Triaxial
- Triaxial Tritorus
- Pillow Shape
- Whitney Umbrella
These are all generated using a general purpose parameterized-surface generator with different parameter matricies.




Real-time ray tracer
Here are a few images from my real-time raytracer (taken on a 900 MHz Athlon):


It supports temporal supersampling, where only a fraction of the pixels are rendered in any given frame, so the image is rendered at interactive rates with degraded quality when being moved, but it converges to an optimal solution if the camera is left alone for a second or so (not enabled on these pictures).
I intend to add adaptive sub-sampling to increase speed without much loss in quality, and as an extension, the level of subdivision can be increased when the camera is still. This should give the speed advantages of sub-sampling without the problems in static images (missing small objects), although it will still have aliasing in animation if an object projects to something smaller than the initial grid resolution and falls fully inside of a grid cell.
It currently only supports spheres and planes, another area for expansion.
Note: The scene files are from an computer graphics course I saw online a long time ago, but I don’t remember exactly where they came from. If anyone has contact information, please let me know and I’ll add it here.
Chilik Screen Saver

Chilik is similar in concept to Nullsoft’s excellent AVS plugin for Winamp, extended to 3D. It presents a tree-view of a scene graph, where the user can insert or move different models, special effects (such as particle systems), or scene modifiers (blurs, clones).
The screen saver aspects of the program include saving/loading individual scene trees, an interactive preview of the rendered scene as it is edited, and sequencing options (such as which scenes to use and the transition mode between them).




GBA Software 3D Engine
Here are a few screen shots from a software rasterizer and TNL stack for the GBA.

The second screen-shot also shows the use of Mappy VM for profiling code using the console.

