Page 1 of 3

Celestia 1.5.0 prerelease 1

Posted: 05.12.2006, 08:42
by chris
The first of the prerelease builds of Celestia 1.5.0 is ready. As usual, this is a Windows binary package. For the time being, Linux and Mac OS X users should sync with the CVS tree and compile the source. I will try to have a Mac OS X binary for 1.5.0pre1 ready soon.

You may download the self-installing package here:
http://www.celestiaproject.net/~claurel/celest ... .0pre1.exe

All of the major new features for 1.5.0 are in the prerelease. Nearly all of the work for the final 1.5.0 will consist of bug fixes and some performance tuning. There are some known bugs with star rendering and cloud shadows, and some work on the new atmosphere code still remains. You should only install 1.5.0pre1 if you need or want to test out the new features; otherwise, it's best to stick with 1.4.1.

Here is the 1.5.0 change log so far, with changes categorized for readability:

Code: Select all

Rendering:
* Improved rendering of meshes in OpenGL 2.0 render path:
  - Switched to local viewer model for better quality specular highlights
  - Added support for specular and normal maps for meshes
  - Enable rendering of eclipse shadows cast onto meshes
* Enabled per-pixel specular lighting in OpenGL 2.0 path
* Made specular lighting work properly with normal maps
* Enabled separate specular color when rendering models in pre OpenGL 2.0
  render paths
* Implemented cloud shadows
* Changed eclipse shadow shaders to use a single interpolant for all
  shadows instead of one per shadow
* Made OpenGL 2.0 render path respect the ring shadow render flag setting
* Improved atmosphere rendering in OpenGL 2.0 path; uses new ssc parameters
  to specify scattering and absorption coefficients
* Added Lunar-Lambert photometric model (linear combination of Lambert and
  Lommel-Seeliger) for much more realistic appearing dusty objects
  (e.g. the Moon)
* Added normal maps for cloud layers
* Allow smaller objects to cast eclipse shadows (e.g. can now see eclipse
  shadows from Miranda on Uranus)
* Added dynamic star labeling
* Made star orbit paths visible
* Added support for compressed normal maps (DXT5nm)
* Enabled new star rendering path: uses point sprite extension, new Gaussian
  glare textures
* Made overlay textures work in GLSL path
* Added support for non-power-of-two textures (newer graphics cards only;
  on older cards the textures will be automatically rescaled to the nearest
  power of two.)


Galaxies:
  -changed galaxy template format to standard (grayscale) PNG
  -allow a custom template for each galaxy in deepsky.dsc
  -new approach to thickness of galaxy (arms): assumed proportional to read-in
   brightness values
  -emulate dust lanes around galactic plane (y=0)
  -considerable improvement of Milky Way appearance as seen from Earth
  -implement galaxy labels of transparency increasing with distance, thus
   providing a neat 3d effect
  - Galaxy templates:
    - designed an entirely new set of PNG templates using a uniform multi-layer
      technique
    - provided a custom Milky Way template including all known arms with
      correct location of the Sun. Supply adapted deepsky.dsc


New depth sorting:
* Fixed some depth sorting problems: coalescing of depth buckets was failing
  when a merged object was clipped to the new plane.
* Implemented a new depth sorting algorithm that fixes many depth sorting
  bugs.
* Rewrote orbit path rendering; orbits are now properly depth sorted


Trajectories and reference frames:
* Added SpiceOrbit interface for trajectories defined in SPICE kernel files
* Improved custom orbits based on JPL ephemerides:
  - Support big endian platforms
  - Fixed Moon orbit
  - Added orbits for Earth-Moon barycenter and sun
  - Added heliocentric and solar system barycentric orbits
  - Added Moon and Earth orbits relative to Earth-Moon barycenter
  - Guarded against crash when the JPL ephemeris file can't be found
* Generalized rotations
  - Clear syntax for ssc files
  - UniformRotation
  - PrecessingOrientation
  - SampledOrientation - interpolated sequence of quaternion key frames
* Added new solar system object type ReferencePoint, for defining reference
  frame centers.
* Script interfaces for orbits and rotation models (ScriptedOrbit and
  ScriptedRotation)
* Added generalized reference frames for positioning and orienting bodies
  - J2000 ecliptic
  - J2000 equator
  - Body-fixed
  - Body mean equator (with optional freeze epoch)
  - Two-vector (relative position, relative velocity, constant vectors)
* Added FixedPosition trajectory type for making an object stationary within
  its reference frame
* Added FixedRotation rotation model
* Added VSOP87 CustomOrbit for the Sun about the solar system barycenter


Accuracy:
* Established Barycentric Dynamical Time (TDB) as the time scale used
  internally by Celestia
  - Convert to UTC when displaying the time
  - Modified Set Time dialog to convert from UTC to TDB
* Moved origin of coordinate system to the solar system barycenter
* Corrected kilometers per light year constant


Internationalization:
* New translations: Ukrainian, Russian, Arabic, Dutch, Chinese, Korean
* Updated other translations
* Separate i18n domain for constellation names
* Windows: Added support for i18n
* Fixed bugs with UTF-8 in object name completion
* I18n improvements and bug fixes for Mac OS X
* Localized planet labels
* Mac: added Japanese translation
* Modified eclipse finder dialog for i18n
* Display a '?' when glyph is not found in a font texture
* COPYING, controls.txt, start script, and guide can all be localized


Scripting:
* Implemented event handlers for celx scripts
* cel and celx scripting:
  - added openclusters and cloudshadows render flags
  - added location, nebulae, openclusers, and i18nconsteallations label flags
* New celx scripting commands:
  - utctotdb and tdbtoutc
  - gl commands for rendering
* Lua hooks for script extensions to Celestia
* Script interfaces for orbits and rotation models (ScriptedOrbit and
  ScriptedRotation)
* Support Lua 5.1 (5.0 compatibility retained)
* Made celestia:loadtexture use relative file names


UI:
* Added a ReverseMouseWheel option for configuration file


Catalog files:
* Made relative InfoURL relative to current add-on directory instead of main
  data directory.
* Updates to parser:
  - Allow leading + (no effect, just symmetry with - )
  - Allow numbers to begin with a decimal point (e.g. accept .12 as well
    as 0.12)
* Accelerated loading of large catalog files with an improved name index
  (over 100x performance increase for 100k+ object catalogs)


Meshes:
* Added logging of mesh statistics
* Improved load time mesh conditioning: eliminated duplicate materials and
  sort submeshes by material to reduce graphics state changes.
* Fixed bad calculation of specular exponent when converting materials from
  3DS files.


Data file updates:
* New extrasolar planets:
  - XO-1
  - HD 69830 system
  - HD 164922 b, HD 66428 b, HD 99109 b, HD 107148 b, HIP 14810 b
  - HIP 14810 c, HD 185269 b, Gliese 849 b
  - Mu Ara e
* Added stars for new extrasolar planets: GSC 92941-01657
* Revised orbits of many extrasolar planets to reflect new data
* Added Plutonian satellite names: S/2005 P1 -> Hydra, S/2005 P2 -> Nix
* Added 9 new numbered Saturnian satellites
* New RECONS data added to nearstars.stc
* Added moons Daphnis, Perdita, Mab, and Cupid to numberedmoons.ssc
* Switch to barycentric definition for Pluto system
* Use J2000 equator for Moon's reference frame (instead of equator of date;
  allows precession to be included for Earth's rotation.)
* Added asteroid RGB colors integrated from spectra
* Replaced Hubble Space Telescope made with Cham's much improved version
* Switched to improved version of Cassini model from Cham


Miscellaneous bug fixes:
* Fixed bug that caused time scale in celestiacore and simulation to get out
  of sync.
* Fixed bug in eclipse shadow test; objects close to the surface of the lit
  side of a planet were incorrectly rendered with shadows
* Fixed a bug in the octree culling code that was causing star culling errors
* Fixed ambient light in OpenGL 2.0 render path to match other render paths
* Fixed bug that causes locations to work improperly in multi-star systems
* Improved vecToVec rotation and quaternion-to-matrix functions


Tools:
* Added cmodsphere, a utility for producing cmod meshes from height samples
  regularly spaced in longitude and latitude.
* Added spectrum2rgb tool for generating RGB asteroid colors from SMASS
  spectra


Miscellaneous platform-specific changes:

Mac OS X:
* Mac: Show menu bar when moving mouse to top of screen in full screen
* Mac: added missing 'Hide Others' menu option
* Mac: cursor now changes on draggable view boundaries
* Mac: middle mouse button implemented (option-click on one button mice)
* Mac: show nearest and brightest stars properly sorted in star browser
* Mac: enabled support for hardware antialiasing

Linux:
* KDE and GTK: added ogg/theora video capture
* Fixed bug in cmod loader that caused binary cmod files to be read
  incorrectly on 64-bit machines.
* KDE: removed a dependency on STL support in Qt
* Fixed gcc 4.1.1 build errors caused by bad constructor declarations in Star
  and CommandGotoLongLat classes
* KDE: improvements to popup menu--orbiting bodies are now sorted by type
* KDE: accept relative dir/files in --conf, --dir, and --extrasdir command
  line options
* KDE: fixed by ing deep sky objects info url where the default url was
  always used.

Windows:
* Windows: generate an accelerate command only when the 'a' key is pressed
  without any modifiers.


--Chris

Posted: 05.12.2006, 09:03
by rthorvald
This is great news.

8O 8O 8O The changelog reads like a christmas wish list...

Particularily, the new catalog parameters offer intriguing possibilities that i can??t wait to try! I look forward to the final, and the OSX version...

-rthorvald

Posted: 05.12.2006, 10:15
by ElChristou
Cool, the Change log is now sorted!! :D
Much clearer indeed!

Posted: 05.12.2006, 20:32
by t00fri
Here are some more of my (unsorted) Changes that Chris forgot:

Code: Select all

* Added E0.png galaxy template that allows for better En, n=1..7 elliptical
  shapes. 
* Fixed sizes of irregular galaxies (factor of 2!).
* Prevented galaxy code from crashing if a template is missing.
* Added new code featuring varying label transparency for galaxies.
* Added new parameter set for Mie atmosphere display of Titan.


Bye Fridger

Posted: 05.12.2006, 23:40
by julesstoop
Thanks Chris!

Posted: 06.12.2006, 02:56
by lacy
I don't know what is happening, but this pre-release is locking up my system.

First I have no star points in any render options. If I try to do anything like goto an object it just will freeze and my computer will re-boot. Basically, if I try to do anything it does this.l

I am running Windows XP SP2, AMD Athlon 64 Processor at 2.2 Ghz, 512MB RAM.

Just a note. I didn't seem to have a problem with the downloads at
http://www.purebytes.de/stuff/celestia. Of course, I realize this may not have been totally complete.

Let me know if there is something on my end that could be causing a problem (firewalls, virus protection, etc.)

Thanks

Posted: 06.12.2006, 03:02
by Cham
I'm unable to compile the CVS code (today). I'm getting one error which stops the compilation. I redownloaded all the code (instead of doing a simple update), and same error. I can't test Fridger's modification of today.

Posted: 06.12.2006, 03:44
by chris
Cham wrote:I'm unable to compile the CVS code (today). I'm getting one error which stops the compilation. I redownloaded all the code (instead of doing a simple update), and same error. I can't test Fridger's modification of today.


What's the error?

--Chris

Posted: 06.12.2006, 03:57
by Cham
My compiler said it's in CelestiaUniverse.mm :

Line 44 : return [[[CelestiaSelection alloc] initWithSelection:[self universe]->pick([origin universalCoord],[direction vec3f],[when floatValue],[faintestMag floatValue])] autorelease];


Error : no matching function for call to 'universe::pick(UniversalCoord, Vec3f, float, float)'

Really, I don't know what this is all about ...

Posted: 06.12.2006, 05:25
by Sui Ota
I found a crash bug:

Star Browser:
When I select a star (without clicking any of Center, Go To, Refresh), then I click X button upper right of the browser, Celestia chashes.

Posted: 06.12.2006, 11:47
by Toti
Cham wrote:My compiler said it's in CelestiaUniverse.mm :

Line 44 : return [[[CelestiaSelection alloc] initWithSelection:[self universe]->pick([origin universalCoord],[direction vec3f],[when floatValue],[faintestMag floatValue])] autorelease];

Error : no matching function for call to 'universe::pick(UniversalCoord, Vec3f, float, float)'

Really, I don't know what this is all about ...

I made a few changes in the picking code, which have not been incorporated into the Mac version yet.

Posted: 06.12.2006, 12:10
by t00fri
Toti wrote:
Cham wrote:My compiler said it's in CelestiaUniverse.mm :

Line 44 : return [[[CelestiaSelection alloc] initWithSelection:[self universe]->pick([origin universalCoord],[direction vec3f],[when floatValue],[faintestMag floatValue])] autorelease];

Error : no matching function for call to 'universe::pick(UniversalCoord, Vec3f, float, float)'

Really, I don't know what this is all about ...
I made a few changes in the picking code, which have not been incorporated into the Mac version yet.



Toti's picking code changes compile without problems on my PC.

Bye Fridger

Posted: 07.12.2006, 02:49
by dirkpitt
Toti wrote:
Cham wrote:My compiler said it's in CelestiaUniverse.mm :

Line 44 : return [[[CelestiaSelection alloc] initWithSelection:[self universe]->pick([origin universalCoord],[direction vec3f],[when floatValue],[faintestMag floatValue])] autorelease];

Error : no matching function for call to 'universe::pick(UniversalCoord, Vec3f, float, float)'

Really, I don't know what this is all about ...
I made a few changes in the picking code, which have not been incorporated into the Mac version yet.


Fixed.

Posted: 07.12.2006, 03:25
by Cham
Thanks, Dirkpitt

I recompiled Celestia 5 min ago, and it works. Fridger's latest correction to the galaxies appears to be fine.

Posted: 07.12.2006, 03:25
by symaski62

Posted: 07.12.2006, 15:14
by AlexChan
Planets & Moons are look like a star when zoom out from they....
I think they are too bright... I still can see light points inside atmosphere at daytime...

the texture of sun also too dark..
in the old version, the harsh light always hurt my eyes XD

Posted: 10.12.2006, 13:11
by PlutonianEmpire
Our sky under open GL 2.0 is too dark. can this be changed in the SSC to brighten the sky, or does it require code changes?

EDIT: ignore the brightened area. that's just the footprint of the "save screen cap to" dialog box.

Posted: 10.12.2006, 14:46
by Sui Ota
There are some bugs with localization. I tested after adding res_xx.dll and .mo files.

In "Target name: " mode:
1. Typing "Sol", and "/"
2. Selecting planets with tab key
3. Then pressing enter, and in case selected object name is translated, the object is not selected.

And similar problem is in Celestia Browser, under Mac OS X (current CVS).
I can't select satellites nor locations of planets or satellites whose name is localized. And no buttons are invalid.

These problems occur with recent CVS....

Posted: 10.12.2006, 15:42
by dirkpitt
Sui Ota wrote:And similar problem is in Celestia Browser, under Mac OS X (current CVS).
I can't select satellites nor locations of planets or satellites whose name is localized.


This patch seems to fix the problem. Apparently the objectIndex of PlanetarySystem objects is not being initialized with localized names.
This ought to be affecting other platforms (Windows, Linux) too...? Any confirmation?

Code: Select all

Index: body.cpp
===================================================================
RCS file: /cvsroot/celestia/celestia/src/celengine/body.cpp,v
retrieving revision 1.49
diff -d -p --unified=3 -w -r1.49 body.cpp
--- body.cpp   7 Dec 2006 05:43:15 -0000   1.49
+++ body.cpp   10 Dec 2006 15:38:38 -0000
@@ -654,7 +654,7 @@ PlanetarySystem::PlanetarySystem(Star* _
 void PlanetarySystem::addBody(Body* body)
 {
     satellites.insert(satellites.end(), body);
-    objectIndex.insert(make_pair(body->getName(), body));
+    objectIndex.insert(make_pair(body->getName(true), body));
 }
 
 
@@ -707,7 +707,7 @@ void PlanetarySystem::replaceBody(Body*
     }
 
     // Add the replacement to the object index
-    objectIndex.insert(make_pair(newBody->getName(), newBody));
+    objectIndex.insert(make_pair(newBody->getName(true), newBody));
 }
 
 


Edit: please ignore this patch - it appears to break things.

Posted: 10.12.2006, 16:08
by Vincent
dirkpitt wrote:This patch seems to fix the problem. Apparently the objectIndex of PlanetarySystem objects is not being initialized with localized names.
This ought to be affecting other platforms (Windows, Linux) too...? Any confirmation?

In Windows, children objects and their parent can be selected from their localized name in the Text Input Console. Isn't it the expected behaviour ? As for locations, their name appears in the console as soon as you enable their rendering.

Dirkpitt, after applying your patch, children objects can be selected neither from their localized nor from their english name. Moreover, object are not found anymore in scripts.