I believe the following list must be completed before Version 1.0 can be released. If you think of any other issues please contact me (Scott McMillan) =================================== TODO ==================================== State: ========== * sglHighlight is broken - uses current state (fix at same time as sglScribe) * add new sglStatelets and other OpenGL state support: - scribe mode (a la Performer) - normals mode (a la Performer) i.e. render the normals of a geoset - light model stuff (static in sglLight or in sglView?) - glHint wrapper (unknown) * combine sglPointSize and sglPointParameters into one statelet? Geometry: ========== * add sglLightPoint (not necessary if using sglPointSet and sglPointParameters?) * sglIndexedGeoStripSet: verify mode bits for index lists need to reset these mode bits for set*List(NULL). (normals and colors). * sglText - figure out how to handle multiline text (w/ carriage returns) Group Nodes: ============ * [IN PROCESS] removing all the sgluCamera classes and replacing with sgluTransform classes still have sglFlyCamera to do - mcmillan * add non-uniform scale support to sglTransform (make sure intersect and pick work through such a node). Add an affine transform node? Add an rotate only node? * sglBillboard - eAXIAL_ROT suffers from computational complexity; can this be reduced? * sglBillboard - ePOINT_ROT_WORLD needs to be implemented (not sure exactly what the behaviour of this is yet) * sglBillboard - add a setMode to switch b/w Z_UP/Y_UP (or whatever). * With the opaque bin, the sglCallback no longer works as a draw Callback Make sure it still works as a cull callback....is there a way to resurrect a draw callback? * decide fate of sglCallback - deprecate? * add support for pre and post isect/cull/draw traversal callbacks * sglSwitch - should the pick and intersect functions be implemented as wrappers to reentrant functions like cull? * sglLOD - should the sglGroup child functions be implemented here to manage the size of the range list as well? (kinda what was done in animation nodes.) * sglLODState - add stress range and bias values * sglLayer - implement pick and intersect functions. * sglUnProject - implement pick and intersect functions Traversal: ========== * add intersect with all objects along segment (not just closest) * have a numerical inaccuracy when intersecting exactly on edge between two triangles * Bug - isect through sglTransform nodes with scale components not handled sgldb: ======= * need loaders: - 3DS [IN PROCESS] - DXF [IN PROCESS] - VRML - Inventor - OpenFlight [IN PROCESS] Other: ========== * [IN PROCESS] sglView class (in memory of the pfChannel class) to make prototyping easier mostly done, but need to complete lighting setup for the predraw funcs, and would like to investigate view groups * [IN PROCESS] Find a way not to include using code from GLUT? * Profile and performance tune!!!! * add const to fcns where necessary (lots of places) to enforce read-only behaviour in non-preDraw accesses Documentation (yuck): ===================== * Users Guide * Reference Guide - finish sglTexture classes and sglDrawable hierarchy * Design Documentation --------------------------------------------------------------------------- NOTES - LOD float horiz = (screen_size_x*0.5f)/tan(fov_x*0.5f); float vert = (screen_size_y*0.5f)/tan(fov_y*0.5f); float max = (horiz > vert) ? horiz : vert; float fov = (horiz > vert) ? fox_x : fov_y; const float cTanPi8 = tan(M_PI/8.0); float lod_aspect_2 = (512.0f/cTanPi8)/max; float lod_scale = (fov/(M_PI/4.0))*lod_aspect_2;