Dit is de opdracht ppmforge die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
ppmforge - fractale vervalsingen van wolken, planeten en sterrenhemels
KORTE INHOUD
ppmvergeten [-wolken] [-nacht] [-Afmetingen dimensie] [-uur uur] [-helling|-kanteling hoek]
[-gaas grootte] [-Power factor] [-gletsjers niveau] [-ijs niveau] [-verzadiging zat]
[-zaad zaad] [-sterren fractie] [-xgrootte|-breedte Breedte] [-ygrootte|-hoogte Hoogte]
PRODUCTBESCHRIJVING
ppmvergeten genereert drie soorten ‘willekeurige fractale vervalsingen’, de term die door Richard is bedacht
F. Voss van het IBM Thomas J. Watson Research Center voor schijnbaar realistische foto's van
natuurlijke objecten gegenereerd door eenvoudige algoritmen die willekeur en fractale zelf-
gelijkenis. De technieken die gebruikt worden door ppmvergeten zijn in wezen die gegeven door Voss[1],
in het bijzonder de techniek van spectrale synthese die Dietmar gedetailleerder uitlegt
Saupe[2].
Het programma genereert twee soorten afbeeldingen: planeten en wolken, die gewoon zijn
verschillende weergaven van gegevens die op identieke wijze zijn gegenereerd, wat de eenheid illustreert
de fractale structuur van deze zeer verschillende objecten. Een derde type foto, een sterrenhemel
sky, wordt rechtstreeks gesynthetiseerd uit pseudowillekeurige getallen.
Het genereren van planeten of wolken begint met het voorbereiden van een reeks willekeurige gegevens
in het frequentiedomein. De grootte van deze array, de ``maaswijdte'', kan worden ingesteld met de
-gaas keuze; hoe groter de mesh, hoe realistischer de afbeeldingen, maar ook de rekentijd
en de geheugenbehoefte neemt toe naarmate het kwadraat van de maaswijdte. De fractale dimensie,
die u kunt opgeven met de -Afmetingen optie, bepaalt de ruwheid van het terrein
op de planeet of de schaal van details in de wolken. Zoals de fractale dimensie is
toegenomen, worden er meer hoogfrequente componenten toegevoegd aan de willekeurige mesh.
Zodra de mesh is gegenereerd, wordt er een inverse tweedimensionale Fourier-transformatie uitgevoerd
Het. Hierdoor worden de oorspronkelijke willekeurige frequentiedomeingegevens omgezet in ruimtelijke amplitudes. Wij
schaal de echte componenten die het resultaat zijn van de Fourier-transformatie in getallen van 0 tot 1
geassocieerd met elk punt op de mesh. U kunt dit nummer verder wijzigen door een toe te passen
``machtswetschaal'' erbij met de -Power keuze. Eenheidsschaal laat de cijfers achter
ongewijzigd; een machtsschaal van 0.5 neemt de vierkantswortel van de getallen in de mesh, terwijl a
machtsschaal van 3 vervangt de cijfers in de mesh door hun kubussen. Schaling van de machtswet wel
kan het beste worden voorgesteld door de gegevens te beschouwen als representatief voor de hoogte van het terrein; krachten
minder dan 1 levert landschappen op met verticale steile hellingen die lijken op door gletsjers uitgehouwen valleien;
krachten groter dan één maken torenspitsen van sprookjes (die grote maaswijdten vereisen en hoge
resolutie voor de beste resultaten).
Na deze berekeningen hebben we een array van de opgegeven grootte met daarin getallen
bereik van 0 tot 1. De pixmaps worden als volgt gegenereerd:
wolken Er wordt een kleurenkaart gemaakt die varieert van puur blauw tot wit door te vergroten
vermenging (desaturatie) van blauw met wit. Getallen kleiner dan 0.5 zijn gekleurd
blauw, getallen tussen 0.5 en 1.0 zijn gekleurd met overeenkomstige niveaus van
wit, waarbij 1.0 puur wit is.
Planeet Het gaas wordt op een bol geprojecteerd. Waarden kleiner dan 0.5 worden behandeld als water
en waarden tussen 0.5 en 1.0 als land. De watergebieden zijn gekleurd op basis van
de waterdiepte en het land op basis van de hoogte. De willekeurige dieptegegevens zijn
gebruikt om wolken boven de oceanen te creëren. Een sfeer ongeveer zoals de
Die van de aarde wordt gesimuleerd; de lichtabsorptie wordt berekend om een blauwe tint te creëren
rond de rand van de planeet. Een functie die stijgt van 0 naar 1 op basis van
De breedtegraad wordt gemoduleerd door de lokale hoogte om poolijskappen te genereren – hoog
hoogte-terrein voert gletsjers verder van de pool af. Gebaseerd op de positie
van de ster ten opzichte van de waarnemer, de schijnbare kleur van elke pixel
de planeet wordt berekend door ray-tracing van de ster naar de planeet naar de
waarnemer en het toepassen van een verlichtingsmodel dat omgevingslicht en diffuus licht optelt
reflectie (voor de meeste planeten is het omgevingslicht nul, aangezien hun primaire ster de
enige bron van verlichting). Aanvullende willekeurige gegevens worden gebruikt om sterren te genereren
rond de planeet.
Night Een reeks pseudowillekeurige getallen wordt gebruikt om samen met een gebruiker sterren te genereren
gespecificeerde dichtheid.
Wolkenafbeeldingen bevatten altijd 256 of minder kleuren en kunnen op de meeste kleuren worden weergegeven
toegewezen apparaten zonder verdere verwerking. Planeetfoto's bevatten vaak tientallen
duizenden kleuren waarmee moet worden gecomprimeerd ppmkwant or ppmdither vóór het coderen
in een kleurenkaartformaat. Als de schermresolutie hoog genoeg is, ppmdither algemeen
produceert beter uitziende planeten. ppmkwant heeft de neiging discrete kleurbanden te creëren,
vooral in de oceanen, die onrealistisch en afleidend zijn. Het aantal kleuren
in sterrenhemelfoto's gegenereerd met de -nacht optie is afhankelijk van de opgegeven waarde
-verzadiging. Kleine waarden beperken de kleurtemperatuurverdeling van de sterren en
verminder het aantal kleuren in de afbeelding. Als de -verzadiging is ingesteld op 0, geen van de
sterren worden gekleurd en de resulterende afbeelding zal nooit meer dan 256 kleuren bevatten.
Nachtelijke hemelfoto's met veel verschillende sterrenkleuren zien er vaak het beste uit als de kleuren zijn gecomprimeerd
by pnmdiepte dan ppmkwant or ppmdither. Proberen nieuwmaxval instellingen van 63, 31 of 15
met pnmdiepte om het aantal kleuren in de afbeelding terug te brengen tot 256 of minder.
OPTIES
-wolken Wolken genereren. Er wordt een pixmap van fractale wolken gegenereerd. Wolken selecteren
stelt de standaardwaarde voor fractale dimensie in op 2.15 en de machtsschaalfactor op 0.75.
-Afmetingen dimensie
Stelt de fractale dimensie in op de opgegeven waarde dimensie, wat zwevend kan zijn
puntwaarde tussen 0 en 3. Hogere fractale dimensies creëren meer ``chaotisch''
afbeeldingen, waarvoor uitvoer met een hogere resolutie en een grotere FFT-maaswijdte nodig zijn
er goed uitzien. Als er geen dimensie is opgegeven, wordt 2.4 gebruikt bij het genereren van planeten
en 2.15 voor wolken.
-gletsjers niveau
Het drijvende punt niveau De instelling bepaalt de mate waarin het terrein zich opheft
zorgt ervoor dat er op lagere breedtegraden ijs verschijnt. De standaardwaarde van 0.75 zorgt ervoor dat de
De poolkappen strekken zich uit naar de evenaar over hoog terrein en vormen daar gletsjers
de hoogste bergen, zoals op aarde. Hogere waarden zorgen ervoor dat ijskappen zich bedekken
steeds meer van het landoppervlak, waarbij planeten midden in een ijs worden gesimuleerd
leeftijd. Lagere waarden zijn doorgaans saai, wat resulteert in onrealistische geometrische
precieze grenzen van de ijskap.
-uur uur
Bij het genereren van een planeet, uur wordt gebruikt als de uurhoek in het midden
meridiaan.'' Als u dat specificeert -uur 12De planeet zal bijvoorbeeld volledig zijn
verlicht, overeenkomend met middaguur op de lengtegraad in het midden van de
scherm. U kunt elke drijvende-kommawaarde tussen 0 en 24 opgeven voor uur, Maar
waarden die het grootste deel van de planeet in duisternis plaatsen (0 tot 4 en 20 tot 24) zijn het resultaat
in halve manen die, hoewel mooi, je niet veel verlichte pixels opleveren voor de
hoeveelheid rekenkracht die nodig is. Als Nee -uur optie is opgegeven, een willekeurige
De uurhoek is zodanig gekozen dat slechts 25% van de gegenereerde afbeeldingen wordt weergegeven
halve manen.
-ijs niveau
Stelt de omvang van de poolijskappen in op het opgegeven drijvende punt niveau. De
het standaardniveau van 0.4 produceert ijskappen die vergelijkbaar zijn met die van de aarde. Kleiner
waarden verminderen de hoeveelheid ijs, terwijl ze groter zijn -ijs instellingen creëren meer
prominente ijskappen. Voldoende grote waarden, zoals 100 of meer, in
combinatie met kleine instellingen voor -gletsjers (probeer 0.1) maak ``ijsballen''
zoals Europa.
-helling|-kanteling hoek
De hellingshoek van de planeet ten opzichte van zijn primaire ster is ingesteld op
hoek, wat elke drijvende-kommawaarde van -90 tot 90 kan zijn. De helling
hoek kan worden gezien als een aanduiding, in graden, van het ‘seizoen’ waarin de planeet zich bevindt
momenteel ervaart of, preciezer gezegd, de breedtegraad waarop de ster
passeert het zenit op lokale middag. Indien 0, bevindt de planeet zich op de equinox; de ster is
direct boven de evenaar. Positieve waarden vertegenwoordigen de zomer in de
noordelijk halfrond, negatieve waarden zomer op het zuidelijk halfrond. De
De hellingshoek van de aarde is bijvoorbeeld ongeveer 23.5 tijdens de zonnewende van juni, en 0 tijdens de zonnewende.
de equinoxen in maart en september, en -23.5 tijdens de zonnewende van december. Als Nee
Als de hellingshoek is opgegeven, is er een willekeurige waarde tussen -21.6 en 21.6 graden
gekozen.
-gaas grootte
Een netwerk van grootte by grootte zal worden gebruikt voor de snelle Fourier-transformatie (FFT). Opmerking
dat de geheugenvereisten en de rekensnelheid toenemen met het kwadraat van grootte;
als je de maaswijdte verdubbelt, zal het programma vier keer zoveel geheugen gebruiken en draaien
vier keer zo lang. De standaard mesh is 256x256, wat redelijk goed oplevert
naar foto's kijken terwijl je een halve megabyte gebruikt voor de 256x256 array van single
precisie complexe getallen vereist door de FFT. Op machines met beperkt geheugen
capaciteit, moet u mogelijk de maaswijdte verkleinen om te voorkomen dat u zonder RAM komt te zitten.
Het vergroten van de maaswijdte levert mooiere afbeeldingen op; het verschil
wordt vooral merkbaar bij het genereren van afbeeldingen met een hoge resolutie
relatief hoge fractale afmetingen (tussen 2.2 en 3).
-nacht Er ontstaat een sterrenhemel. De sterren worden gemaakt door hetzelfde algoritme dat hiervoor wordt gebruikt
de sterren die planeetafbeeldingen omringen, maar de uitvoer bestaat uitsluitend uit
sterren.
-Power factor
Stelt de ``power factor'' in die gebruikt wordt om de hoogtes gesynthetiseerd vanuit de FFT te schalen
factor, wat elk drijvende-kommagetal groter dan nul kan zijn. Als er geen factor is
is opgegeven, wordt standaard 1.2 gebruikt als een planeet wordt gegenereerd, of 0.75 als
wolken worden geselecteerd door de -wolken keuze. Het resultaat van de FFT-afbeelding
synthese is een reeks elevatiewaarden tussen 0 en 1. Een niet-eenheidsmacht
factor exponentieert elk van deze verhogingen tot de opgegeven macht. Voor
elke waarde is bijvoorbeeld een arbeidsfactor van 2 kwadraten, terwijl een arbeidsfactor van 0.5 is
vervangt elk door zijn vierkantswortel. (Merk op dat exponentiërende waarden tussen 0
en 1 levert waarden op die binnen dat bereik blijven.) Machtsfactoren kleiner dan 1
benadrukken grootschalige hoogteverschillen ten koste van kleine variaties.
Vermogensfactoren groter dan 1 verhogen de ruwheid van het terrein en dergelijke
hoge fractale afmetingen, vereisen mogelijk een grotere FFT-maaswijdte en/of een hoger scherm
resolutie om er goed uit te zien.
-verzadiging zat
Regelt de mate van kleurverzadiging van de sterren rondom de planeet
foto's en vul sterrenhemels gemaakt met de -nacht optie. De standaard
waarde van 125 creëert sterren die lijken op de hemel zoals gezien door het menselijk oog
Aardoppervlak. Sterren zijn zwak; alleen de helderste activeren de kegels in de
menselijk netvlies, waardoor kleur wordt waargenomen. Hogere waarden van zat benaderend
het verschijnen van sterren vanuit een baan om de aarde, waar betere aanpassing aan het donker ontbreekt
van skyglow en de concentratie van licht van een bepaalde ster op een kleiner gebied
van het netvlies dankzij het ontbreken van atmosferische turbulentie verbetert de
perceptie van kleur. Waarden groter dan 250 creëren een 'science fiction'-hemel
die, hoewel mooi, niet voorkomen in dit universum.
Dankzij de omgekeerde kwadratenwet gecombineerd met de liefde van de natuur voor middelmatigheid,
er zijn heel veel zwakke sterren voor elke heldere. Deze bevolking
relatie wordt nauwkeurig weerspiegeld in de lucht gecreëerd door ppmvergeten. Dim, laag
Massasterren leven veel langer dan heldere massieve sterren, en dat is dus het geval
veel roodachtige sterren voor elke blauwe reus. Deze relatie wordt bewaard door
ppmvergeten. Je kunt de verhouding omkeren en de lucht simuleren zoals te zien in a
starburst-stelsel, door een negatief te specificeren zat waarde.
-zaad num Stelt het zaad voor de generator van willekeurige getallen in op het gehele getal num. Het gebruikte zaad
om elke foto te maken, wordt weergegeven op de standaarduitvoer (tenzij onderdrukt met
the -rustig keuze). Afbeeldingen die met hetzelfde zaad zijn gegenereerd, zullen identiek zijn.
Zo nee -zaad is opgegeven, wordt er een willekeurig zaad afgeleid van de datum en tijd
gekozen. Door een expliciete kiem op te geven, kunt u een afbeelding opnieuw renderen
vooral zoals bij een hogere resolutie of met verschillende weergaveparameters.
-sterren fractie
Specificeert het percentage pixels, in tienden van een procent, dat zal verschijnen als
sterren, die een planeet omringen of het hele frame vullen -nacht is
gespecificeerd. De standaard fractie is 100.
-xgrootte|-breedte Breedte
Stelt de breedte van de gegenereerde afbeelding in Breedte pixels. De standaardbreedte is 256
pixels. Afbeeldingen moeten minstens even breed als hoog zijn; indien een breedte kleiner dan
Als de hoogte is opgegeven, wordt deze verhoogd totdat deze gelijk is aan de hoogte. Als je moet
heb een lange magere pixmap, maak er een vierkante van ppmvergeten, gebruik dan pnmsnede naar
extraheer een deel van de gewenste vorm en grootte.
-ygrootte|-hoogte Hoogte
Stelt de hoogte van de gegenereerde afbeelding in Hoogte pixels. De standaardhoogte is
256 pixels. Als de opgegeven hoogte groter is dan de breedte, is de breedte
verhoogd tot gelijke hoogte.
Alle vlaggen kunnen worden afgekort tot hun kortste unieke voorvoegsel.
Gebruik ppmforge online met behulp van onworks.net-services