Home Creatief met POVRay Het uiterlijk der dingen Camera
 

Toch maar Versie 3 gebruiken?

Onder de cursisten doet het verhaal de ronde dat ik met versie 2 werk omdat ik van de nieuwste ontwikkelingen niet op de hoogte zou zijn. Ik wil ten stelligste ontkennen, van hoog tot laag, dat ik hoe en waar dan ook maar ouderwets zou zijn. De reden dat Povray versie 2 gebruikt wordt is simpel: niet alle cursisten kunnen versie 3 draaien. Maar nader onderzoek en een paar onverwachte ontwikkelingen hebben mij duidelijk gemaakt dat ik beter met versie 3 verder kan gaan. Het eerste probleem was: de nieuwe versie is zo groot (850 Kb) dat die niet op een gewone floppy past. Wel op een HD-floppy maar niet iedereen heeft zo'n diskdrive. Het idee om het Povray 3 programma om te zetten tot een gecomprimeerde zichzelf uitpakkende programma-file blijkt te werken. Beter dan gedacht. Meestal ben je blij als uitvoerbare code zich 20 procent laat comprimeren. In ons geval, ik gebruik DCSquish, is het zelfs bijna 50 procent. Daarmee krimpt de programmafile povray.gtp tot 440 kb en past dus op een gewone floppydisk. Bij het uitpakken van de programmafile in het geheugen wordt niet veel extra ruimte verbruikt. Een intern computergeheugen van 1 Mb is voldoende. Zelfs mensen met een harddisk hebben met de gecomprimeerde variant een voordeel: de file is korter en dus sneller van harddisk te lezen. Die tijdwinst wordt wel wat minder door de tijd die het uitpakken in het geheugen nodig heeft, maar netto win je tijd.

Vernieuwen

Cursisten die het wensen kunnen de beschreven .ini files (zie later) en ook een met DCSquish gecomprimeerde povray.gtp file op de meegebrachte disk laten zetten.

Noot redactie: lezers van deze cursus kunnen hun oude disk (PD disk C 138 of C 139) naar het secretariaat opsturen. We zullen hem gratis voor u updaten.

GTP?

Ik ga niet opnieuw uitleggen hoe het zit met programmafiles die eindigen op .gtp. Dat heb ik al eerder verteld in deze cursus. Als u de file dubbelklikt met de muis en de computer reageert met 'show, cancel, print?', lees dan aflevering 2 (ST uitgave 69 blz.23) nog maar eens door.

Initialiseren

Het allereerste dat Povray wil gaan doen als die actief wordt is: lezen van een file met de naam povray.ini. Staat die op dezelfde plek als waar de zojuist geactiveerde povray.gtp file zelf staat, dan gaat dat zonder hapering. Maar kan Povray de file niet op de afgesproken plaats vinden dan heeft die zelf nog wat default-instellingen in zijn broekzak. Helaas zijn dat beroerde instellingen die onder TOS tot vastlopen kunnen leiden.

De volgende handeling van Povray is nazien met welke file hij geactiveerd is. Heb je een moderne desktop dan kan je Povray als een ikoon op de desktop leggen, een file pakken en met de muis bovenop het ikoon slepen. Heb je een oudere TOS in de machine dan lukt dat niet. Ik raad iedereen dan ook aan om via het desktop menu met 'install application' de Povray.gtp verantwoordelijk te verklaren voor files die eindigen op .ini. Zie de afbeelding. Vergeet niet om een 'save desktop' te doen om deze instelling ook de volgende keer dat de computer aan gaat, weer beschikbaar te hebben. In listing 1 heb ik de inhoud van de door ons gebruikte povray.ini file gezet. Je ziet: dat is veel. Gelukkig is alles voor ons goed leesbaar alhoewel we nu nog niet weten wat het allemaal betekent. In elk geval hoeven we die lastige .def files niet meer te gebruiken want, neem me niet kwalijk, cryptische uitdrukkingen als '-B=+' kunnen mij gestolen worden!

Voor het goede begrip zal ik kort en bondig duidelijk maken hoe we van het gedrag van Povray versie 3 kunnen profiteren. Ten eerste: laat die povray.ini file onveranderd. De instellingen daarin zijn goed bruikbaar.

In plaats van een .def file die behoort bij een scenebeschrijving in een .pov file hebben we nu te maken met een .ini en een .pov. Wat we vroeger met een .def deden, doen we nu met een .ini. Kijk maar in listing 2. Daar staat een typisch voorbeeld. We geven als eerste op welke scenebeschrijving doorgerekend gaat worden. Dan geven we voorkeuren op zoals de kwaliteit van het renderen, hoeveel pixels, waar verder benodigde spullen te vinden kunnen zijn (bibliotheken) en nog wat zaken. Onderaan staan dingen die ik af en toe wil veranderen. Ik zou zeggen, zet je favoriete teksteditor aan de gang, haal een eerder gebruikte .def file op, lees ook eventjes de .ini file in van listing 2 en ga intelligent de .ini file veranderen aan de hand van wat je vindt in de oude def-file. Vergeet niet om de.ini file te saven onder de juiste naam. Een tip voor mensen die Tempus gebruiken: zet de boel in 'Quelltext modus'. Soms willen sommige tekstverwerkers niet snappen dat de regels in de .ini file op de zgn. Unix-manier een 'einde van de regel' symbool gebruiken. Doe een proefrun met Povray. Heb je mijn raadgevingen opgevolgd dan moet het zo lukken.

Meer details

Ikzelf vind het tijdverspilling, maar sommige mensen vinden het leuk om pixel voor pixel het beeld op het scherm gevormd te krijgen. Tijdens het berekenen kan versie 3 dit doen. De sleutelwoorden zijn Display=On met Video_Mode=0 Palette=0 en Display_Gamma=2.6. De enig werkelijk zinvolle toepassing lijkt mij: 'je bent niet zeker of de objecten wel goed staan, maar staan ze goed, dan moet er verder gerekend worden'. Je kunt nl. een zgn. 'mosaic preview' aanvragen. Het beeld begint grof en wordt stap voor stap gedetailleerder. Er is een nadeel aan dit gebruik: het kost bijna 25 % meer tijd en je krijgt pas output naar disk als Povray helemaal klaar is. De namen om in dit verband te gebruiken zijn: Preview_Start_Size=1 en Preview_End_Size=1.

Wat betreft het soort uitvoer: bij default gebruik ik compresssed Targa-24 format. Dat spaart diskruimte en mijn viewer (GemView) kan het importeren. Output_File_Type=C geeft het aan. Een gewone TGA file krijg je met =T.

Hoogtekaarten

Een van de cursistes wil dolgraag iets gaan maken met bergen op de achtergrond. Zij vroeg mij hoe ze dit moest doen, want ik had dan wel eens iets gebazeld over 'met een tekenprogramma in kleur een hoogtekaart maken' maar verhelderend werkte die opmerking niet. Ik zal het goed maken en een voorbeeld geven waar iedereen op zijn eigen manier verder mee kan werken. Algemene gebergtevorming dus. Ik kreeg een lumineus idee dat verder nergens op slaat. Een snelle blik in mijn archief met Povray afbeeldingen uit de gele wereld gaf voedsel aan een vermoeden. Bewoners van Zwitserland maken graag landschappen met wijdse watervlaktes en platlanders zoals wij zijn dol op heuvels en bergen. De vraag waar we voor staan is: welk tekenprogramma kunnen we gebruiken? Het moet als het even kan PD zijn en iedereen op deze cursus moet het op zijn computer kunnen draaien. En hier is weer een lumineus idee, dit keer toepasselijk. Gebruik Povray zelf! We gaan als volgt te werk. Maak een file met de naam image.pov waarin we zetten:

  #include "colors.inc"

  global_settings {
     assumed_gamma 2.2
     hf_gray_16
   }

  camera {
     location <0, 0, -10>
     look_at 0
   }

  plane { z, 10
     pigment {
       wrinkles
       color_map {
        [0 0.3*White]
        [1 White]
        }
     }
   }

  light_source { <0, 20, -100>
          color White }

Het eerste dat ik wil opmerken is dat we in grijstinten gaan werken met 16-bits nauwkeurigheid. Je snapt wel dat hoe meer verschillende tinten, hoe gladder ons oppervlak wordt. De camera kijkt recht naar beneden en ziet een gekreukeld grijstinten-vlak. De lichtbron zorgt voor belichting. De inhoud van de erbij behorende ini-file is: (zie listing 3).

Je ziet, ik gebruik nogal veel pixels en samen met de vele grijstinten moet dat toch een fatsoenlijk gebergte kunnen worden. Heb je de image.tga verkregen dan kan je dat plaatje als basis gebruiken in je eigenlijke afbeelding. Stel: die noem ik hfdemo.

Dan ga ik (laten we het even simpel houden) als volgt te werk: de hfdemo.pov krijgt de volgende inhoud:

Piet Vogelaar


Copyright © Rein Bakhuizen van den Brink
Last updated on 1 september 1999
Home Creatief met POVRay Het uiterlijk der dingen Camera