THANH NGUYEN
GAME PROGRAMMER
Other Projects

Home  News  Resume  Game Projects  Code Samples

 

Shady Engine (ver 1.2)

     This is the second demo for Shady Engine. A lot of things have changed since ver 1.1 of the engine. The base code has been rewritten using component based design (ah, the pain... but it was totally worth it). I put in some new graphics features just for this demo such as dynamic sky dome and HDR rendering. It's a work in progress so the framerate is not all that great.

Screenshots:

 

Download


Shady Engine (ver 1.1)

    This is the modified version of the engine I and 4 other teammates created simultanously with the Junior Game Project (aka Barrel Rapids). Most of the modifications so far have been improving the graphics systems. In particular, I have re-written the animation code from scratch for better control and performance. The water code was cleaned up quite a bit. I also added in some cool features such as multiple-viewport rendering, a stack-able post processing system as well as planar shadow.

Graphics:

  • Per-pixel lighting with specular mapping. Currently support directional and point light.
  • Per-pixel non-linear fall off fog
  • Interpolation-based animation with software skinning and vertex blending (4 weights max)
  • Supports various modern pixel shader effects such as normal mapping, parallax mapping, cartoon shading, cubic environment mapping, etc
  • Planar water system with wave animation, reflection, refraction and Fresnel effect. 
  • Spline-based water system with water movement actually conforms to the shape of any curve. This allows for simulation of river or rapids. Currently only supports cubic reflection map.
  • Height map, deformable  terrains with texture blending. Up to 3 layers of texture can be blended together.
  • Tool to generate terrains' blend map using height and slope information.
  • Stackable post processing system
  • Planar shadow
  • Robust and flexible particle system

Physics:

  • 3D collision detection and response between boxes, cylinders, height map terrains and arbitratry meshes.
  • 3D rotational physics
  • Water physics with buoyancy that intergrated tightly with rotational physics system

Networking:

  • Server client model with semi-reliable UDP
  • Supports prediction, interpolation and server migration

Artificial Intelligence:

  • Hierarchical AI architecture
  • Neutral net AI
  • Path following with NURB and Catmull-Rom
  • Flocking

Screenshots:

 

Note: the demo only showcases the graphics portion of Shady Engine. Functionalities from other systems have been completely disabled.

Download

 

Ray Tracer

Description: this project implements a recursive ray tracer featuring: reflection, transmission, soft shadow, caustic and anti-aliasing (uniform super sampling).

Screenshots:

 

Download

 

Cloth Simulation

Description: this project implements a very simple cloth simulation using a spring-damper system. Integration is performed using Euler with fixed time step.

Screenshots:

Download


A* Path Finding

Description: this project implements A* path finding algorithm on a grid

Screenshots:

Download

 

Triangle Rasterizer

Description: this project implements a software triangle rasterizer using the scan-line rasterizing algorithm. I also implemented a clipper (so that things don't go crazy when you are behind the camera), frustum as well as back face culling.  

Screenshots:

Download

 

Polygon Rasterizer

Description: this project implements a software polygon rasterizer using the Active Edge List algorithm. The rasterizer can handle arbitrary polygon even polygon with holes.

Screenshots:

Download

 

Binary Space Partitioning Tree

Description: this projects implements the BSP tree.

Download   

 

Software Phong Lighting

Description: this project implements the popular Phong lighting model in software.

Screenshots:

Download 

 

Software Texture Mapping

Description: this project implements perspective correct texture mapping in software. Mip mapping is also implemented.

Screenshots:

Download

 

Software Normal Mapping

Description: this project implements normal mapping in software. 

Screenshots: 

  Download

 

Software Parallax Occlusion Mapping

Description: this project implements perspective correct parallax occlusion mapping in software. Detail about the algorithm can be found here: ATI paper 

Screenshots: 

Download

 

Curves Project

Description: this project implements the De Casteljau and De Boor algorithm for drawing curves

Screenshots:

 

Download