ppmforge

機能

フラクタルを使って星空、雲、星を作る

起動方法

     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]

説明

このコマンドはフラクタルを使って、星空、雲、星を自動的に生成する。
出力はppmファイルを標準出力へ出力する。

パラメータの説明

-clouds
雲を生成する。 デフォールトのフラクタル次元は2.15、power scale factor は 0.75である。
-dimension dimen
フラクタル次元をdimenの値にセットする。
dimenの値はfloatで0から3.0までである。
高い値にするほど混沌とした複雑な形になる。
デフォールトのフラクタル次元は2.4、ただし -cloudsオプションが与えられた場合は2.15になる。
-glaciers level
星の表面の低い緯度のところに氷をおく度合を調節する パラメータlevelをセットする。
値はfloatで、高い値にするほど氷河期の様に氷で覆われる ところが多くなる。
デフォールトは0.75。
-hour hour
星を生成する時にこちらの向きは何時を表しているかをセットする。
hourの値は0から24で表す。
0から4、20から24の値を使った時は夜の面を見ることになるので星の ほとんどが暗くなる。
このオプションが使われていない時はランダムに時刻をセットする。
-ice level
星の氷冠の大きさを調節する。
デフォールト値の0.4ではほぼ地球と同じ大きさの氷冠を作る。
値が小さいほど氷の大きさが減少し、大きな値にすると顕著に 氷が大きくなる。
levelを100以上にし、-glaciersの値を0.1にすると氷の惑星になる。
-inclination|-tilt angle
星の傾きの値をセットする。
angleの値は-90から90までである。
このオプションが使われていない時は-21.6から 21.6までのランダムな値になる。
-mesh size
フーリエ変換(FFT)に使用するパラメータmeshをセットする。
デフォールトは256x256である。
このmeshの値を大きくするとその分メモリーと計算時間を多く使うことになる。
例えば値を2倍(512x512)にするとメモリーと計算時間はそれぞれ4倍になる。
値は大きい方がきれいな画像になるが計算するマシンの メモリーの大きさなどによって適当な値にした方が良いかも知れない。
特に大きな解像度でフラクタル次元が2.3から3.0の間の時はmeshを 大きい値にした方がきれいな画像が得られる。
-night
星空の画像を作る。
-power factor
フーリエ変換した値を階乗する値を指定する。
factorの値は0以上のfloatで、 デフォールトは星を作る時は1.2、-cloudの時は0.75である。
-saturation sat
星の回りまたは-nightを使用した時の星空にある星の色の飽和度を指定する。
デフォールトの値は125で、これは地球から人間が夜空を見た時の星の色になる。
-seed num
乱数を初期化するための値numを与える。
numの値は同じなら同じ画像が作られる。
もしこのオプションを使用していない時は実行時の日と時間からnumの値を決定する。
-stars fraction
-nightオプション使用時の星空の星の数を調節する値fractionを指定する。
デフォールトの値は100である。
値が大きいほど星の数が多くなる。
-xsize|-width width
作られる画像の横の解像度widthを指定する。
デフォールトの値は256である。
このwidthの値は必ず下のheightの値より大きくなければならない。
もしheightの値より小さい値を指定すると強制的にheightと同じ値になる。
どうしても小さい値にしたければこのコマンドを実行した後で pnmcutなどで加工すること。
-ysize|-height height
作られる画像の縦の解像度heightを指定する。
デフォールトの値は256である。

雲の画像を作る。

ppmforge -cloud -xsize 100 -ysize 100 -seed 10553 -dimension 2.15 -power 0.75 -mesh 256 > cloud.ppm
cloud.ppm

星の画像を作る。

ppmforge -xsize 100 -ysize 100 -seed 10 -dimension 2.00 -power 1.00 -mesh 16 -inclination 13 -hour 12 -ice 0.10 -glaciers 0.75 -stars 100 -saturation 5.0
> star.ppm

star.ppm

星空の画像を作る。

ppmforge -night -xsize 100 -ysize 100 -seed 500 -stars 200 > night.ppm
night.ppm

参照

プログラマー/バージョン

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

       Permission to use, copy, modify, and distribute this soft-
       ware 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 im-
       plied warranty.

Home | Contents
abe@injapan.net