OSG TODO List ============= Main categories =============== o Core OSG Library - the core OSG library itself (include/OSG and src/) o Reader/writer plug-ins - the reader/writers plug-ins for third party file formats. o Viewers & Application plug-ins - osg viewers and plug-ins to third party applications such as Netscape. o Under development - listing of TODO items which are currently under developement. o Work completed - listing of TODO items which have been done and hence removed from the above TODO catagories. -- o Core OSG Library ================ - General . Header & code documentation/reference guide. . Programming guide. . Naming conventions. . mutli-threading/shared memory support. - Maths . double matrix class. - Nodes . add osg::Sequence for basic animation. . add osg::Morph for interpolating between geometries. . add osg::Engine. . add support for Multi-texturing into osg::GeoSet/osg::GeoState. . add support for pixel/vertex shaders into osg::GeoSet/osg::GeoState. . utilise stl vectors for osg::GeoSets? . add osg::Terrain node. . add proxy node for lazy loading of nodes, when needed. . implement visual proximity to assist loading of proxied data when the view frustum nears an unloaded proxy node, and deleting of unused proxied data. . implement support for modified status/lazy evaluation of node data and observer style pattern. . manipulator decoration nodes? . spacial subdivision decoration nodes? . improved osgUtil:TriStripVisitor to replace NvTriStrip code. . update of osgText to latest FTGL. . create osg::Drawable::PrimtiveFunrctor . support for volume rendering. . occlusion culling. . integrated osgEnv. . implement a osg::CameraRelativeNode for earth sky/HUD's etc. . thread safety. . osgMultipipe. . multi-textureing -> multi-pass support for platforms which do not support multi-texturing. . improve tri-intersection code. . osgParticles - support for particle effects. . osgAnimation - support for skinning etc. . osgShader - suppor for shader languages. . improved impostor implementation - use depth textures? . clean up multi-bin control. . osgUtil::MultiSceneView/Multi-channel configuration. . support for node kits via the plugins mechanism. . Added ImageGroup's which can be attached to textures for animation. - Visitors . improve state sorting of opaque bins in osg::RenderBin. . add statistics visitor for logging the stats of the scene graph. . add OpenGL picking visitor. - IO/Plug-in support . improve the ascii parsing class osg::Field, osg::FieldReader etc. . add support for file path logging into osg::Input. . add binary data reading and writing into osg::Input/osg::Output to support part binary .osg files. o Reader/writer plug-ins ======================= - .iv/.wrl Inventor/VRML ascii. - .dxf Autocads ascii format. - .dem digital elevation map. - .d3d? MS's Direct 3D file formats if they have one.. - 3D Studio plugin to export to .osg. - Miya plugin to export to .osg. o Viewers & Application plug-ins =============================== - OSG scene graph viewer - sgv. . add command line reading for specifying data search paths and data, -D for data search path, -d for data. . add command line reading for specifying library search paths and libraries/plug-ins, -D for library search path, -l for libraries. - Internet Explorer plug-in. - .osg to Inventor file plug-in. - Tutorials example programs. o Under development ================= Sign up here if would like to take on a task :-) - add osg::Billboard for trees etc. - Netscape plug-in. - Mac port. - tri stripping visitor. - .obj Alias wavefront's format.(functioning already.) - .lwo Light Waves's format.(functioning already.) - .pfb loader for Performer binary files (functioning already.) - .flt Open Flight format (functioning already.) - .3ds 3D Studio format (functioning already.) o Work completed ============== - osg namespace implemented. - reduce the STL platform specific #ifdef's. - remove using namespace from all header files, so not to pollute user space. - remove the sg prefix from sgNode etc, now that the osg namespaces exits. - FAQ for distribution and web site. - full maths support in osg::Vec2, osg::Vec3 and osg::Vec4. - change the osg::Registry to use plug-in RW's on loading a plug-in instead of the plug-in functions found in sg.cxx. - add support for removal of plug-ins from osg::Registry, - add .osg support into DCS node. - clean up inheritance relationship between osg::Node, osg::Object etc. - add osg::Switch for handling optional rendering of children. - add osg::LOD (level of detail) group node for load management. - add view frustrum culling into osg::RenderVisitor. - add support for mutliply referenced nodes into osg::Input. - add a quaternion class. - improve osg::BoundingBox and osg::BoundingSphere. - add hit and intersect classes for collision detection. - add intersect visitor. - add camera manipualotors for trackball, drive and flight mouse control. - add compile OpenGL display lists visitor (currently in sgv). - library version and description functions. - add support for OpenGL Vertex Array into osg::GeoSet. - .gif GIF Images! - .jpg JPEG Images. - .tiff TIFF Images. - .png PNG Images. - .tga TGA Images. - .pic PIC Images. - add timing/timestamp class. - document how to get the OSG compiled and running under all platforms, Win32 being priority as it's the least obvious. - .gz (as osgtgz and .tgz) Automatic unzipping of GNU zipped files. - .zip Automatic unzipping of windows zipped files. - add osg::State for mainting image of the OpenGL state. - improve osg::GeoState -> improved version call osg::StateSet. - create a base class to provide interface to objects which can render, derive osg::GeoSet from this. - add support for multi-pass rendering. - full maths support in osg::Matrix class. - osg::Plane class. - add osg::Camera class. - add osg::EarthSky class for rendering earth and sky backgrounds. - return error messages of on failed loading/saving. - .bmp Windows Bitmap files. - .tar Automatic unpacking of directories and loading of contents. - add handling of memory of osg::GeoSet's attributes. - Added tracking of matrix stacks in osg::State. - improved stereo support. - improved makefiles. - improve the node callback mechanism. - CVS support for when source is made fully public. - full maths support in osg::Matrix class.