Ehm, misschien hier: http://eric_rollins.home.mindspring.com/ray/cuda.html. Ok, het is nog niet praktisch of snel op dit moment vanwege de beperkingen van de G80 maar onmogelijk is het zeker niet.
Goed, misschien was mijn formulering overtrokken, maar huidige GPUs zijn niet gemaakt en amper geschikt voor raytracing. Raytracing is zelfs op een GPU nog ordes langzamer dan rasterizing.
Ray-tracing is een veel natuurlijker manier om graphics te renderen dan rasterization aangezien het de werkelijkheid veel dichter benaderd
Mee eens.
De lichteffecten die je hier ziet zijn niet te doen met rasterization.
Daar ben ik het dan weer niet mee eens. Kijk een wat voor geweldige belichting
Geomeric's Enlighten geeft. Dat is real-time radiosity op zowel PC, PS3 als Xbox 360. En Geomeric is
niet de enige.
Verder schaalt raytracing lineair over meerdere conventionele processoren
Daarmee doe je net alsof rasterizing niet goed schaalt. Vrijwel alle onderdelen uit de traditionele rasterizing pipeline zijn parallel uitvoerbaar, dus als je de hoeveelheid transistors verdubbelt zul je ook een verdubbeling van performance zien. Wat betreft bandbreedte voor onder andere textures ligt het verhaal misschien iets anders, maar bij raytracing is bandbreedte net zo goed een probleem, objecten moeten ook getextured worden.
Daarnaast zijn meerdere CPUs per systeem natuurlijk leuk voor Intel's demonstraties, het is niet iets wat je bij doorsnee consumenten zult zien.
kan je door het raytracen ook gebruik maken van de stralen voor realistische physics en collision detection en response.
Voor collision detection en physics wordt juist vrijwel altijd gebruik gemaakt van simpele modellen, om de hoeveelheid rekenwerk te verminderen. Nu zou je kunnen argumenteren dat een gespecialiseerde raytracing processor (zoals Larrabee) dit zou kunnen versnellen, maar dan zit je weer met synchronisatieproblemen en (nog erger) pipeline stalls. (Rendering zal waarschijnlijk altijd een asynchroon proces blijven, zelfs al draait het op dezelfde processor)
Natuurlijk heeft raytracing nadelen en enkele problemen die opgelost moeten worden, maar het is slechts een kwestie van tijd voordat raytracing de standaard wordt, de vraag is alleen hoeveel tijd.
Het probleem bij raytracing is tweevoudig. Ten eerste is er vrijwel niets in raytracing dat niet ook gewoon met rasterizing gedaan kan worden. Reflecties en lichtbreking zijn makkelijk en goedkoop te doen met losse (kleine) rendertargets, radiosity lighting is zeker te doen, soft en hard shadows zijn prima, op wat artifacts hier en daar na. Bij al deze effecten geldt dat ze enorm goed schalen, ten koste van artifacts en beeldkwaliteit.
Ten tweede is er het snelheidsprobleem. Hoe je het ook wendt of keert, raytracing is ordes langzamer dan rasterizing, zeker op gespecialiseerde hardware. Tegen de tijd dat Intel een chip heeft die real-time een scene met een paar miljoen polygonen kan weergeven kunnen NVIDIA en ATI al weer een veelvoud van die hoeveelheid polygonen tekenen. Er is gewoon geen enkel aspect van raytracing dat er voor zal zorgen dat het met de tijd rasterizing zal inhalen. Beiden zijn "embarrassingly parallel", beiden gebruiken een flinke hoeveelheid texturebandbreedte, beiden gebruiken shadercode voor complexe effecten (zonder shaders zouden alle geraytracede oppervlakken er hetzelfde uit zien, dus dat is net zo goed een vereiste voor raytracing. Bij rasterizing heb je hier het toegevoegde voordeel van betere caching en snellere operaties door interpolatie), en beiden schalen ze relatief lineair afhankelijk van de complexiteit van de scene. Intel en andere raytracing fans roepen al jaren dat raytracing komt, zo gauw pc's er krachtig genoeg voor zijn. Maar wanneer de pc dan eindelijk real time al die mooie graphics uit bijvoorbeeld Quake 4 kan laten zien is het al hopeloos verouderd. Crysis ziet er zo ontzettend veel mooier
en realistischer uit dan wat dan ook op het gebied van realtime raytracing.
Misschien dat er over tien jaar, als iedereen 16nm chips heeft,
als Intel geen flauw idee meer heeft wat ze met die miljarden transistors moeten en
als consumenten geen flauw idee meer hebben wat ze met al die GFLOPS aan rekenkracht moeten, misschien dat dan real time raytracing een fatsoenlijk alternatief is. Misschien dat de eisen van de consument en de mogelijkheden van de CPU tegen die tijd elkaar ontmoeten, zoals al eerder gebeurd is met audio, raid en netwerkchips. Maar die tijd ligt nog een heel eind weg. En zelfs dan ben ik niet overtuigd, want zouden er niet tien jaar geleden ook mensen zijn geweest die zich dat hadden afgevraagd over nu? "Wat moeten ze in godsnaam met zoveel megaflops?". Het antwoord is Vista draaien, en misschien nog een beetje Crysis