this weekend, I finally got my jogl-based engine and demo running (http://www.ascendancy.at/ascengine/
). A month of mostly red-eyed coding tends to ruin ones interest in fundamental questions, however, now that I lean back and relax, a number of big-picture issues come to mind and it would be nice if you could provide input and discuss them with me.
1. What light to use for the detail light
When you are using detail lighting, you update tangent coordinates each frame (or when light changes in respect to object). What light to use for updating? I currently support two modes: Selected light (for you headlight, e.g.) and Nearest light (standard mode). Problem is, nearest light often does not look correct, and may lead to flickering detail map light in moving objects. Is there any way to interpolate? Linear vector interpolation betweeen object-space light vectors is guaranteed to produce wrong results, so much I know.
2. How to get lighting computations right
When you start using lights and shadows together with material properties and textures, lighting gets tricky. I'm not talking about a shader renderer where you could just compute values. Take a scene with one light: First, I SET ambient color, then I ADD projective light color everywhere except where there's shadow, then I MUL textures. When using multiple passes and combine them, what would be a correct lighting equation? Or is it all trial and error and magic numbers (as in my case
3. Frame-based or Vertex-based animations
I haven't looked into the matter all that much, but I know I will implement bone-based animation, if only for the q3 model visual. However I wonder if you use frame-based animation, or bone/vertex-based. I mean, is this mutually exclusive, or do you combine the two? I currenty plan to have a frame leaf in my scenegraph which can contain a whole bone-animated model which is internally kept and coded, so clear separation of frame vs. bone. Any other ideas?
4. Matrix, Quaternion or both?
My scenegraph is still based on matrices, and I'm thinking about converting everything to quaternions. However, I only see an advantage for keyframe interpolation. Do you people use pure quaternion transforms, or matrix, or a mixture?
5. File formats to support
I've designed my own xml-based file format and it suites my needs, but obviously I'll need some converters. For now, I've got a command line tool converting from .x file format and from .obj file format. What other formats do people use? I'm not going to implement a Doom3 loader, obviously :-) but still ... ?
Thanks, most of all for following my bad English