1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
o-----------------------------------------------------------------------------o
| T O D O |
o-----------------------------------------------------------------------------o
o-----------------------------------------------------------------------------o
| Questions |
o-----------------------------------------------------------------------------o
- Use portable STL? (http://www.stlport.org)
- C++ casts of object pointers? (rtti)
- Do we need floats or doubles for computations?
- Do we really need to renormalize blended normals? sqrt() lookup table?
- Remove the track structure (make keyframes that hold all bones for a
given time)?
- Split translation and rotation in seperate tracks?
- Use 2d or 3d texture coordinates (u, v, w)?
- Do we need to store per vertex colors?
- Would a memory/resource manager be a good solution to the dynamic memory
allocation/deallocation nature of different classes?
- Sliding-Window VIPM? Predefined/prestored LOD levels?
- how should we handle collision detection?
- Allow loading of model data from memory?
- Make various functions (create, destroy, update,...) virtual to allow
subclassing?
o-----------------------------------------------------------------------------o
| Must have |
o-----------------------------------------------------------------------------o
- beginFigureMode(), endFigureMode() in Cal3D exporter.
- Clean accessor functions. (getXXXCount(), getXXX(), getVectorXXX() etc.).
- Use reserve()/resize() whereever we use vectors/etc.
- Big-/little-endian stuff in the file formats!
- Remove all dynamic new/delete. Performance breakdown!
- Optimize memory management!
- Optimize accumulation of the state if we only have one type of animation
- Destroy() / destructor design (validity flag?).
- Insert meaningfull error-texts in CalError::setLastError() calls.
- Make appropriate functions inlined.
- Use a time-factor in animation instances (faster/slower/paused playback).
- Nice API to access bone, animation etc. states.
- Iterator/[] cleanup for std::vector<>.
- Speed and memory optimizations.
- Detailed class description.
- Default material thread/set handling.
- Remove the 'duration' argument in CalCoreTrack::getState().
- Implement a "no-LOD"-flag to save memory in the CalModel structure when
LOD is not needed.
- Implement a priority-system for the active animations.
- Submesh material access? (e.g. eyebrows).
- Direct setting of bone transformations (e.g.for "point-at" etc.)
- README in the docs directory
o-----------------------------------------------------------------------------o
| Nice to have |
o-----------------------------------------------------------------------------o
- Make creation process of models available through the API.
- Different animation types? (keyframes/splines/...)?
- (Selective) bone stretch functionality.
- Scaling of the bones for different model sizes.
- A way to select the kind of interpolation made between keyframes (like
ROUND_DOWN, NEAREST, LINEAR, SPLINE, ...).
o-----------------------------------------------------------------------------o
| Fixes |
o-----------------------------------------------------------------------------o
o-----------------------------------------------------------------------------o
|