© 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
}
}
}
|
|
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 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 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
|