1.5.0 features
Posted: 20.01.2008, 05:09
Since the release of 1.5.0 final is very near, I'm trying to compile a summary of the new features in Celestia 1.5.0. I'm not trying to list every single change in the release: that's what the ChangeLog is full. Rather, I'm making a more readable description of some of the most significant changes and organizing them by category. Not everyone is going to agree with my idea of what is a significant feature, so here's your chance to speak up and affect what goes in this summary before it's posted anywhere outside this forum:
--Chris
* Rendering:
All of the following are relevant just for the OpenGL 2.0 render path:
- Added support for specular textures an normal maps for meshes
- Enabled display of eclipse shadows cast onto meshes
- Enabled per-pixel specular lighting for higher-quality specular highlights,
i.e. fewer tessellation artifacts. This is especially noticeable with
low polygon models with specular materials.
- Normal maps and specular materials can now be applied at the same time,
for 'bumpy-shiny' effects
- Simulated scattering, for much more realistic rendering of planetary
atmospheres.
- Implemented a Lunar-Lambert photometric model for more realistic rendering
of dust covered bodies such as the moon.
- Added support for compressed normal maps; eliminates the need to use huge
amounts of texture memory for high quality normal maps.
* Flexible reference frames
- Celestia now supports flexible reference frames for specifying object
trajectories and orientations. This makes it easier to import new objects
into Celestia that have orbits defined in some reference frame other than
the default ones enforced in 1.4.1.
- New reference frames:
- J2000Ecliptic: defined by the ecliptic and equinox of J2000.0. This
is the default for objects orbiting stars. It may now be specified for
other objects as well.
- J2000Equator: defined by the Earth equator and ecliptic of J2000.0.
- MeanEquator: reference frame defined by the equator of some arbitrary
object. This was previously the default and only reference frame available
for solar system bodies that didn't directly orbit stars.
- BodyFixed: a reference frame that rotates with smoe specified object
- TwoVector: a flexible system for defining reference frames based on two
vectors, either a constant vector, object-to-object direction, or
velocity vector. Useful for local attitude frames (among other things.)
- Separate reference frames may be defined for the position and orientation
of an object. As an example, it may be useful to specify the trajectory of
an Earth-orbiting satellite in an Earth equatorial frame while its attitude
is specified in an LVLH frame.
- A new solar system object called a ReferencePoint is available. This is
useful for defining the origin of a reference frame that doesn't happen
to lie at the center of a planet, moon, or spacecraft.
* New trajectory types:
- FixedPosition: For placing an object at a fixed point within its reference
frame.
- ScriptedOrbit: Allows the position of an object to be controlled by a Lua
script.
- SampledTrajectory: A more flexible version of SampledOrbit, with the option
to specify single or double precision and cubic or linear interpolation.
* New rotation models:
- In previous versions of Celestia, all objects rotated uniformly about a
single axis (with optional precession about the z-axis.) Celestia 1.5.0
introduces the concept of a generic rotation model, which is some function
that specifies the orientation of an object over time.
- Rotation models available in Celestia 1.5.0:
- FixedRotation: For an object with an orientation that remains fixed
within its reference frame. This was a notable omission in older version
of Celestia.
- UniformRotation: Describes a rotation of a constant rate about a fixed
axis.
- PrecessingRotation: UniformRotation plus a precession rate.
- SampledOrientation: Analagous to SampledOrbit for position.
SampledOrientation specifies a file of time tagged quaternions which
are interpolated to give the orientation of an object.
- ScriptedRotation: Allows the orientation of an object to be controlled
by a Lua script.
* Galaxies:
- Catalog improvements:
- Included the complete local group of galaxies.
- Updated catalog so that nearly 100% of galaxies now have distances.
- Added support for custom galaxy templates; created a custom Milky Way
template with all known galactic arms.
- Improved appearance of Milky Way as seen from Earth.
- Accelerated loading of large catalog files by using an improve name index
(measured over 100x performance increase for 100k+ object catalogs)
- Implemented distance-based fading of labels.
* Data file updates:
- Extrasolar planets: added about 50 recently discovered extrasolar planets,
and revised orbits of known ones based on new data.
data.
- Solar System: Added newly discovered outer planet satellites and names
- Locations: Added new IAU names for features on planets, moons, and asteroids.
- Near stars: Updated near star catalog with latest data from RECONS
- Binary stars: Updated the binary orbit data in visual and spectroscopic binary
catalogs.
* CELX Scripting improvements:
- OpenGL drawing commands allow scripts to display custom graphics on screen.
- ScriptedOrbits and ScriptedRotations provide hooks for objects to be
positioned and oriented with scripts.
- The Lua hook mechanism gives CELX scripts the ability to handle mouse,
keyboard, and tick events.
- Many other CELX functions to enable scripts to accomplish much of what
used to be possible only by modifying the Celestia source code.
- Scripts may now be loaded quickly from the new Scripts menu.
- Updated CELX interpreter from Lua 5.0 to Lua 5.1
* Accuracy
- Established Barycentric Dynamical Time (TDB) as the time scale used
internally by Celestia.
- Established the origin of Celestia's coordinate system as the Solar System
Barycenter and the reference frame as J2000 ecliptical.
- Fixed support for JPL ephemerides. It is now posible to use the JPL
DE405 and DE406 ephemerides whenever extremely accurate positions for
the Moon and planets are required.
- Added an orbit for the Sun around the solar system barycenter
* SPICE support:
Celestia can now use extremely accurate planet orbits and spacecraft
trajectories available in SPICE SPK files from JPL.
* Orbit rendering
- Orbits are now properly depth sorted with respect to other solar system
objects. They are no longer improperly drawn in front of objects that they
are behind, and vice versa.
- The jittering of orbit paths viewed at close distances has been reduced
- Cubic splines are used to reduce the appearance of sharp angles in between
orbit segments. This also has the effect of placing the rendered orbit path
much closer to the the actual orbit path.
- Star orbit paths are now shown, and may be toggled on and off indepently
of the orbits for other objects.
* Translation:
- Windows version finally supports multiple languages
- New translations: Ukrainian, Russian, Arabic, Dutch, Chinese, Korean,
Bulgarian.
- All other languages updated
- Added translations for constellations names.
* Miscellaneous
- Added dynamic star labeling
- Added support for labeled markers and new marker symbols
- Enhanced InfoURLs so that they can refer to local files.
- Added the capability to show reference vectors for objects, including
frame axes, body axes, velocity vector, and sun direction.
- Made label and line colors customizable via script.
- Bound Shift+K and Shift+L to reduce or increase the time rate by a
factor of 2.
* Annoying bugs fixed:
- Fixed the video recording rate on Windows
- Bad calculation of specular exponent when loading 3DS models. This caused
models with specular materials to look very different in Celestia than they
did in 3D modeling software.
- Fixed precision problems that caused location labels to disappear and
jitter at close range.
- Implemented more robust handling of script errors so that they don't
cause Celestia to crash.
- Allow scripts to run before the first frame is rendered so that they can
set the starting observer position.
- Switched to double precision for rotation and precession periods; among
other things, this keeps synchronous rotators from drifting out of sync.
- Implemented adaptive tesselation for comet tails based on their size on
screen. This makes comet tails appear smooth when seen up close.
- Clamped the simulation time to prevent going too far into the past or future.
- Fixed the cmod loader to work properly on 64-bit systems. A nasty bug was
preventing 64-bit Linux versions of Celestia from displaying spacecraft.
- Fixed problems with the displayed time rate getting out of sync with the
actual time rate.
--Chris