Hoofdcategorieën

Nieuwe ray-tracingtechniek voor realistische graphics

Door Inge Daamen, maandag 19 maart 2007 17:22
Bron: BBC, submitter: AgentSmith, views: 18.824

Op de CeBit-beurs toonde een team van de Universiteit van Saarland uit Duitsland een nieuwe techniek om ray-tracing te gebruiken zonder dat daar monstermachines aan te pas moeten komen.

Ray-tracing is een techniek die driedimensionele graphics, bijvoorbeeld games, veel realistischer kan maken. Tot voor kort moesten daar veel krachtige computers voor gebruikt worden, maar een team wetenschappers uit Duitsland heeft laten zien dat deze techniek nu ook gebruikt kan worden door middel van het inzetten van een aantal specifieke chips in combinatie met high-end grafische kaarten. De techniek wordt nu vooral gebruikt in films, voor het realistischer maken van special effects, of voor cartoons.

Het team van de Universiteit van Saarland heeft een serie ray-tracingalgoritmes ontwikkeld die de techniek veel makkelijker in gebruik maakt. De algoritmes zijn uitstekend te gebruiken met chips met meerdere processing cores. 'Aparte cores kunnen gemakkelijk gebruikt worden voor het berekenen van verschillende lichtstralen. Op die manier maak je optimaal gebruik van de aanwezige computerkracht', aldus een woordvoerder. Een van de wetenschappers heeft de techniek gebruikt om ray-traced versies van Quake 3 en 4 te maken. Met traditionele rendertechnieken worden minder goede resultaten behaald. Deze ray-traced versies bieden de speler veel betere lichteffecten dan wanneer traditionele rendertechnieken gebruikt worden. De algoritmes worden beschikbaar gemaakt via het Open RT-project.

Ray-traced versie Quake 3
Volgende 17:48
Vorige 17:21

Reacties

«  1  2  »


Ik had liever het oude screenshot ernaast gezien ter vergelijking. ;)

Nog beter was een timedemo van de gewone Q3/4 en de RT Q3/4. Kun je ook de FPS vergelijken.

Tof, fotorealistische games zijn dus niet zo ver weg meer :)

Toch wel. Ray-tracing zorgt voor realistische reflecties en schaduw, maar vergt daarbij wel nog heel wat meer rekenkracht dan rasterisatie om bijna hetzelfde te bekomen. Bovendien is het vereenvoudigde model van ray-tracing onvoldoende om alle mogelijke lichtinteracties te berekenen die nodig zijn voor echte realistische beelden. Daar is nog eens ruwweg 1000x meer rekenkracht voor nodig dan vandaag beschikbaar op een systeem voor consumenten.

Als Moore's law nog 10 jaar stand houd zouden we er dus moeten zijn. Dit zie ik ook nog wel gebeuren door steeds maar meer cores aan processors toe te voegen (voor ray-tracing ook goed te gebruiken). Ik denk dan ook dat raytracing in de toekomst de standaard wordt, het is gewoon een veel betere benadering van de realiteit.

Denk je niet dat de graphics en beeldresoluties etc dan alweer veel hoger en beter zijn? Ray-tracing mag dan wel (op het moment) mooie beelden geven, maar over 10 jaar, wie weet of het dan nog wel nodig is? En daarnaast, de rekenkracht die bij ray-tracing nodig is word verveelvuldigd al naar gelang de hoeveelheid en/of de schermresolutie, ik kan mij best voorstellen dat je tegen die tijd al weer veel grotere spelomgevingen hebt.

Ray-tracing geeft mooie(re) graphics, maar het is niet het meest efficiente.

Voor een stukje meer info over ray-tracing (als je programmeur bent of er in geinterreseerd bent), kijk eens hier, een programma in een weekend geschreven die mbv ray-tracing heel mooie renders geeft, inclusief reflectie enzovoorts.

Denk je niet dat de graphics en beeldresoluties etc dan alweer veel hoger en beter zijn? (YopY)
Er is een grens aan wat ik aan mijn muur kan hangen / op mijn bureau kwijt kan qua grootte. Datzelfde geldt dan gelijk voor de resolutie. Ik hoef geen 12800x9600 (losse pols factor ) op mijn 22"-32" (factor kijkafstand) monitor te hebben.

De vraag is of we dat wel willen... fotorealistische graphics staan niet gelijk met goede graphics, d.i. graphics die de spelbeleving ten goede komen. In een RPG is bijvoorbeeld een 'gefantaseerd' bos misschien wel beter dan een fotorealistische weergave.

Voor fotorealistische games heb je ook Global Illumination nodig, niet alleen ray-tracing... dat kost ook enorm veel rekentijd...

En de next-gen consoles zijn alweer gedateerd :+

Kan iemand mischien vertellen in hoeverre dit verschilt van HDR? Ik vind dit er namelijk best veel op lijken.

-1 Men zegt niet dat men een techniek heeft om beter beeld te geven, men heeft een techniek die in verhouding met de prestatie beter beeld geeft

-2 hdr is een belichtingstechniek en slaat enkel op de lichteffecten, hier heeft men het over een rendeertechniek

HDR is niet meer dan een groter kleurbereik, en is dus onafhankelijk van ray-tracing of rasterisatie.

Ray-tracing verschilt van rasterisatie in dat het beeld niet object per object wordt 'geschilderd', maar dat per beeldpunt een straal (ray) in de scene de snijpunten met de objecten bepaald. Dit laat ook toe op eenvoudige wijze heel precieze reflecties en shaduw te berekenen (alsook refractie en andere effecten die lichtstralen beïnvloeden).

Er was al heel lang een RayTraced versie van Quake 3. De plaatjes zijn ook al heel oud. Zie http://graphics.cs.uni-sb.de/~sidapohl/egoshooter/

er staat ook quake 3 en 4...

Jup, je kon altijd kiezen tussen ray-traced shadows, of shadow map. Maar shadow map was altijd mooier.

Maar dit is dus een soort verbeterde ray-trace...

Shadow map was altijd mooier dan ray-trace omdat ray-trace langer duurt om te berekenen, en dat dat waarschijnlijk een beetje werd afgeraffeld om het spel speelbaar te houden.

Bedoel je in realtime of in 3ds max ofzo. Voor zover ik weet is er nog geeneen spel wat echte raytracing voor shadows gebruikt.

Als je max bedoeld, komt dat omdat shadowmaps van zichzelf al een beetje geblurd zijn, ookal komt je licht vanuit een enkel punt. In dat geval is raytracing eigenlijk veel realistischer, echter, in de werkelijkheid hebben we maar heel weinig echte punt lichtbronnen (de zon bijvoorbeeld zien wij als een schijf, die over het gehele gebied lichtgeeft). Als je area lichtbronnen zou raytracen ziet het er wel weer stukken beter uit dan shadow maps, maar dat is echt zo zwaar dat het zelfs voor offline rendering meestal nog te lang duurt.

inderdaad. En dan heb je nog veel meer technieken nodig voordat het fotorealistisch is. Want wat doet het licht nadat het een object heeft bereikt in het echt? Juist; het weerkaatst weer door (dit heet indirect illumination). Dit is een nogal belangrijke techniek om binnenscene's mooi te belichten.
Al zijn ze daar ook al erg ver mee zie ik nu:
http://www.fantasylab.com/newPages/rtgi.html

@Menesis:
het weerkaatst weer door (dit heet indirect illumination)
Dat heet "radiosity" ;)

Hier de nieuwe versie van die site. Het is gemaakt in OpenRT welke ook in het artikel wordt genoemt.

http://www.q3rt.de/

en quake 4

http://www.q4rt.de/

en nog een leuk artikel hierover

http://www.pcper.com/arti...aid=334&type=expert&pid=4

HDR is een opslag methode voor afbeeldingen. Ray-tracing is het omzetten van 3d objecten naar een 2d afbeelding.

Jij maakt het helemaal mooi, haal de andere betekenis van HDR er ook nog eens even bij :')

HDR staat voor High Dynamic Range rendering, een nieuwe vorm van het renderen van licht.

Je hebt gelijk, echter geldt HDR niet alleen voor rendering, maar in eerste instantie is HDR bedoelt om de standaard 24 of 32 bit limieten op te heffen.
Zo kunne plaatjes in of meer bits, of zelfs in floating point opgeslagen worden, waardoor het dynamisch bereik van zo'n plaatje vele malen groter wordt.

Als je dan ook dit gebruikt tijdens berekeningen dan blijft dat dynamisch bereik gewaarborg, waardoor je veel meer details behoudt en ook de wl bekende iris effecten weergeven.

met raytracing wordt realtime de licht uitstrooing berekent. Dus ook wanneer licht iets raakt en vervolgens weer weerkaats. Met raytracing kun je dus ook echte realistische spiegelingen maken.

Niet echt. Dat is global illumination/radiosity. Er zijn radiosity implementaties die gebruik maken van raytracing (monte carlo), maar over het algemeen doen raytracers alleen directe belichting. directe reflectie (dus niet diffuus) is ook vrij makkelijk met raytracing te implementeren, dus dat hebben ze meestal ook nog wel.

Goed dat ze het vrijelijk beschikbaar maken.

Zie ook bv. deze paper van Intel. Real-time ray tracing zit al langer in de lucht; tot nu toe ontbrak het alleen aan rekencapaciteit. Met slimmere (paralleliseerbare) algoritmes en multicores zal dit steeds aantrekkelijker worden.

We kunnen als eerste hybridmodellen verwachten waarbij raytracing gebruikt wordt voor sommige lighting, en later misschien volledig geraytracete omgevingen. Daar kun je echt wijze dingen mee doen, zoals echte spiegeling en realistische highlights en schaduwen (ook met tinten).

Dan alleen nog even omschakelen op vectors en we zijn gelijk van al die lelijke, niet-schalende polygonen af. :) Grapje, het zal nog wel wat langer duren voordat we daar real-time iets mee kunnen...

een leraar van mij is zelf ook bezig met realtime raytracing en ik weet dat die verschrikkelijk goede results haalt...

op mijn c2d 6400 draait het op 12fps op 800*600 met refractie, reflectie etc.

dat is in tegenstelling tot de "runs faster with more computers (about 20 fps@36 GHz in 512x512 with 4xFSAA)" van de bovenstaande link (http://graphics.cs.uni-sb.de/~sidapohl/egoshooter/) toch wel zeer netjes.

ik vraag me dan ook af in hoeverre de algorithmes verbeterd kunnen worden...
hoek van inval, refractie/reflectie... kun je weinig aan veranderen toch ?

ik vraag me dan ook af in hoeverre de algorithmes verbeterd kunnen worden...
hoek van inval, refractie/reflectie... kun je weinig aan veranderen toch ?
Maar da's geen algoritme, da's een berekening. Een ray trace algoritme bestaat nou juist uit het berekenen van al die dingen voor een hele hoop stralen langs een hele hoop objecten. En daar valt een hoop te halen op optimalisatiegebied: misschien kan ik van tevoren bepalen dat bepaalde stralen nooit ergens terecht komen, of dat bepaalde objecten niet mee kunnen doen, of kan ik de resultaten van een eerdere berekening hergebruiken, of kan ik het resultaat van deze berekening schatten aan de hand van de andere, of...

En dan nog geschikte manieren vinden om een en ander in parallel te doen. Nee, daar gaat best wel wat denkwerk in zitten.

Edit: oh, en dan nog bedenken dat het resultaat niet "perfect" hoeft te zijn (kan ook niet, kost veel te veel tijd) maar "overtuigend". Weer een nieuwe dimensie van optimalisatie.

Die leraar heet toevallig Jacco Bikker? Hij haalt inderdaad interessante resultaten.
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 17:48
Vorige 17:21
VNU Media logo Powered by True

© 1998 - 2009 Tweakers.net - Alle rechten voorbehouden - Uw Privacy - Algemene Voorwaarden

Uitgever van: