Deliberately adding noise?
Posted: 20.06.2010, 07:14
I've been playing around with Phobos models, reading some old posts here, and have had a thought.
From what I've been able to tell, the overall philosophy for Celestia seems to be to make it as accurate a solar-system viewer as possible - to be able to take the most accurate data available about a solar-system body, and display it; and, in the default installation, to /not/ display any data that /isn't/ known of (but being flexible enough to be updated as new information is learned, or if somebody wants to sketch up a Project Orion spaceship). However, while zoomed in closely on John van Vliet's Phobos cmod and textures, it occurred to me that there is one aspect of Phobos which is /not/ being accurately reproduced: its fractal dimension.
Allow me to try an example. Let's say that a given point of Phobos is measured for height or colour, and is found to have a value of 0.5, while the next point over is measured to have 0.6. When Celestia is given a model/texture with this data, and the viewpoint is zoomed so both points can be seen clearly apart form each other, it renders the points between as a smooth slope - say, 0.5, 0.52, 0.54, 0.56, 0.58, and 0.6. However, I would suggest that, given what we know of bodies such as Phobos, such even sequences are the /least/ likely to accurately reproduce the actual terrain; the lumps-and-bumps of real planets are known to be bumpy, and that bumpiness can be measured and quantified, and is sometimes called its 'fractal dimension'.
Is there some way in which Celestia might be modified to add a new rendering option, so that when zooming in on a given surface to the limits of the available textures, that the interpolations between the pixel-points of those textures can have noise added to make them non-smooth? Not enough to go outside the reference points of the texture's surrounding pixels, but enough to bring the rendering closer to the modelled object's true fractal dimension? Or does this level of fiddling depend so much on individual graphics hardware that the entire idea is infeasible?
From what I've been able to tell, the overall philosophy for Celestia seems to be to make it as accurate a solar-system viewer as possible - to be able to take the most accurate data available about a solar-system body, and display it; and, in the default installation, to /not/ display any data that /isn't/ known of (but being flexible enough to be updated as new information is learned, or if somebody wants to sketch up a Project Orion spaceship). However, while zoomed in closely on John van Vliet's Phobos cmod and textures, it occurred to me that there is one aspect of Phobos which is /not/ being accurately reproduced: its fractal dimension.
Allow me to try an example. Let's say that a given point of Phobos is measured for height or colour, and is found to have a value of 0.5, while the next point over is measured to have 0.6. When Celestia is given a model/texture with this data, and the viewpoint is zoomed so both points can be seen clearly apart form each other, it renders the points between as a smooth slope - say, 0.5, 0.52, 0.54, 0.56, 0.58, and 0.6. However, I would suggest that, given what we know of bodies such as Phobos, such even sequences are the /least/ likely to accurately reproduce the actual terrain; the lumps-and-bumps of real planets are known to be bumpy, and that bumpiness can be measured and quantified, and is sometimes called its 'fractal dimension'.
Is there some way in which Celestia might be modified to add a new rendering option, so that when zooming in on a given surface to the limits of the available textures, that the interpolations between the pixel-points of those textures can have noise added to make them non-smooth? Not enough to go outside the reference points of the texture's surrounding pixels, but enough to bring the rendering closer to the modelled object's true fractal dimension? Or does this level of fiddling depend so much on individual graphics hardware that the entire idea is infeasible?