This post is an aggregration of multiple threads created on google plus and additional findings, the scattered nature of those threads made it impossible to find all the information in one place hence this post. It's also a work in progress with some blank spots- help is welcome!
(I've mostly moved to google plus which is great for mini-blogging (as opposed to the micro blogging of twitter and full size regular blogger blogging) and has very good engagement once you find good people to put in your circles. I expect greater plus/blogger integration in the future probably starting with comments becoming plusified.)
Lunar Elevation Data
Source DTM files are in the IMG files:
http://lroc.sese.asu.edu/data/LRO-L-LROC-5-RDR-V1.0/LROLRC_2001/DATA/SDP/WAC_DTM/
The highest resolution maps are in the 100M.IMG files, which means 100 meters/pixel (which seems large for an object so close as the moon- why don't we have 1 meter per pixel, or 0.1 meter yet?).
I haven't written a script for handling the files that don't completely cover the lunar globe, and will probably use other tools to get that right. (grass gis http://grass.fbk.eu/gdp/index.php?)
TBD detail on file format.
Generating 32-bit elevation tifs with Python
(I've mostly moved to google plus which is great for mini-blogging (as opposed to the micro blogging of twitter and full size regular blogger blogging) and has very good engagement once you find good people to put in your circles. I expect greater plus/blogger integration in the future probably starting with comments becoming plusified.)
From LROC Lunar Map |
Lunar Elevation Data
Source DTM files are in the IMG files:
http://lroc.sese.asu.edu/data/LRO-L-LROC-5-RDR-V1.0/LROLRC_2001/DATA/SDP/WAC_DTM/
The highest resolution maps are in the 100M.IMG files, which means 100 meters/pixel (which seems large for an object so close as the moon- why don't we have 1 meter per pixel, or 0.1 meter yet?).
I haven't written a script for handling the files that don't completely cover the lunar globe, and will probably use other tools to get that right. (grass gis http://grass.fbk.eu/gdp/index.php?)
TBD detail on file format.
Generating 32-bit elevation tifs with Python
Current 32-bit tifs:
https://docs.google.com/open? id= 0BwP06t4a405kNDFhNjE3NTUtNTc2Y S00NjFlLWExNTgtOTBkZjVmM2M0MGM 2
https://docs.google.com/open? id= 0BwP06t4a405kMzA0MGMzY2ItZGJmZ C00NDI2LWE5NmYtYjM1ZTI5MmQ1OWZ h
https://docs.google.com/open? id= 0BwP06t4a405kNzM3ODIyZjktOWM3M C00NDJlLWI3ZGYtNGIwMWRmMWJjYTU z
https://docs.google.com/open?
https://docs.google.com/open?
https://docs.google.com/open?
Conversion to viewable
Not a lot of programs can display those 32-bit tifs correctly, and Blender didn't like them. Get a version of imagemagick with hdri enabled (./configure --enable-hdri when building it from source) so they can be converted to friendlier formats.
Making an easier to view jpg from the 32-bit tifs:convert -define quantum:scale=255.0 -normalize moon.tif moon_fromtif.jpg
And the following is the result:
From LROC Lunar Map |
The jpeg is usable in Blender but doesn't hold up well with a lot of zooming- the 255 levels of elevation possible in a jpeg produce stair step artifacts:
From LROC Lunar Map |
Conversion to blender usable
So Blender could use a 16-bit format like openexr for 255x smoother gradations, use this conversion:
convert -define quantum:scale=255.0 moon.tif moon.exr
The quantum scale there seems like it ought to be 65535.0 but the 255.0 works, and imagemagick identify -verbose shows that the range of values is 65535.0.
Setting up image based displacement + bump in Blender 2.6x Cycles (latest svn)
TBD flesh this out in greater detail
Add | Mesh | UV sphere
Object Modifies | Add Modifier | Subdivision Surface | Render 6
Material | Surface | Use Nodes
Shift-A | Texture | Image Texture | Open moon.exr
Connect the color to the diffuse bsdf, then should see texture on sphere if in texture or render view mode (maybe have to do something to force redraw/update).
Edit Mode | Select all edges
Mesh | UV Unwrap | Sphere projection | Align to object
Connect image texture to color to bw converter and then to displacement input on material output. TBD proper height scaling of craters.
Object Data | Displacement | Method | Both
Link to .blend file:
http://goo.gl/ZrPJ8
UV Sphere Projection Polar Problems
The UV spheres generated by blender have the problem of having triangles instead of quads around the poles. The spherical projection will produce distortion at the poles, smoothing the sphere prior to uv unwrap helps minimize it. I wonder if there is something problematic about making the pole polygons quads because it would involve multiple polygon points and edges right on top of each other.
You can see the problem areas in the uv image below- the nice quad projections become distorted triangles at the top and bottom.
The result is these pinched areas:
Lunar Visual Mosaics
The moon isn't perfectly grey, there are many interesting light and dark features. I haven't located a good texture generated from LROC or Clementine data (LROC would be ideal since it would probably guarantee all visual features line up with elevation features).
http://wms.lroc.asu.edu/lroc/wac_mosaic
http://ser.sese.asu.edu/MOON/clem_color.html
There are some random ones to be found on the web but I haven't tried them yet.
Future
Grass gis http://grass.fbk.eu/gdp
gdal - has python bindings (ubuntu intall python-gdal gdal-bin) http://www.gdal.org/
Turn python generated tiff images into geotiffs
osgearth - uses geotiff output from gdal to produce lod/paged terrain databases viewable in OpenSceneGraph osgviewer.
Use 100M data (the 256P IMG files). Parse dtm within python to do this? Minimum is extracting width x height.
Sources
TBD flesh this out in greater detail
Add | Mesh | UV sphere
Object Modifies | Add Modifier | Subdivision Surface | Render 6
Material | Surface | Use Nodes
Shift-A | Texture | Image Texture | Open moon.exr
Connect the color to the diffuse bsdf, then should see texture on sphere if in texture or render view mode (maybe have to do something to force redraw/update).
Edit Mode | Select all edges
Mesh | UV Unwrap | Sphere projection | Align to object
Connect image texture to color to bw converter and then to displacement input on material output. TBD proper height scaling of craters.
Object Data | Displacement | Method | Both
Link to .blend file:
http://goo.gl/ZrPJ8
From LROC Lunar Map |
UV Sphere Projection Polar Problems
The UV spheres generated by blender have the problem of having triangles instead of quads around the poles. The spherical projection will produce distortion at the poles, smoothing the sphere prior to uv unwrap helps minimize it. I wonder if there is something problematic about making the pole polygons quads because it would involve multiple polygon points and edges right on top of each other.
You can see the problem areas in the uv image below- the nice quad projections become distorted triangles at the top and bottom.
The result is these pinched areas:
Lunar Visual Mosaics
The moon isn't perfectly grey, there are many interesting light and dark features. I haven't located a good texture generated from LROC or Clementine data (LROC would be ideal since it would probably guarantee all visual features line up with elevation features).
http://wms.lroc.asu.edu/lroc/wac_mosaic
http://ser.sese.asu.edu/MOON/clem_color.html
There are some random ones to be found on the web but I haven't tried them yet.
Future
Grass gis http://grass.fbk.eu/gdp
gdal - has python bindings (ubuntu intall python-gdal gdal-bin) http://www.gdal.org/
Turn python generated tiff images into geotiffs
osgearth - uses geotiff output from gdal to produce lod/paged terrain databases viewable in OpenSceneGraph osgviewer.
Use 100M data (the 256P IMG files). Parse dtm within python to do this? Minimum is extracting width x height.
Sources
Original discussions that originated this post: