ppmforge(1) - phpMan

Command: man perldoc info search(apropos)  


Ppmforge User Manual(0)                                                   Ppmforge User Manual(0)



NAME
       ppmforge - fractal forgeries of clouds, planets, and starry skies

SYNOPSIS
       ppmforge

       [-clouds] [-night] [-dimension dimen] [-hour hour] [-inclination|-tilt angle] [-mesh size]
       [-power factor] [-glaciers level] [-ice level]  [-saturation  sat]  [-seed  seed]  [-stars
       fraction] [{-xsize|-width} width] [{-ysize|-height} height]


DESCRIPTION
       This program is part of Netpbm(1).

       ppmforge generates three kinds of ``random fractal forgeries,'' the term coined by Richard
       F. Voss of the IBM Thomas J. Watson Research Center for seemingly  realistic  pictures  of
       natural objects generated by simple algorithms embodying randomness and fractal self-simi-
       larity.  The techniques used by ppmforge are essentially those given by Voss[1],  particu-
       larly the technique of spectral synthesis explained in more detail by Dietmar Saupe[2].

       The  program  generates two varieties of pictures: planets and clouds, which are just dif-
       ferent renderings of data generated in an identical manner, illustrating the unity of  the
       fractal structure of these very different objects.  A third type of picture, a starry sky,
       is synthesised directly from pseudorandom numbers.

       The generation of planets or clouds begins with the preparation of an array of random data
       in  the  frequency domain.  The size of this array, the ``mesh size,'' can be set with the
       -mesh option; the larger the mesh the more realistic the pictures but the calculation time
       and  memory  requirement increases as the square of the mesh size.  The fractal dimension,
       which you can specify with the -dimension option, determines the roughness of the  terrain
       on  the  planet  or  the  scale  of  detail  in  the  clouds.  As the fractal dimension is
       increased, more high frequency components are added into the random mesh.

       Once the mesh is generated, an inverse two dimensional Fourier transform is performed upon
       it.   This converts the original random frequency domain data into spatial amplitudes.  We
       scale the real components that result from the Fourier transform into numbers from 0 to  1
       associated  with each point on the mesh.  You can further modify this number by applying a
       ``power law scale'' to it with the -power option.  Unity scale leaves the numbers  unmodi-
       fied; a power scale of 0.5 takes the square root of the numbers in the mesh, while a power
       scale of 3 replaces the numbers in the mesh with their cubes.  Power law scaling  is  best
       envisioned  by  thinking of the data as representing the elevation of terrain; powers less
       than 1 yield landscapes with vertical scarps that look like glacially-carved valleys; pow-
       ers  greater  than  one  make fairy-castle spires (which require large mesh sizes and high
       resolution for best results).

       After these calculations, we have a array of the specified size  containing  numbers  that
       range from 0 to 1.  ppmforge generates as follows:

       The  randomness  in the image is limited before Netpbm 10.37 (December 2006) -- if you run
       the program twice in the same second, you may get identical output.



       Clouds A color map is created that ranges from pure blue to white by increasing  admixture
              (desaturation) of blue with white.  Numbers less than 0.5 are colored blue, numbers
              between 0.5 and 1.0 are colored with corresponding levels of white, with 1.0  being
              pure white.


       Planet The mesh is projected onto a sphere.  Values less than 0.5 are treated as water and
              values between 0.5 and 1.0 as land.  The water areas are  colored  based  upon  the
              water  depth,  and  land based on its elevation.  The random depth data are used to
              create clouds over the oceans.  An atmosphere approximately  like  the  Earth's  is
              simulated; its light absorption is calculated to create a blue cast around the limb
              of the planet.  A function that rises from 0 to 1 based on latitude is modulated by
              the  local  elevation  to  generate  polar  ice caps--high altitude terrain carries
              glaciers farther from the pole.  Based on the position of the star with respect  to
              the  observer, the apparent color of each pixel of the planet is calculated by ray-
              tracing from the star to the planet to the observer and applying a  lighting  model
              that  sums  ambient light and diffuse reflection (for most planets ambient light is
              zero, as their primary star is the only source of illumination).  Additional random
              data are used to generate stars around the planet.


       Night  A  sequence of pseudorandom numbers is used to generate stars with a user specified
              density.


       Cloud pictures always contain 256 or fewer colors and  may  be  displayed  on  most  color
       mapped  devices  without  further processing.  Planet pictures often contain tens of thou-
       sands of colors which must be compressed with pnmquant or ppmdither before encoding  in  a
       color  mapped  format.  If the display resolution is high enough, ppmdither generally pro-
       duces better looking planets.  pnmquant tends to create discrete color bands, particularly
       in  the oceans, which are unrealistic and distracting.  The number of colors in starry sky
       pictures generated with the -night option depends on the value specified for  -saturation.
       Small  values  limit the color temperature distribution of the stars and reduce the number
       of colors in the image.  If the -saturation is set to 0, none of the stars will be colored
       and  the resulting image will never contain more than 256 colors.  Night sky pictures with
       many different star colors often look best when color compressed by pamdepth  rather  than
       pnmquant  or  ppmdither.   Try newmaxval settings of 63, 31, or 15 with pamdepth to reduce
       the number of colors in the picture to 256 or fewer.



OPTIONS
       You can abbreviate any options to its shortest unique prefix.



       -clouds
              Generate clouds.  An image of fractal clouds is generated.  Selecting  clouds  sets
              the default for fractal dimension to 2.15 and power scale factor to 0.75.


       -dimension dimen
               Sets the fractal dimension to the specified dimen, which may be any floating point
              value between 0 and 3.  Higher fractal dimensions create more  ``chaotic''  images,
              which require higher resolution output and a larger FFT mesh size to look good.  If
              no dimension is specified, 2.4 is used when generating planets and 2.15 for clouds.


       -glaciers level
              The floating point level setting controls the extent  to  which  terrain  elevation
              causes ice to appear at lower latitudes.  The default value of 0.75 makes the polar
              caps extend toward the equator across high terrain and forms glaciers in the  high-
              est mountains, as on Earth.  Higher values make ice sheets that cover more and more
              of the land surface, simulating planets in the midst of an ice age.   Lower  values
              tend  to  be  boring, resulting in unrealistic geometrically-precise ice cap bound-
              aries.


       -hour hour
              When generating a planet, ppmforge uses hour as the  "hour  angle  at  the  central
              meridian."   If you specify -hour 12, for example, the planet will be fully illumi-
              nated, corresponding to high noon at the longitude at the  center  of  the  screen.
              You  can  specify  any  floating  point value between 0 and 24 for hour, but values
              which place most of the planet in darkness (0 to 4 and 20 to 24)  result  in  cres-
              cents which, while pretty, don't give you many illuminated pixels for the amount of
              computing that's required.  If no -hour option is specified, a random hour angle is
              chosen, biased so that only 25% of the images generated will be crescents.


       -ice level
              Sets  the  extent  of  the  polar  ice caps to the given floating point level.  The
              default level of 0.4 produces ice caps similar to those of the Earth.  Smaller val-
              ues  reduce the amount of ice, while larger -ice settings create more prominent ice
              caps.  Sufficiently large values, such as 100 or more, in  conjunction  with  small
              settings for -glaciers (try 0.1) create "ice balls" like Europa.


       -inclination|-tilt angle
              The  inclination  angle  of  the  planet  with regard to its primary star is set to
              angle, which can be any floating point value from -90 to 90.  The inclination angle
              can be thought of as specifying, in degrees, the ``season'' the planet is presently
              experiencing or, more precisely, the latitude at which the star transits the zenith
              at  local  noon.   If 0, the planet is at equinox; the star is directly overhead at
              the equator.  Positive values represent summer in the northern hemisphere, negative
              values summer in the southern hemisphere.  The Earth's inclination angle, for exam-
              ple, is about 23.5 at the June solstice, 0 at the equinoxes in March and September,
              and -23.5 at the December solstice.  If no inclination angle is specified, a random
              value between -21.6 and 21.6 degrees is chosen.


       -mesh size
              A mesh of size by size will be used for the fast  Fourier  transform  (FFT).   Note
              that  memory  requirements and computation speed increase as the square of size; if
              you double the mesh size, the program will use four times the memory and  run  four
              times as long.  The default mesh is 256x256, which produces reasonably good looking
              pictures while using half a megabyte for the 256x256 array of single precision com-
              plex  numbers  required  by the FFT.  On machines with limited memory capacity, you
              may have to reduce the mesh size to avoid running out of RAM.  Increasing the  mesh
              size  produces better looking pictures; the difference becomes particularly notice-
              able when generating high resolution images with relatively high fractal dimensions
              (between 2.2 and 3).


       -night A  starry  sky  is generated.  The stars are created by the same algorithm used for
              the stars that surround planet pictures, but the  output  consists  exclusively  of
              stars.


       -power factor
              Sets  the  "power factor" used to scale elevations synthesised from the FFT to fac-
              tor, which can be any floating point number greater than zero.   If  no  factor  is
              specified  a  default  of  1.2  is  used if a planet is being generated, or 0.75 if
              clouds are selected by the -clouds option.  The result of the FFT  image  synthesis
              is an array of elevation values between 0 and 1.  A non-unity power factor exponen-
              tiates each of these elevations to the specified power.  For example, a power  fac-
              tor  of  2  squares  each value, while a power factor of 0.5 replaces each with its
              square root.  (Note that exponentiating values between 0 and 1 yields  values  that
              remain  within that range.)  Power factors less than 1 emphasise large-scale eleva-
              tion changes at the expense of small variations.   Power  factors  greater  than  1
              increase  the  roughness  of  the  terrain  and,  like high fractal dimensions, may
              require a larger FFT mesh size and/or higher screen resolution to look good.


       -saturation sat
              Controls the degree of color saturation of the stars that surround planet  pictures
              and  fill  starry  skies  created with the -night option.  The default value of 125
              creates stars which resemble the sky as seen by the human eye from Earth's surface.
              Stars  are  dim; only the brightest activate the cones in the human retina, causing
              color to be perceived.  Higher values of sat approximate the  appearance  of  stars
              from Earth orbit, where better dark adaptation, absence of skyglow, and the concen-
              tration of light from a given star onto a smaller area of the retina thanks to  the
              lack  of  atmospheric  turbulence enhances the perception of color.  Values greater
              than 250 create ``science fiction'' skies that, while pretty, don't occur  in  this
              universe.

              Thanks  to  the inverse square law combined with Nature's love of mediocrity, there
              are many, many dim stars for every bright one.   This  population  relationship  is
              accurately  reflected  in  the skies created by ppmforge.  Dim, low mass stars live
              much longer than bright massive stars, consequently there are  many  reddish  stars
              for every blue giant.  This relationship is preserved by ppmforge.  You can reverse
              the proportion, simulating the sky as seen in a starburst galaxy, by  specifying  a
              negative sat value.


       -seed num
              Sets the seed for the random number generator to the integer num.  The seed used to
              create each picture is displayed on standard output  (unless  suppressed  with  the
              -quiet  option).   Pictures  generated with the same seed will be identical.  If no
              -seed is specified, a random seed derived from the date and time  will  be  chosen.
              Specifying an explicit seed allows you to re-render a picture you particularly like
              at a higher resolution or with different viewing parameters.


       -stars fraction
              Specifies the percentage of pixels, in tenths of a percent, which  will  appear  as
              stars,  either surrounding a planet or filling the entire frame if -night is speci-
              fied.  The default fraction is 100.


       -xsize|-width width
              Sets the width of the generated image to width pixels.  The default  width  is  256
              pixels.  Images must be at least as wide as they are high; if a width less than the
              height is specified, it will be increased to equal the height.  If you must have  a
              long  skinny  image,  make a square one with ppmforge, then use pamcut to extract a
              portion of the shape and size you require.


       -ysize|-height height
              Sets the height of the generated image to height pixels.  The default height is 256
              pixels.   If the height specified exceeds the width, the width will be increased to
              equal the height.




LIMITATIONS
       The algorithms require the output image to be at least as wide as  it  is  high,  and  the
       width  to  be  an even number of pixels.  These constraints are enforced by increasing the
       size of the requested image if necessary.

       You may have to reduce the FFT mesh size on machines with 16 bit  integers  and  segmented
       pointer architectures.


SEE ALSO
       pamcut(1), pamdepth(1), ppmdither(1), pnmquant(1), ppm(1)



       [1]    Voss,  Richard  F.,  ``Random Fractal Forgeries,'' in Earnshaw et. al., Fundamental
              Algorithms for Computer Graphics, Berlin: Springer-Verlag, 1985.


       [2]    Peitgen, H.-O., and Saupe, D. eds.,  The  Science  Of  Fractal  Images,  New  York:
              Springer Verlag, 1988.




AUTHOR
       John Walker
       Autodesk SA
       Avenue des Champs-Montants 14b
       CH-2074 MARIN
       Suisse/Schweiz/Svizzera/Svizra/Switzerland
           Usenet:kelvin AT Autodesk.com
           Fax:038/33 88 15
           Voice:038/33 76 33

       Permission  to  use,  copy, modify, and distribute this software and its documentation for
       any purpose and without fee is hereby granted, without  any  conditions  or  restrictions.
       This software is provided ``as is'' without express or implied warranty.


   PLUGWARE!
       If  you like this kind of stuff, you may also enjoy ``James Gleick's Chaos--The Software''
       for MS-DOS, available for $59.95 from your local software store or directly from Autodesk,
       Inc.,  Attn:  Science  Series,  2320  Marinship Way, Sausalito, CA 94965, USA.  Telephone:
       (800) 688-2344 toll-free or, outside  the  U.S.  (415)  332-2344  Ext  4886.   Fax:  (415)
       289-4718.  ``Chaos--The Software'' includes a more comprehensive fractal forgery generator
       which creates three-dimensional landscapes as well as clouds and planets, plus  five  more
       modules  which  explore  other  aspects  of  Chaos.  The user guide of more than 200 pages
       includes an introduction by James Gleick and detailed explanations by Rudy Rucker  of  the
       mathematics and algorithms used by each program.

DOCUMENT SOURCE
       This  manual page was generated by the Netpbm tool 'makeman' from HTML source.  The master
       documentation is at

              http://netpbm.sourceforge.net/doc/ppmforge.html

netpbm documentation                     25 October 1991                  Ppmforge User Manual(0)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-04-26 09:20 @52.14.221.113 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!