I found strange issue when Celestia is built using cmake: the program
was aborted with "corrupted size vs. prev_size" message.
GDB showed address as `delete[] text` in Console::~Console(), while there
was not double free().
Vargant showed "incorrect delete/delete[]/realloc" for
ShaderManager.shaders.
Now it's gone.
- Enabled ring shadows on moons and other objects that aren't themselves surrounded by
ring systems.
- Use texture LOD bias to add blurriness to ring shadows (a result of the finite
size of the light source.)
- Calculate ring phase function per-pixel instead of per-vertex
- Implemented more realistic rendering of unlit side of ring systems
- Used new Eigen's NewStdVector for vectors containing fixed-sized vectorizable
objects.
- Very faint shadows (where the occulting object appeared much smaller than the sun) were being rendered completely black. This is now fixed.
- Maximum shadow depth and umbra (or antumbra) radius are now accurately calculated for all eclipses
- Extremely faint shadows are culled for performance
- Added light brightness parameter for shader; required in order for night textures to look right in some multiple light source situations.
- Added castsShadows property for light sources. Shadows are not rendered for planetshine light sources.
- Defined a sensible lighting model to use when normals are omitted from a model, which should prevent crashes in the Mac version
- Added support for point sprites in cmod meshes
- 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
- Moved calculation of phase function from vertex shader to fragment shader; this avoids some tessellation artifacts
- Use separate functions for generating atmosphere shaders
- Changed eclipse shadow shaders to use just a single interpolant for all shadows rather than one interpolant per shadow. This will prevent Celestia from generating uncompilable shaders when there are many eclipse shadows
- 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.)
- Changed int constants to floats so shaders compile on ATI drivers
- Dump error messages to shaders.log along with shader source
- When shader compilation fails, subsitute an error shader that outputs red pixels