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:
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.
Ray Tracer
Description: this project implements a recursive ray tracer featuring: reflection, transmission, soft shadow, caustic and anti-aliasing (uniform super sampling).
Screenshots:
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:
A* Path Finding
Description: this project implements A* path finding algorithm on a grid
Screenshots:
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:
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:
Binary Space Partitioning Tree
Description: this projects implements the BSP tree.
Software Phong Lighting
Description: this project implements the popular Phong lighting model in software.
Screenshots:
Software Texture Mapping
Description: this project implements perspective correct texture mapping in software. Mip mapping is also implemented.
Screenshots:
Software Normal Mapping
Description: this project implements normal mapping in software.
Screenshots:
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:
Curves Project
Description: this project implements the De Casteljau and De Boor algorithm for drawing curves
Screenshots:





























