POV-Ray : Newsgroups : povray.binaries.images : Cratered asteroid - how to improve? : Re: Cratered asteroid - how to improve? Server Time
7 Aug 2024 03:21:03 EDT (-0400)
  Re: Cratered asteroid - how to improve?  
From: EagleSun
Date: 22 Jun 2006 22:45:00
Message: <web.449b54794a84f22cd50a96210@news.povray.org>
=?ISO-8859-1?Q?J=F6rg_=27Yadgar=27_Bleimann?= <yaz### [at] gmxde> wrote:


> But the resulting scene is still pretty far from a real asteroid, I
> think... for comparison, I added an image from the 2000/01 NASA NEAR
> mission to asteroid Eros.
>
> On a real asteroid, you find crater formations in all stages of
> degradation by micro-impact erosion, with younger craters obliterating
> the older ones. And when looked upon close, even young craters don't
> have razor-sharp rims, but are softened.
>
> I doubt whether simply adding small- to medium-scale noise will do the
> trick... is there a way to modify the crackle function itself (which,
> unfortunately, is not documented in the PoV-Ray on-screen manual) to
> produce less sharp-rimmed craters? And how do I get the craters really
> obliterating older ones instead of just adding up to the existing relief?
>
> See you in Khyberspace!
>
> Yadgar
>
> Now playing: Whipping Boy (Elton John)


I suggest you find (or render) height data of craters, then apply the image
as a map to your iso-ellipsoid.

Here's my macro for rendering planets using height data.... Although it
applies to spheres, I think some modifications to it can be applied to
ellipsoids.

#macro LandSurface(_radius, _hirelief, _lorelief, _albedo,
_landmapimagetype, _landmap, _landbumpimagetype, _landbump)
 #local _planetradius=_radius*unitscale;
 #local _planethirelief=_hirelief*unitscale;
 #local _planetlorelief=_lorelief*unitscale;
 #local _planetdelta=_planethirelief-_planetlorelief;
 #local fn_PlanetBump=function{
  pigment{
   image_map{
    map_image(_landbumpimagetype, _landbump)
    map_type 1
    //once
    interpolate 2
   }
  }
 }
 isosurface
 {
  function {
   f_sphere(x, y, z, (_planetradius+_planetlorelief))-(fn_PlanetBump(x, y,
z).red*_planetdelta)
  }
  contained_by {
   sphere{
    0,(_planetradius+_planethirelief)
   }
  }
  accuracy surface_accuracy*unitscale
  evaluate 0.6 5 0.7
  texture
  {
   pigment
   {
    image_map
    {
     map_image(_landmapimagetype, _landmap)
     map_type 1
    }
   }
   finish
   {
    ambient 0
    brilliance land_brilliance
    albedo(_albedo)
   }
  }
 }
#end

#declare jpeg_type = 100;
#declare png_type = 200;
#declare gif_type = 300;
#macro map_image(image_type, image_name)
 #switch (image_type)
 #case (jpeg_type)
  jpeg image_name
  #break
 #case (png_type)
  png image_name
  #break
 #case (gif_type)
  gif image_name
  #break
 #end
#end


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.