Celestia seems to max out at a FOV of 3" (which isn't bad), but could it not go even deeper than that?
Of course, at such extreme magnifications, doing the math correctly becomes quite difficult. But would it not be a good enough approximation to assume that the observer is an infinite distance away? Instead of doing a transformation for the observer's coordinates, do a transformation for the direction to the observer?
Feature Request and suggestion : Extreme magnification
-
Topic authorchrisobyrne
- Posts: 5
- Joined: 03.08.2004
- With us: 20 years 3 months
- Location: Dublin, Ireland
-
- Site Admin
- Posts: 4211
- Joined: 28.01.2002
- With us: 22 years 10 months
- Location: Seattle, Washington, USA
Re: Feature Request and suggestion : Extreme magnification
chrisobyrne wrote:Celestia seems to max out at a FOV of 3" (which isn't bad), but could it not go even deeper than that?
Of course, at such extreme magnifications, doing the math correctly becomes quite difficult. But would it not be a good enough approximation to assume that the observer is an infinite distance away? Instead of doing a transformation for the observer's coordinates, do a transformation for the direction to the observer?
The problem is that at such small fields of view you start to run into the limits of OpenGL's single-precision floating point arithmetic. Three arcseconds seems to be near the practical limit.
--Chris
-
- Posts: 408
- Joined: 27.03.2002
- With us: 22 years 8 months
- Location: Leiden, The Netherlands
Which you can indeed sometimes notice: the image seems to wiggle slightly at high magnification.
Lapinism matters!
http://settuno.com/
http://settuno.com/
Re: Feature Request and suggestion : Extreme magnification
chris wrote:The problem is that at such small fields of view you start to run into the limits of OpenGL's single-precision floating point arithmetic. Three arcseconds seems to be near the practical limit.
--Chris
If you change the way you do the transformation, then the single-precision limit should not be a problem, as the distance of the observer from the scene no longer becomes relevant.
I'm not an OpenGL programmer, but it should surely be possible to say "render this scene for an observer at an infinite distance in this direction" instead of "render this scene for an observer at these coordinates". The math for the former are that bit easier than the math for the latter...