Pragt.info
Partner site van: www.heinpragt.com
(c) Hein Pragt
logo pragt.info
Zoeken op deze site!
 
 

Povray raytracer
© 2007 Hein Pragt

voorbeeld povray raytracer Mede door de nieuwe 3D spellen is er veel belangstelling voor 3D technieken. Bijna elke nieuw spelconsole is weer meer realistisch, sneller en meer gedetailleerd. Er bestaan enkele goede 3D ontwerp programma's maar het prijskaartje dat hier aan hangt is voor de gemiddelde hobbyist niet op te brengen. Maar er is een heel goed alternatief 3D ontwerp programma genaamd Povray, voor wie zich echt wil verdiepen in 3D technieken. Voor het maken van 3D afbeeldingen kunt u een raytracer gebruiken, veel 3D ontwerp pakketen hebben deze onder de motorkap zitten. Ray tracing of raytracing is een methode waarmee een 3D scene omgezet kan worden in een afbeelding. De objecten in de scene worden wiskundig omschreven en er worden eigenschappen aan toegekend zoals kleur en reflectie. In deze scene bevinden zich ook een of meerdere lampen en een camera. Voor elke beeldpunt in de afbeelding wordt een lichtstraal (ray) vanuit de camera de scene in geschoten. Deze lichtstraal zal dan door een wiskundige berekening gevolgd (tracing) worden om te kijken met welk object deze in aanraking komt. Voor elk punt waar de straal het object raakt wordt de kleur berekend en zal er een beeldpunt in de afbeelding gegenereerd worden. Dit kost zeer veel rekenkracht van de computer maar kan spectaculair mooie plaatjes opleveren. Voor 3D spelletjes gebruikt men vaak de raycasting techniek die veel sneller maar ook minder nauwkeurig is.

povray voorbeeld De onbetwiste kampioen onder de ray tracers is het gratis open source programma Povray (the Persistance of Vision RAYtracer). Het programma is geschikt voor bijna elk besturingsysteem zoals Windows, Mac, Linux en Sun Solaris en het bestaat al heel veel jaren. De ontwikkeling ervan loopt momenteel een beetje traag, maar het programma is inmiddels zeer compleet.

Ergens in 1980 downloade David Kirk Buck de broncode van een Unix raytracer voor zijn Amiga computer. Hij exoperimenteerde er een tijdje meer en besloot zijn eigen versie van de raytracer te schrijven die hij DKBTrace noemde, naar zijn eigen initialen. Hij zette het resultaat weer online en in1987 begon Aaron A. Collins te werken aan een x86 (pc) versie van het programma met veel nieuwe features. Toen het programma populair begon te worden werd het project overgdragen aan een team van ontwikkelaars en werd de naam uiteindelijk verandernd in Persistence of Vision Raytracer of verkort POV-Ray. Vanaf dat moment is het programma zeer innovatief geweest en zijn zeer veel technieken ontwikkeld door middel van dit programma.

Povray is in veel opzichten een koploper, veel nieuwe technieken binnen Povray ziet u terug in de grote dure pakketen. Povray is een programmeeromgeving en helaas geen grafisch manipulatiepakket hoewel er een paar zeer goede modelleer pakketten zijn die bovenop Povray gebruikt kunnen worden. Maar de echte liefhebber zal het programma besturen via scripts want dat maakt Povray in eerste instantie tot een vreselijk programma, maar ook het meest krachtige programma.

Wanneer u de moeite neemt om zich goed te verdiepen in deze programmeer taal, heeft u een fantastisch krachtig gereedschap waarmee u prachtige afbeeldingen kunt maken. De basis voor Povray zijn vectoren (x,y en z coördinaten) waarmee alle beeldelementen worden gepositioneerd. Standaard krijgt u al een grote hoeveelheid include bestanden met vormen, texturen en kleuren. De kwaliteit van de afbeeldingen die Povray genereert is uitstekend en is vergelijkbaar met die van veel commerciële raytracers. U kunt zelf fantastische ontwerpen maken met Povray, het enige wat u nodig heeft is een beetje programmeerervaring en heel veel fantasie. Een beetje wiskunde is nog nooit zo leuk geweest!

De Povray handleiding is in veel verschillende formaten beschikbaar zoals tekst, HTML en PostScript en telt ongeveer 600 pagina's. Dit geeft al aan dat Povray heel veel mogelijkheden heeft, laat dit u echter niet ontmoedigen, want met de basisconcepten kunt u al veel bereiken. Ik heb zelf veel goede ervaringen met Povray en weet zeker dat iedereen die ermee leert omgaan ook hetzelfde plezier zal beleven. Voor het maken van 3D scenes gebruik ik soms ook het gratis modelleer programma Breeze designer. Deze kan uitvoer voor Povray genereren die u daarna met de hand kunt optimaliseren en aanpassen. Op deze pagina zal ik enkele voorbeelden en uitleg geven.

Waar kunt u Povray downloaden?

Povray kan via de officiële site gedownload worden:
http://www.povray.org/
ftp://ftp.povray.org/


Het gebruik van Povray onder MS Windows
© 2007 Hein Pragt

gebruikersinterface povray

Wie een volledige 3D modelleer programma verwacht komt helaas bedrogen uit, de gebruikersinterface bestaat uit een (tekst) editor met code highlite en veel help functies en uitgebreide knoppen en werkbalken. Maar u moet de scenes wel in de povray programmeertaal schrijven waarna u door middel van een run knop vanuit het script een afbeelding kunt laten genereren. Tijdens het ontwikkelen kunt u de resolutie vrij laag zetten zodat de afbeelding vrij snel gegenereerd kan worden, wanneer u gereed bent kunt u de resolutie aanpassen waardoor u een nog mooiere plaatje zult krijgen. Om te kunnen werken met deze interface heeft u behalve enige programmeer ervaring, een beetje kennis van wiskunde en vectoren nodig. Ook is enige kennis over licht en kleur nodig maar dit kunt u ook opbouwen tijdens het experimenteren met dit programma. De versie met de gui is in ieder geval eenvoudiger om mee te werken dan met een losse editor en het raytracen via de commando prompt.



Wat is raytracing?
© 2009 Hein Pragt

raytracing

Door middel van raytracing kan een scène (doorgaans in 3D) omgezet worden in een tweedimensionaal beeld. De objecten, de lichtbronnen en de camera in een scène worden wiskundig omschreven samen met andere eigenschappen, zoals kleur, oppervlakte en mate van reflectie. Voor elke pixel in het 2D beeld wordt een lichtstraal (ray) vanuit de camera de scène in geschoten en gevolgd (tracing) om te kijken met welk object deze straal in aanraking komt. Voor het punt waar de straal het object raakt wordt de kleur berekend (door rekening te houden met de kleur en de eigenschappen van het object) en dit bepaald de kleur van één pixel in het 2D beeld. Shading word gebruikt om de intensiteit van de kleur te bepalen van de voorwerp. Het is bijvoorbeeld mogelijk dat er een voorwerp (gedeeltelijk) tussen het licht en het object staat, hierdoor zal er dus een schaduw optreden. Het voorwerp kan nog wel gedeeltelijk belicht worden door andere lichtbronnen of omgevingslicht. Een andere eigenschap is reflectie van een object. Reflectie is het weerkaatsen van een straal, dit kan gedaan worden door een nieuwe straal te creëren in de botsing van de eerste straal. Het resultaat van deze straal zal dan opgeteld worden bij de eerste oorspronkelijk straal. Op deze manier kan een raytracer zelfs spiegeling of spiegels genereren. Refractie is het buigen van licht bij een botsing, transparante materialen zoals glas en water doen dit vooral. Behalve objecten kan licht ook een kleur hebben en een vorm zoals omgevingslicht maar ook brede en smalle spot lichten.



Wat is raycasting?
© 2009 Hein Pragt

raycasting

Raycasting is een meer simpele techniek om toch met grote snelheid een 3D scène te kunnen renderen. Om een vloeiend beeld te krijgen zullen bijvoorbeeld 20 frames per seconde berekend moeten worden en daarvoor is raytracing te complex en te traag. Een van de eerste spellen die gebruik maakte van raycasting was Wolfenstein en later ook Doom. De techniek die Wolfenstein gebruikte was vanuit het punt van de speler (de camera) een lijn trekken en kijken hoever je die lijn door kunt trekken totdat je een muur (of iets anders) tegenkomt. De afstand tussen de speler en deze muur gebruik je om te bepalen hoe hoog dat stukje muur moet zijn, kleine afstanden zorgen voor een hoge muur en grote afstanden voor een kleine muur (objecten lijken immers kleiner naarmate ze verder weg staan). Dit doe je vervolgens voor het hele blikveld van de speler en het effect is klaar. Een simpele vorm van shading is te bereiken door iets op afstand donkerder te maken of de hoek van het object ten opzichte van de lichtbron te gebruiken voor de bepaling van de intensiteit van het licht. Ook raycasting engines gebruiken steeds meer technieken van het raycasten en naarmate de snelheid van de processoren toeneemt, kan er natuurlijk ook meer schading, oppervlakte effecten e.d. berekend worden. Een leuke technisch stukje in het Engels over raycasting kunt u lezen op: Info raycasting



Povray modeller frontend
© 2010 Hein Pragt

POVLAB's Modeller Home Page
POVLAB is een volledige 3D modeller om 3D objecten te maken voor POV-Ray, de broncode is ook beschikbaar.

Moray Homepage
Moray is een modeller die de best support heeft voor alle features van povray en word goed onderhouden door de ontwikkelaars.

Visual Engineering
Modeller die povray uitvoer kan genereren.

Breeze Designer
Breeze Designer is een 32-bit 3D modeller en ontwerp programma voor Windows. Het programma is speciaal geschreven als frontend voor Persistance of Vision raytracer (POV-Ray version 2.0 & 3.0.

Voorbeeld Povray script
© 2010 Hein Pragt

Dit is een voorbeeld van een klein Povray script waarmee ik een metalen bal met een ruw oppervlak gemaakt heb.

// Persistence Of Vision raytracer 
// Metal ball by Hein Pragt

global_settings { max_trace_level 20  assumed_gamma 2.2 }

#include "colors.inc"

camera { // This is an unusual camera since it is a converted file
   location <2.31, 1.43, 1.65>
   up <0, 0, 1>          // The Z axis is up and
   right <-4/3, 0, 0>    // The negative X axis is right
   direction <0, -1.60746, 0> // Field of view 45 degrees
   sky <0, 0, 1>
   look_at <0, 0, -0.1>
}
  

light_source { <4, 3, 4 > color Gray70 }


plane { z, -0.5
   pigment { color red 1.0 green 1.0 blue 1.0 }
   finish { diffuse 2 }
}


#declare Texture =
texture {
   finish {
      ambient 0.03
      diffuse 1
      reflection 0.4
      phong 1
      phong_size 3
   }
   pigment { color red 0.5 green 0.45 blue 0.35 }
}



sphere { <0, 0, 0>, 0.8
   texture {
     Texture
      normal {
        bumps 0.4
        sine_wave
        scale 0.025
      }
   }
}
metalen bal

Boeken

3D Game programmeren met Direct X 8.0 + CD-ROM 3D Game programmeren met Direct X 8.0 + CD-ROM Clayton & Clayton E. Crooks
Moderne pc's bieden steeds meer mogelijkheden voor het maken van spellen. Tegelijkertijd wordt het steeds moeilijker om dit te doen vanwege de hogere kwaliteitseisen die eraan gesteld worden. In dit boek wordt uitgelegd hoe met beperkte middelen een 3D-spel gemaakt kan worden. De eerste hoofdstukken gaan in op de basiseisen: het samenstellen van een ontwikkelteam, het maken van een ontwerpdocument en het kiezen van een geschikte programmeertaal. Daarna wordt aan de hand van eenvoudige voorbeelden getoond hoe je een 3D-model maakt en voorziet van textuur. Ook aan het maken van bijpassende geluidseffecten en muziek wordt aandacht besteed. Het daadwerkelijke programmeren met DirectX en Visual Basic komt slechts kort aan bod. De bijbehorende cd-rom bevat de gebruikte software en de voorbeelden. Hoewel het boek serieus begint, richten de praktijkvoorbeelden met veel schermafbeeldingen zich op beginners. Daarmee is het voornamelijk geschikt voor enthousiaste hobbyisten die, bij gebrek aan ervaring om beter te weten, zelf een geslaagd 3D-spel willen maken.


Basiscursus 3D Studio VIZ Release 3/3i Basiscursus 3D Studio VIZ Release 3/3i D. Veldhuizen
3D Studio VIZ is een visualisatie- en ontwerpprogramma voor het maken van driedimensionale modellen. Het pakket richt zich op het maken van ontwerpen voor (interieur)architectuur, engineering, weg- en waterbouwkunde en aanverwante toepassingen. Het is nauw verwant aan 3D Studio MAX, maar mist de uitgebreide animatie- en specialeffectmogelijkheden hiervan. Dit boek behandelt de belangrijkste mogelijkheden van dit uitgebreide programma, waaronder het gebruik van 2D-vormen, 3D-objecten, samengestelde objecten, eenvoudige animaties, materialen en kleuren, modellering, verlichting en camera's. De nadruk ligt op een functionele beschrijving van het programma: wat kan er mee gedaan worden, hoe moet het en wat levert het op? Het boek bevat geen voorbeelden van praktische toepassingen, uitgewerkte voorbeelden of gebruikstips. Geschikt als kennismaking met 3D Studio voor beginnende gebruikers.


Inleiding tot 3D in de praktijk + CD-ROM Inleiding tot 3D in de praktijk + CD-ROM Rogier Mostert
'Computer! Totaal Inleiding tot 3D in de Praktijk' is een helder geschreven boek over 3D, Dit boek is zowel geschikt voor iedereen die kennis wil maken met de basisprincipes van 3D als voor mensen die een goede opstap zoeken naar de meer specialistische 3D-boeken. Dankzij de praktische opzet van het boek en de meegeleverde cd-rom kunt u direct zelf met 3D aan de slag. Een aantal van de onderwerpen die uitvoerig wordt besproken: Wat is 3D en wat heeft u er voor nodig? U leest wat 3D nu eigenlijk is en voor welke toepassingen het zoal wordt gebruikt. Daarnaast krijgt u een uitvoerig overzicht van hard- en software die u nodig hebt als u zelf met 3D aan de slag gaat. Objecten, licht en camera's. U krijgt antwoord op de vragen hoe objecten (voorwerpen) in elkaar zitten, hoe u zelf objecten maakt in 3D en welke belangrijke methodes er zijn om objecten te modelleren. Verder wordt de basis van licht besproken, zodat u uw eigen werk op de juiste manier van licht kunt voorzien. Natuurlijk ontbreekt een beknopte uitleg over het gebruik van camera's niet. Rendering en ray-tracing. Om een 3D-afbeelding zo realistisch mogelijk te maken moet u de afbeelding renderen. Dit is een ingewikkeld procédé waardoor uw afbeeldingen er levensecht uit komen te zien. De meest belangrijke vormen van rendering worden uitgelegd, waaronder ray-tracing en radiosity. Animaties. 3D animaties zijn erg populair en worden dan ook steeds vaker gebruikt. Een aantal professionele bedrijven laten middels workshops zien hoe ze in de praktijk 3D-animaties maken. Op de cd-rom bij dit boek staan deze animaties ook, zodat u ze zelf kunt bekijken. 3d voor Internet. Ook voor Internet-doeleinden kunt u diverse 3D-technieken gebruiken. De belangrijkste technieken worden in kaart gebracht, waarbij VRML uitvoerig wordt besproken. De gratis bijgevoegde cd-rom straat tot aan de nok toe vol met een grote diversiteit aan 3D-geraelateerde software en andere handige 3D-zaken.





Last update: 01-04-2010
 

Disclaimer.

Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot de informatie die, in welke vorm dan ook, via deze site wordt aangeboden. Het opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke bron van informatie voor de bezoeker en mag op generlei wijze als instemming, goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden ontleend.
Op de artikelen van de heer Pragt op deze Internet Site rust auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen over copyright en het gebruik van de informatie op deze site kunt u contact opnemen met: (email: copyright@heinpragt.com)

Webdedesign: © Hein Pragt
Fotografie: © Hein Pragt
Auteur: © Hein Pragt

Privacy beleid
Wij maken gebruik van externe advertentiebedrijven om advertenties weer te geven wanneer u onze website bezoekt. Deze bedrijven gebruiken mogelijk informatie (niet uw naam, adres, e-mailadres of telefoonnummer) over uw bezoek aan deze of aan andere websites om advertenties weer te geven over goederen en services waarin u wellicht geïnteresseerd bent. Als u hierover meer informatie wenst of als u wilt voorkomen dat deze bedrijven deze informatie gebruiken, klikt u op deze link.