the plan -regular draw shader program[0] -geometry sahder, expand geometry to add polygons that smooth out curves[0.0] -vertex shader, move to world and camera space, pass world space to shader[0.1] X -load texture and elevation data[2] X -fragment shader, process elevation mad to adjust the fragment position in world space,[0.3] X -and change the normal based on vector of where y+ on the texture is and the polygon normal[0.4] -use reflection of light across normal, and angle of that from camera to do reflect lighting[0.5] X -use angle of normal from angle of light to do diffuse lighting[6] X lighting[1] -decrease light itensity as log of max distance[1.0] X -colored lighting[1.1] X -when below a percentage of max distance, lets say 5%, will use an array or constant set of 16 world space coordinates, each acting as 1/16 if the light intensity. [1.3] Shadows[2] -create second shader program[2.0] X -use geometry shader to draw shadow "box" that radiates away from light source, ending at light source limit + some buffer constant[2.1] -since they should not overlap, we do not have to owrry about shadow boxes in boxs, therefore all boxes should be backpolygon frontpolygon, have two 8 bit buffers, with highest bit being xor'd with 1 every time. starting as 0, it it ends up 1, draw solid shadow[2.2] -create a new render buffer buffers, for all pixels where the original buffer was 1, draw based on depth buffer of original render buffer, write z level and dist from polygon(generated in geometry) of highest backpoly up below depth and lowest frontpoly above depth, compare with z level of original buffer to generate compiste distance, shade darkness accordingly[2.3] particles[3] -draw random particles, point or triangle, near light sources, or based on world coordinate make a static particle with geometry shader[3.0] non opaque objects[4] -draw opaque and non opaque objects when drawing shadows, then draw opaque objects, draw non opaque objects this does not apply shadows to non opaque objects [4.0]. -draw opaque objects into buffer[4.1] -then for every non opaque object, draw based on depth buffer of that, apply shadows and draw over,in order of distance from camera[4.2] -based on normal from camera and index of refraction, shift linearly in a simple fashion from previous buffer with non opaques[4.3] misc[5] -re do box[5.0] -do circle, full poly if geometry not implemented[5.1] -added gfx textures[5.2] and coresponding backlight[5.2]