Convex madness
Convex madness rules the world. What do we do about it? We should first understand it and then join the better party and definitely have some fun!
Convex madness will be series of short tutorials focused on problematic of polygonal modelling,
spatial partition and everything we can do with polygons. Every tutorial will contain demo application
with complete source code in c++ (and even maybe the same code in c) with msvc60 workspace and unix makefile.
I will try to focus on following issues (notice how i used word try)
- simple 2D collision detection, space-game, arcade-game
- triangulation of non-convex polygons, triangulation of any arbitrary point group
- navigating in the mesh (another pathfinding sollution)
- introduction to rasterization, volume rasterization
- polygonal mesh simplification
- decal placement
- collision detection (mesh-sphere, maybe even mesh-box or mesh-mesh)
- octrees basics
- octree accelerated boolean operations
- creating a simple terrain
- creating a simple terrain with geometry pre-baked shadows
- collision detection, raytracing in octree
- bsp-trees basics
- creating a simple BSP tree, drawing back-to-front or front-to-back
- creating leafy BSP tree, placing portals, visibility culling (HL2-style BSP)
- creating leafy BSP tree, placing portals, visibility set precalc, hidden surface removal (Quake-style BSP)
- collision detection, raytracing in BSP tree
- creating more complex shadows with umbra and penumbra
- radiosity (dynamic subdivision)
- photon tracing (using HDR lightmaps, hardware accelerated rendering, maybe even photon-tracing)
Articles will follow as i get time to write them. I may eventually finish the whole promised series, but as
this is the night-creativity stuff, don't expect it too soon.