- Check for dxt5nm file extension to decide whether an image file contains a DXT5nm format file
- Make compressed normal maps work for meshes
- Avoid using dxt5nm textures with non-OGL2 render paths.
- Eliminated code for Lommel-Seeliger photometric model, since it's just a special case of the more general Lunar-Lambert model.
- Cleaned up GLSL_RenderContext so it uses the light and shadow functions in the shader manager
- Turn on separate specular color when rendering models (not required for GLSL path)
- Fixed completely broken calculation of object space eye position for GLSL shaders
- Switched to local viewer model for better quality specular highlights
- Added support for specular and normal maps for meshes
- Implemented shadows for meshes (cast by ellipsoids only, not from other meshes yet.)
- Implemented more general textures (diffuse, specular, emissive, and normal maps supported)
- Fixed texture loading for binary CMOD files
- Corrected a nasty memory allocation error
- Add semantic-indexed attribute list to VertexDescription class
- Abstracted RenderContext so that it's an interface with implementations for various render paths.
- Moved all GL code from Mesh class into RenderContext
This work will enable normal and specular maps for meshes (soon)
- Allow an ssc file definition to override the texture in a model
- When deciding if blending should be turned on when rendering a model, consider whether the texture has an alpha channel