© 2007 Hein Pragt
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.
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
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.
|
© 2009 Hein Pragt
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.
|
© 2009 Hein Pragt
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
|
© 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.
© 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
}
}
}
|
|
Last update: 01-11-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 zijn 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)
Webdesign: © Hein Pragt
Fotografie: © Hein Pragt
Auteur: © Hein Pragt (Veenendaal - Utrecht - Nederland)
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.
|