Hello everyone!
I'm new of Celestia and I'm trying to survive in this jungle of code
I have some questions about the same topic.
I noticed that Celestia uses 128-bit fixed point (64.64) numbers for high-precision celestial coordinates (BigFix, good name for this class
![Smile :)](./images/smilies/icon_smile.gif)
).
The class UniversalCoord contains BigFix x,y,z and the struct RigidTransform contains both translation (UniversalCoord) both rotation (Quatd).
Observer.situation is a Rigidtransform which indicates camera position.
Is it right?
These are my questions:
-I can't understand the usage of FrameOfReference
-where does camera position (expressed in 128-bit) is converted in float for rendering?
-I read that "object positions are stored at two different scales--light years for stars, and kilometers for objects within a star system" to avoid using 128-bit. The position of the objects in a star system are expressed respect to the star in the centre of that star system? Where does this positions are converted in a unique reference system for rendering? Does we have multiple rendering steps in different scales? If so, how is managed the different scale between the rendering steps? I mean, if we have a star at 1 light year of distance from the camera and a planet at 1 kilometer from
the camera, why don't they seem in the same position (1 unit from camera in both cases)?
Thank you in advance for everyone will reply.
Bye