The satellite imagery i am rendering is not realistic does not look good. So i was planning to improve things through code(like adding noise to data or using different overlay texture for different objects for improving their realism ). I don't have any concrete ideas to start on this. Can any anybody point to some resources or ideas that have helped them in dealing with this problem. I am using C++ and osgearth (If thats relevant). Thanks

| improve this question | | | | |
  • Are you trying to enhance the existing satelite image with overlays or totally replace it with a completely procedurally generated texture? – MappaGnosis Jun 13 '12 at 7:19
  • I am trying to replace it with procedurally generated texture(using aerial image and other data). – user8119 Jun 13 '12 at 13:33

Have you tried to perform any histogram stretching? If you are using a raw satellite image it will be less visually appealing without any stretching. If you are thinking of using osgearth I would assume that you are using the satellite image for a 3D application? I have worked in the 3D visualization industry for the better part of a decade and all raw satellite images we have dealt with required a histogram stretch. I have been using a Standard Deviation stretch with a value of 2 to 3.5. The value will depend on the terrain you are dealing with (water, forest, inter tidal, snow etc.).

| improve this answer | | | | |

you can check out my answer here about adding noise with python. This may not be fully answer you wanted, but it can may help you...

i hope it helps you...

| improve this answer | | | | |

As you want to procedurally generate an image, noise may not be what you want, certainly not by itself.

I suggest you use your vector data with a polygon patern fill to represent the texture you need for the landcover (I've had success with this in the past, just not with Mapnik2 as per my most recent post). At the edges of the polygons I suggest 'stamping' the perimeter with a semi-transparent overlay to help blend between landcover-types. Such a stamp will also help you control how the blending happens.

To do this you need a series of tileable textures one for each landcover type. Use Photoshop or GIMP to create your textures (say about 256x256 or even less), but make sure you make them seamless to avoid horrible edges when tiling! Depending on your terrain you could also have a baselayer 'wash' of a coloured DTM height map, which you can then blend with the polygon fills. Using your dtm, you could also identify steep slopes and add a scree texture at these locations.

A refinement on this is 'splatting'. This is where you effectively do the same thing as a polygon pattern fill but instead you use a random sample portion of a larger texture that is increasingly trasnparent away from the centre. You then apply a random rotation to that and apply that at regular intervals across the polygon. My explanation isn't great but do a search on splatting and you'll find lots of documentation on it.

And now the easy way: You could also try using software like Terragen, World Construction Set or L3DT. All of these have methods for procedurally defining textures based on height, slope, landcover etc. plus some lighting effects and much more. They have different levels of 'free-ness' though.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.