Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Modder implementeert path tracing voor alle lichten in Quake II en haalt 60fps

Een modder is erin geslaagd om een goed werkende implementatie van path tracing te verwerken in Quake II. Met behulp van een Geforce RTX-videokaart en een filtertechniek die efficiëntie verbetert, weet hij voor elkaar te krijgen dat alle lichteffecten path traced worden en de game speelbaar blijft.

De modder heeft de path tracer verwerkt in de Q2PRO-client, een client die onder andere zorgt dat de game compatibel blijft met modernere hardware en software. De tracer staat ook op GitHub voor iedereen die onder de motorkap wil kijken. Het gaat om 12.000 regels code die de gehele graphics-code van het origineel uit 1997 vervangen.

Het resultaat mag er wezen: warme, gloeiende lichteffecten met zachte randen, het licht van wandlampen kaatst van de vloer af, maar binnenin de kern van die reflectie is de weerspiegeling van die lampen goed te zien. Het is een schril contrast om zo'n nieuwe grafische techniek te zien werken zij-aan-zij met textures en models uit 1997. De Duitse modder koos Quake II omdat het een lange voorgeschiedenis heeft met mods en het daarom een goede sandbox zou zijn voor dit soort experimenten.

Voor wie meer wil weten over het project: de Duitser, Christoph Schied, heeft een uitgebreide website met informatie online gezet, compleet met twee demovideo's, meerdere screenshots en een download voor wie het zelf wil proberen. Een RTX-videokaart is wel vereist. Schied gebruikte zelf een RTX 2080 Ti. Path tracing is een techniek die soortgelijk is aan ray tracing, maar dan nog intensiever voor een processor. Een voorbeeld van een modernere game die ray tracing gebruikt, is Battlefield V.

Door Mark Hendrikman

Nieuwsposter

19-01-2019 • 15:00

144 Linkedin Google+

Reacties (144)

Wijzig sortering
Er moet iets goed mis zijn met de efficiëntie van raytracing als het noemenswaardig is dat een 22 jaar oud spel 60 FPS haalt met de functionaliteit.
Nee, juist niet! Raytracing is heel erg kostbaar om te doen, maar schaalt bijzonder goed.

De reden dat het nog niet realtime kon, is omdat je voor ieder frame, voor iedere pixel van je scherm, tientallen zo niet honderden lichtstralen door je scene heen moet sturen. Voor 4k met 60fps zit je dan al snel aan de 50 miljard (!) lichtstralen: tot voor kort was er simpelweg geen hardware die dit aankon, ongeacht de complexiteit van je scene.

Maar er is wel één heel groot voordeel, de berekeningen per lichtstraal zijn heel erg efficiënt: Met een traditionele rasterizer is het ongeveer twee keer zo duur om twee keer zo veel triangles (en dus detail) te renderen. Bij een raytracer is 25 miljoen triangles ongeveer twee keer zo langzaam als 5000. Het maakt dus eigenlijk niet uit hoeveel detail je scene heeft: als je íets realtime kan raytracen, dan kan je bijna alle scenes realtime raytracen. De enige limiet die je dan nog hebt is het geheugen van je GPU.

Het is dus best wel een enorme big deal dat een amateur een 22 jaar oud spel realtime kan raytracen, want dat betekent dat binnen een paar jaar ook AAA games volledig met raytracing gedaan kunnen worden.
Ik neem aan dat je hier probeert uit te leggen dat de looptijd van het tracen van een ray een complexiteit heeft van O(log N), met N het aantal triangles in de scene. Dit geldt echter alleen voor statische scenes en niet voor dynamische scenes, zoals veel games die gebruiken.
Dat is inderdaad wat ik probeer uit te leggen, en dat gaat inderdaad alleen direct op voor statische scenes.

Dynamische scenes zijn wat complexer omdat je de BVH moet herberekenen, maar voor de meeste games is dat niet zo belangrijk. In de praktijk gebruik je een geneste BVH: ieder object in de scene krijgt een BVH die heel duur berekend is en voor dat object statisch is. Vervolgens bouw je ieder frame een BVH over alle objecten in de scene. Deze kan van een veel lagere kwaliteit zijn, en je kan natuurlijk refitting gebruiken om hem niet íeder frame uit te moeten rekenen. Door het relatief lage aantal objecten, is dit alsnog heel snel te doen. Als ik me niet vergis, heeft een rasterizer O(n) tijd nodig in het totaal aantal triangles. Met een geneste BVH is het O(log n + log m) traversal tijd voor n objecten met m triangles, en bij serieuze object movement moet je een O(n log n) operatie doen om je top-level BVH te bouwen.

Het helpt natuurlijk ook mee dat je het rebuilden compleet onafhankelijk van het renderen kan doen, dus dit zou je verspreid over meerdere frames op een aparte thread kunnen doen, waardoor de tijd niet echt meer relevant is.
Inderdaad, de constructie van een BVH is O(n log n) en dit zorgt ervoor dat je in het algemeen niet kunt stellen dat "als je íets realtime kan raytracen, dan kan je bijna alle scenes realtime raytracen". Extra cores of threads veranderen helemaal niets aan deze O(n log n) complexiteit, de runtime wordt slechts met een constante factor verkleind. Je kunt dus ook niet zeggen dat de tijd door multi threading "niet echt meer relevant is". In de praktijk zul je multi threading toepassen, maar ik heb het hier uiteraard over het asymptotisch gedrag.

Daarnaast is de BVH per object lang niet altijd constant. Denk bijvoorbeeld aan geanimeerde characters of omgevingen die je kunt vernietigen.
Natuurlijk, je kan niet letterlijk álles realtime doen, maar dat is ook niet mijn punt. Voor relatief kleine bewegingen kan je de BVH refitten, waarbij je gewoon de bounding boxes groter maakt. Dit is een O(log n) operatie per beweging en kan dus per frame gedaan worden. Dit maakt alleen je BVH wel ietsje minder efficient waardoor je dit niet oneindig lang kan doen, dus op een gegeven moment moet je de BVH reconstructen. Alleen omdat je frames niet afhankelijk zijn van de nieuwe BVH, is de tijd dus weldegelijk irrelevant, omdat je er prima enkele tientallen frames over kan doen. Het renderen is compleet onafhankelijk van het herbouwen van je BVH. De complexiteit wordt daardoor niet beter, maar die is al goed genoeg dat je voor een realistische game-scene meer dan genoeg tijd hebt.

Per object is je BVH inderdaad niet altijd constant, maar dit gaat voor veel objecten wel op. Bewegende objecten zijn vaak te splitsen in meerdere constante objecten, en de paar die over blijven kan je herberekenen.
Ik begrijp je punt en ik snap dat je met een slimme implementatie en de juiste algoritmen realtime dynamische scenes kunt raytracen, maar het punt dat ik wilde verduidelijken is dat, in het algemeen, de tijd die het kost om een dynamische scene te raytracen niet logaritmisch schaalt in het aantal primitieven, maar een bovengrens heeft van O(n log n). Multithreading of om de honderd (of honderd miljard) frames je BVH opnieuw opbouwen verandert daar niets aan. Uiteraard gaat dit om asymptotisch gedrag en is die O(n log n) complexiteit in de praktijk niet altijd zo relevant.
Reflectie en refractie zijn volgens mij van grote invloed op je scene? Veel reflectie en refractie geeft volgens mij een zwaardere rendering dan een scène met veel absorptie (en dus weinig reflectie/refractie), want dan doven de rays eerder uit...
Dat valt wel mee, juist reflectie en refractie zijn relatief goedkoop. Een perfecte spiegel of perfecte refractie zorgt er alleen voor dat een ray compleet deterministisch een nieuwe richting krijgt. Dit is dus relatief makkelijk om goed te renderen, want als je meerdere rays hebt door dat punt, doen ze allemaal precies hetzelfde. Wel moet je natuurlijk opnieuw beginnen met het vinden van een triangle hit, en dat is niet gratis.

Juist diffuus is relatief duur. Als je realistisch wil raytracen (dus met caustics, soft shadows, en alles waarvoor je eigenlijk raytracing wil doen), dan moet je bij een diffuse hit compleet willekeurig ergens heen kaatsen. Vanuit ieder punt kan er namelijk licht komen dat dit diffuse punt aan het belichten is. Om een goed resultaat te krijgen moet je dus meerdere samples naar een diffuus punt sturen. Het raken zelf is dus goedkoop, maar het krijgen van een goed resultaat is een stuk duurder.

Om een voorbeeld te geven: stel je voor dat je een camera hebt die op een plat oppervlak neerkijkt, waar boven een enkele lamp hangt. Als dit oppervlak een spiegel is, dan worden de rays weerkaatst, en de weerkaatsing komt altijd op hetzelfde punt op de lamp aan. Als dit oppervlak diffuus is, dan wordt ieder punt belicht door de héle lamp. waardoor je voor iedere ray een willekeurig punt op de lamp moet kiezen dat licht bijdraagt aan je pixel. Soms krijg je een plek op de lamp die dichtbij en licht is, maar voor de pixel ernaast kan je een plek krijgen die een stuk donkerder is. Dit geeft noise. Om dat te compenseren moet je dus meerdere rays sturen voor iedere pixel, zodat je voor iedere pixel ongeveer even veel lichte als donkere stukken op je lamp aan het samplen bent.

Het is wel een ander verhaal als je een matte spiegel wil, of een getinte spiegel, of water dat deels doorlatend en deels reflectief is, of een glossy object: in feite heb je dan een object dat deels diffuus is, dus moet je meer rays sturen.

[Reactie gewijzigd door laurxp op 19 januari 2019 23:29]

Het laatste deel van wat je zegt is waar ik in mijn andere comment ook iets over probeerde te zeggen, maar jij weet het beter te verwoorden en begrijpt het vast ook een stuk beter dan ik.
En die verbeter slag waar je op doelt aan het einde is waarom ik mijn eerste comment maakte, Raytracing lijkt heel veelbelovend en het is iets moois dat een amateur het zo aan de praat heeft weten te krijgen, maar verder kent de massa raytracing alleen van battlefield 5, waar het draait als een drol. Dit maakt dat het noemenswaardig is geworden dat deze modder het beter heeft kunnen regelen in een ander spel.

Als de eerste indruk die mensen kregen door BFV niet zo negatief was had dit artikel vast een andere kop gehad.
Als de eerste indruk die mensen kregen door BFV niet zo negatief was had dit artikel vast een andere kop gehad.
Laat me raden, bent bent nog vrij jong en hebt nog niet veel updates van bijvoorbeeld DirectX versies meegemaakt? Neem gewoon wat tijd on te lezen waarom raytracing absoluut de toekomst is en waarom dit een belangrijk punt is. Dertig minuten (nee niet op YouTube) en je zal zien waarom de reactie van laurxp in ELK opzicht correct was. Raytracing ongelofelijk ingewikkeld om uit te voeren maar niet ingewikkeld om te begrijpen.

En anders ga je gewoon terug naar DX9 voor een paar dagen. Iedereen zei dat dat een absolute ramp was. Is allemaal goed gekomen.
Ho ho stuur hem dan terug naar directX 5 ;) stenen tijdperk
ehhhhhm raytracing is juist NIET ingewikkeld. Dát is nou juist de kracht ervan.

Huidige non-raytracing vormen van render technieken zijn érg complex.. ik zelf ben dan ook geen groot fan van wat je in BF5 ziet gebeuren.. Raytracing moet je gewoon 100% doen, op die manier verlies je geen compute cycles aan het berekenen van die fake rotzooi. In het geval van raytrace assisted rendering (zoals RTX dus in feite is) heb je dus nog gewoon 100% van het 'verbruik' van traditionele 'fake it' render methoden en daarbovenop moet je dan ook nog eens gaan raytracen.. 8)7
Raytracing is een correcte 'render' manier én het is een super simpele 'render' manier die super goed schaalt.. het issue is dus alleen wel dat je er ERG veel rekenkracht voor nodig hebt.. reken kracht die tot op heden nog niet echt bestond in consumenten elektronica (voor real-time gebruik).

Als je een RTX 2080ti videokaart vergelijkt met een top-of-the-line videokaart in de tijd van Quake 2 dan is het geen wonder...
Als de eerste indruk van mensen negatief is vind ik dat aardig verwend gedrag. Nvidia heeft naar mijn weten nooit beloofd dat raytracing met de nieuwste spellen (zoals BFV) mogelijk zo zijn in 4k 60fps+, volgens mij zijn zij daar zelfs aardig realistisch in geweest. De huidige RTX is een keuze voor de early adopters die graag deze optie hebben. Voor pure bang for buck zonder raytracing ben je beter uit bij eerdere modellen.

Daarnaast dit. Ten eerste, ray tracing lijkt niet veelbelovend, het IS veelbelovend. Kijk naar hoe het toegepast wordt in animatie films, het levert ongekende resultaten op. Kijk naar het kwaliteits verschil toen de eerste raytracing films uit kwamen, en hoe dat nog bizar verbeterd is over de navolgende jaren. Maar voor de film industrie zitten er systemen achter die geen consument heeft, en wordt het ook niet real time gerendered. Dit soort kwaliteit verbetering, alhoewel waarschijnlijk over meer jarer gezien het realtime moet kunnen, kan je ook verwachten voor games. Fantastisch dus. Bovendien, zoals laurxp al zegt, het schaalt bijzonder goed. Op een bepaald niveau van grafische complexiteit, wordt het voordeliger om raytracing te gebruiken dan huidige bestaande technieken.

Ik vind persoonlijk dat mensen te zuur zijn over de RTX lijn in het algemeen, niet op jou gericht Flamesz, gezien jij het enkel over BFV hebt. Geen techniek is perfect wanneer het net geïntroduceerd wordt. Doorgaans is het duur, de beschikbare content klein, en is er veel ruimte voor verbetering. Dat betekent dus ook dat je niet perfectie moet verwachten met de eerste generatie. Teleurstelling die mensen ervaren hebben ze puur aan zichzelf te danken. Ik vind het mooi dat Nvidia de eerste stap heeft gezet naar real time raytracing, staat een daadwerkelijke mooie toekomst tegemoet voor gaming.
Nvidia heeft naar mijn weten nooit beloofd dat raytracing met de nieuwste spellen (zoals BFV) mogelijk zo zijn in 4k 60fps+
Inderdaad; Nvidia heeft bij release zorgvuldig vermeden RTX performance te vermelden.

Toch was het voor velen een onaangename verassing dat ze voor een redelijke performance met RTX zouden moeten terug schakelen van 4k 60fps of 1440p 100fps+ naar 1080p 60fps.
Dat krijgt terecht kritiek. Waarom nu geld investeren in een rtx kaart als de spellen over 2 jaar er pas fatsoenlijk mee overweg kunnen en jouw rtx kaart weer verouderd is. Ze hadden gewoon dat rtx gebeuren beter moeten timen en uitwerken over meerdere titels met betere framerates.

[Reactie gewijzigd door govie op 19 januari 2019 23:15]

Waarom nu een i9 9900K kopen als je binnen 2 jaar dezelfde performance kan kopen voor een fractie van de prijs?
Ray tracing is overduidelijk de toekomst en men moet gewoon ergens beginnen. Zo simpel is het.
Ik kan alleen maar hopen dat AMD ook instapt en straks niet zomaar wat "oude tech" kaarten uitbrengt in het najaar.
Je draait de zaak om, de rtx kaart is ER Al, de volgende CPU niet.
Dus ja, nu Dez rtx kaart kopen geeft je een beperkt voordeel. Weinig rtx games en matige rtx performance.
Er zijn NU use-cases waarbij de bijzondere eigenschappen van een i9 goed gebruikt worden (veel
cores op hoge snelheid)

Er is voor de RTX kaarten NU één use-case waar de bijzondere eigenschap (raytracing) matig gebruikt wordt.

Tegen de tijd dat raytracing echt een ding wordt in games kan een RTX kaart van nu niet meer meekomen en tot die tijd heb je er ook niet echt profijt van gehad dat die kaart kan raytracen.

Veel snelle cores in een CPU is NU al bruikbaar (al is een i9 niet echt value for money naar mijn mening).
Waarom enkel AAA games. Ik denk juist dat raytracing iets kan worden voor opkomende studio's die de centjes niet hebben om zoveel R&D goed te doen. Dit zet volgens mij meer deuren open naar mooie realistische games. Zo kan de ontwikkelaar meer focus geven aan de gameplay.
raytracing is een totaal andere manier om licht en schaduwen te berekenen dan wat we tot op heden gedaan hebben in games. Hoewel de techniek niet nieuw is, is er pas sinds de recente generaties videokaarten hardwarematige versnelling voor deze techniek. Er is dus nog heel veel ruimte voor verbetering. Daarnaast is raytracing enorm zwaar om te berekenen omdat het licht van elke lichtbron moet berekend worden inclusief weerkaatsingen. De graphics mogen dan wel relatief eenvoudig zijn, de berekening van het licht is dat niet.
Is die techniek die in rtx gebruikt wordt sowieso niet true Ray tracing omdat het vanaf het oogpunt gebeurt niet vanaf de lichtbron en daarnaast flink minder beeldpunten en vervolgens een noise filter toegepast?

Dat is wat ik er van begrepen heb en ik ben er niet bekend mee dus als het anders is hoor ik het graag.

Aha dit commentaar is offtopic of irrelevant top forum dit.

[Reactie gewijzigd door daellat op 20 januari 2019 01:12]

Nee, volgens het Helmholtz Reciprocity principe maakt het niet uit welke kant je op gaat, het verwachte resultaat is precies hetzelfde. Het enige verschil is dat je in veel gevallen meer ruis krijgt als je bij de lichten begint, dus heb je meer rays nodig voor een mooi beeld.

Bij de techniek die in RTX zit maakt dit niet uit: letterlijk het enige nieuwe is dat er nu hardware is die heel snel de eerste triangle kan vinden die een ray raakt. Of je bij een licht begint, bij het oog, bij allebij en in het midden wil ontmoeten: het is allemaal mogelijk en aan de developer om te kiezen.
Heel leuk allemaal voor Helmholtz en de pyshics zijn idd hetzelfde, waar het hier echter om gaat is dat de lichtstralen die nooit in je 'oog' terecht komen irrelevant zijn, als je vanuit je oog gaat rekenen bereken je dus alleen de relevante lichtstralen ipv yolo vanuit de lamp te gaan reflecten/refracten.
Stelt het Dunning-Kruger effect je niet in staat om te waarderen wat @laurxp zegt? Hij stelt *juist* dat hier geen sprake is van trucage slechts van optimalisatie (=minder irrelevante berekeningen) *omdat* de richting van berekening niet uitmaakt voor het uiteindelijke resultaat.
De reden dat je bij het oog begint (zover ik het al jaren begrijp) is dat je vanuit je oogpunt door iedere pixel in de viewport een lijn kan trekken. Je hebt dan net zoveel lijnen als je resolutie, ongeacht hoeveel lichtbronnen je hebt. (initieel, tot je diffusie tegenkomt in ieder geval)
Nee hoor dit is vrij standaard. Rays tracen die niet op je viewing plane vallen zijn verspilde rekenkracht
Ik gebruikte op mijn 80286/80287 computer het programma POVray. Dus nieuw is raytracing zeker niet.
POVray is niet realtime...
Dat kun je wel stellen!
Over één plaatje stond de pc een dag te stampen. :)
Haha! Inderdaad. Ik gebruikte zelf het programma Bryce. Had een beetje vage interface, maar als je het eenmaal doorhad kon je snel iets leuks maken. En dan de raytrace starten en wachten... lang wachten...... :) Het was toen 2001. 18 jaar geleden alweer. Man, wat vliegt de tijd.
EDIT: Bryce kon je toen combineren met Poser. Zo kon je scenes maken met mensen of dieren erin, of robots, enz. Was erg leuk in die tijd. Hier is een voorbeeldje. Zo'n plaatje kostte toen een halve dag rekenen:
http://www.bluelake.nl/files/sunsetdance.jpg

[Reactie gewijzigd door poktor op 21 januari 2019 23:53]

Zo'n plaatje ziet er toch geweldig uit! Even wachten maar dan heb je ook wat. :)
Dank je :)
Was in die tijd een hoop gepruts hoor. En als de wireframes dan stonden, kon je nog een paar uur wachten en hopen dat het uiteindelijk werd wat je had gehoopt. Realtime raytracen kon je toen enkel van dromen. Was toen wel een grote wens van me, dat weet ik nog heel goed. :)
Als POVray wél realtime op een 80286 zou zijn zou Battlefield V zich pas echt hard moeten schamen en heeft Nvidia de grootste berg BS ooit geproduceerd ;)
Ja en toen moest je uren wachten voordat hij een demo ge raytracing had.
Ik heb ook nog met povray geëxperimenteerd, uren wachten op één plaatje :)
Het gaf wel revolutionaire plaatjes...voor die tijd...
En dat op een 2080ti . Maar serieus je moest eens weten hoeveel berekeningen voor raytracing gedaan moeten worden.
Bij deze mod om precies te zijn 4 rays per pixel + een bounce. Dus 4x2560x1440x2 = 29.491.200 berekeningen.
Per berekening vliegt een deeltje vanaf de camera (jou gezichtspunt) random ergens he?t level in. Wanneer een deeltje een muur raakt wordt berekend wat de bounce richting is. Raakt het deeltje vervolgens een lamp, dan weet je dat de muur verlicht wordt door die lamp.
Eigenlijk zijn 4 rays per pixel te weinig. Om geen ruis te krijgen moet je eigenlijk ongeveer 10.000 tot 100.000 per pixel sturen. Onmogelijk om dat realtime te doen. Gebeurt wel in render studios zoals bijvoorbeeld Maya of 3dmax. Een frame kan daardoor soms uren duren om te berekenen. En dat op een render farm van 100 machines.
Doordat 4 rays per pixel eigenlijk te weinig is en er veel ruis ontstaat , is er een post processing algoritme wat je beetje kan vergelijken met anti aliasing. Een andere optimalisatie is dat ray berekeningen worden opgeslagen in het geheugen, zodat bijvoorbeeld in een volgende frame de data opnieuw gebruikt kan worden. Vereist wel enorme memory. Ook hier is bijvoorbeeld 16gb veel te weinig en wil je eigenlijk 16tb aan videogeheugen hebben :)
Raytracing zelf is eigenlijk een hele simpele implementatie. Velen maar simpeler dan klassiek rastering Renders zoals alle huidige spellen dat doen. In bijvoorbeeld Battlefield alleen al zitten ruim 50 pre en postprocessing technieken om schaduwen, licht, reflecties etc mooi te renderen. Met raytracing krijg je dit allemaal kado. Plus dat het velen malen mooier is. Enige probleem is dat je hardware factor miljoen (niet overdreven) sneller moet zijn.
Van wat ik ervan begreep is gebruik gemaakt van de volwaardige raytracing techniek die ook in films wordt gebruikt, waarvoor hele server parken nodig zijn op het te renderen. De raytracing die je ziet in games als Battlefield 5 maken gebruikt van nog veel comprimesen om het speelbaar te houden.
Van wat ik ervan begreep is gebruik gemaakt van de volwaardige raytracing techniek die ook in films wordt gebruikt
Moah, nee. Er wordt een super efficiente en onvolledige taytracing gebruikt waarbij het grootste gedeelte van de pixels eigenlijk geraden worden. Voor dat raden zit er ook een stukje AI in de kaart anders krijg je een enorme ruisboel.
Volwaardige raytracing (zoals voor films wordt gebruikt) is nog wat uitgebreider maar beide zijn wel op dezelfde princiepes gebaseerd.
Dat is inderdaad wat ik vermoedde, want alles volledig echt doorrekenen, dat kan ook met de huidige hardware gewoon nog niet real-time.
Correct, BF5 doet het voor het grootste gedeelte nog met een traditionele rasterizer. Voor een groot deel maakt het (nog) geen visueel verschil of je een raytracer gebruikt of een rasterizer, en de RTX 2080 is te langzaam om álles te raytracen. Dit is vanuit Nvidia ook een beetje een politieke overweging: een kaart die heel erg snel kan rasterizen, kan niet óók heel erg snel raytracen.

De komende jaren zullen we waarschijnlijk langzaam maar zeker steeds meer spellen zien die een steeds groter gedeelte met raytracing doen, waardoor de hardware ook steeds meer die kant op gaat. Hierdoor krijg je wel een tweedeling in zowel hardware als games: moderne games werken alleen op moderne kaarten, oudere games werken wellicht zelfs beter op oudere kaarten. Maar nu de doos van Pandora open is, lijkt mij dit haast onvermijdelijk: alle vuile hacks die ontwikkelaars de laatste decennia hebben moeten gebruiken om games ook maar een beetje realistisch er uit te laten zien, kunnen in één keer de prullenbak in. Het is voor zowel developers als artists simpelweg een heel stuk makkelijker en dus sneller en goedkoper om voor raytracing te ontwikkelen.
Ik denk dan ook dat nvidia (en amd) nog wel een tijd met hybride oplossingen zullen moeten komen waarbij je twee packages of twee delen on-die hebt waarbij een traditioneel rasterisation doet en de ander tracing totdat de losse elementen (zoals CU's) generiek genoeg zijn om op basis van de firmware en hun RTOS goed te kunnen schakelen tussen raster en trace. Probleem is dat je dat op het moment niet realtime kan switchen en toch performance hebt.

Probleem is dat je met zo'n race tussen nieuwe techniek en oude optimaliseren je toch nog heel lang de legacy moet ondersteunen.
Wellicht in de toekomst 1 traditionele gpu en 1 RT gpu in sli.
Nee, real-time raytracing is gewoon heel erg zwaar.
Ik heb het juist leren kennen als een hele efficiente techniek. De code voor een volledige renderer op basis van raytracing kan je op het formaat van een creditcard uitschrijven.
Dat het momenteel niet efficiënt is heeft volgens mij weinig te maken met de zwaarheid van raytracing an sich, want dat is het niet zo zeer, maar meer dat het nu voor het eerst echt wordt toegepast en dat er nog een hoop te leren valt over hoe het efficiënt in hardware en software toegepast kan worden.

Edit: Ik begrijp dat efficiëntie en de complexiteit van de code niet hetzelfde zijn, had het wellicht wat anders moeten verwoorden.
Simpelheid van code kan wel bijdragen aan de efficientie, als het volledige renderproces in alleen de raytracing stap kan, dan heb je veel minder onderdelen binnen het renderen die afhankelijk van elkaar zijn, wat efficiëntie zou kunnen ondersteunen. (https://www.pcper.com/rev...ng-Games-Story-Other-Side)

Ik bedoel ook niet te zeggen dat Raytracing extreem licht is en mijn i3 laptopje van 100 jaar oud het beter zou moeten kunnen, maar het kan zeker nog efficiënter kunnen dan dat we nu zien. Meer dan 10 jaar terug waren er proof of concept games die volledig op basis van raytracing werkten en er voor die tijd niet verkeerd uitzagen (https://www.youtube.com/watch?v=33yrCV25A14), met de vooruitgang in GPU's die we in die tijd hebben gehad zou ik denken dat we nu wel beter zouden moeten kunnen dat wat er nu te zien is.

[Reactie gewijzigd door Flamesz op 19 januari 2019 16:18]

Het principe van een lijntje trekken vanuit de camera en deze een aantal keer van oppervlakken laten stuiteren is simpel, daarom is de code simpel. Het probleem is alleen dat, om een mooi beeld zonder al te veel korrel te creëren, je enorm veel lijntjes moet trekken die meermaals stuiteren. En dat elke te renderen frame weer opnieuw. En dat is wat zoveel rekenkracht/tijd kost.

[Reactie gewijzigd door skndd op 19 januari 2019 15:30]

Het real-time doorreken van lichtval (waarbij je dus letterlijk iedere 'ray' moet tracen, van bron tot eindpunt, met alle wereld-interacties) is nou eenmaal, van nature, zeer intensief. Net als het bereken van shadows (de pendant van raytracing, zeg maar).
En beide zijn bijzonder efficient te doen op moderne hardware. Ik snap niets van je idee dat het 'zwaar; zou zijn. Zwaar is geen maatstaf, efficiëntie is. Als jij denkt dat Raytracing niet de toekomst is vergis je je. Als ike de backroom demo's op CES had gezien had je je post niet gedaan. Met correcte games, correcte drivers kan je op een 2080 dingen doen die echt nieuw zijn. Persoonlijk heb ik enkele malen met open mond gestaan en gecheckt of de demo die ik zag echt ope de hardware liep die gepresenteerd was.

Het real time doorrekenen van licht is NIET intensief. Het is extreem eenvoudig. Het kost alleen veel hardware maar de nieuwe GPU's hebben dat in overvloed. Print je post en leest hem over een half jaar nog eens als de drivers en games klaar zijn.
Als dat zo simpel zou zijn. Zouden alle games al via raytracen hun frames renderen.

De berekening is ontiegelijk zwaar. Dat het principe eenvoudig is, leuk. We raytracen ook al minstens 20 jaar.

Niet voor niets dat Pixar bv enorme renderfarms heeft. Waar vandaag de dag anderhalf uur aan film alsnog maanden nodig heeft. En dat met 1000den keren de hoeveelheid hardware als de gemiddelde game pc.

Er zit een reden achter dat ze het in games pas 'simpel' toepassen op enkel de lichtbronnen en nog -lang- niet voor elke pixel in zo'n scene.
"Zwaar is geen maatstaf, efficiëntie is."

Appels en peren. Je kunt iets heel efficient doen, maar dan kan het nog steeds een zeer arbeidsintensieve taak wezen.

"Het is extreem eenvoudig. Het kost alleen veel hardware"

LOL. Met andere woorden, het is een 'zware' taak, dus. :)
Hoe lang de code is, zegt natuurlijk niet alles over de efficiëntie van een proces.

Neem sorteren: de eenvoudigste code levert niet de snelste sortering op.
Dat de code efficiënt is wil niet zeggen dat het geen zware techniek is. Je hebt nogal wat rays nodig om tot een mooi resultaat te komen en dat realtime doen gaat met de huidige GPU's eigenlijk niet. DirectX/Nvidia biedt wat trucjes om het wel te laten werken, maar wel met flink wat minder rays. Om ervoor te zorgen dat het geen rommeltje wordt vol ruis worden er wat algoritmes gebruikt om tot een smooth geheel te komen.

Maar echte realtime raytracing die op volle toeren kan draaien is voorlopig nog bij lange na niet mogelijk.
Een fysiek formaat, de grootte van een stuk code, de complexiteit van een programma, de efficientie van dat programma zijn allemaal zeer verschillende zaken.
...weinig te maken met de zwaarheid van raytracing an sich, want dat is het niet zo zeer
Raytracing is héél rekenintensief voor fotorealistische renders in verhouding tot alle andere rekentaken.
Meer dan 10 jaar terug waren er proof of concept games die volledig op basis van raytracing werkten
2009! Toen had je bijv. Assassins Creed II. Heb je die video van je zelf beken? Dat is een geval dat zich niet met een game uit 1990 kan vergelijken.
...zou ik denken...
Ik zou vooral iets meer gaan lezen en onderzoeken.
Een fysiek formaat, de grootte van een stuk code, de complexiteit van een programma, de efficientie van dat programma zijn allemaal zeer verschillende zaken.
Zoals ik in mijn edit aangaf, ik begrijp dat het verschillende dingen zijn, dat betekent niet dat ze 0% gerelateerd zijn.
2009! Toen had je bijv. Assassins Creed II. Heb je die video van je zelf beken? Dat is een geval dat zich niet met een game uit 1990 kan vergelijken.
Ja dat is een eerlijke vergelijking, een AAA titel met een miljoenen budget vs een spel gemaakt door een paar studenten/onderzoekers. Waar het om draait voor mijn punt in dat filmpje is de lighting, dat vertoont al de complexiteit die mensen met rayracing willen behalen. Dat word getoond in een minder mooie game wereld met minder mooie textures dan een AAA titel is irrelevant.
De formule om pi te berekenen is ook erg simpel, maar als je tot een (paar) miljoen decimalen gaat, is het nog steeds een manier om zelfs de hedendaagse supercomputers te benchmarken
Vergeet niet dat die demo uit 2009 op een lage resolutie draaide, duidelijk te zien in het filmpje. Scheelt nogal wat in benodigd aantal rays wat je moet doorrekenen. Zo zijn er nog vast wel meer variabelen....
Eigenlijk heb je helemaal gelijk.
Raytracing staat eigenlijk al 20 jaar in de kinderschoenen,
Ehhhh. Kleine correctie, REALTIME raytracing staat in de kinderschoenen. Raytracing op zich heeft men toch al aardig wat decennia prima onder de knie. Kijk maar even naar de CGI in de gemiddelde bioscoop film.
Precies! Niet om de oude graphics van Q2maar ik zie persoonlijk nog steeds de meerwaarde van RT niet in. Ja, het draagt bij aan een realistisch plaatje maar ik zie tijdens het gamen het verschil echt niet. Ik heb liever een goede hoge framerate.

[Reactie gewijzigd door Enyalios2011 op 19 januari 2019 15:19]

Per lijn? pixels or per pixel word met de tangens berekend voor elk object en muur vanuit elke lichtbron, tel dat maar bij elkaar op in combinatie met 4K resolutie.
FAQ op website heeft het hier ook over:

"While it is true that Quake II is a relatively old game with rather low geometric complexity, the limiting factor of path tracing is not primarily raytracing or geometric complexity. In fact, the current prototype could trace many more rays without a notable change in frame rate. The computational cost of the techniques used in the Q2VKPT prototype mainly depend on the number of (indirect) light scattering computations and the number of light sources. Quake II was already designed with many light sources when it was first released, in that sense it is still quite a modern game. Also, the number of light scattering events does not depend on scene complexity. It is therefore thinkable that the techniques we use could well scale up to more recent games."
Er moet iets goed mis zijn met de efficiëntie van raytracing als het noemenswaardig is dat een 22 jaar oud spel 60 FPS haalt met de functionaliteit.
Precies, en dat is ook een van de rede dat de meeste mensen het ook niet gebruiken in First-person shooters en helemaal in in multiplayer, omdat je dan zo hoog mogelijk fps wil krijgen.

En dat ik persoonlijk nog steeds niet de meerwaarde zie van raytracing.

[Reactie gewijzigd door AmigaWolf op 19 januari 2019 16:32]

Je hebt helemaal gelijk.

En alleen fanboys zullen je aanvallen.

[Reactie gewijzigd door PlowKing op 21 januari 2019 09:38]

Begrijp niet waarom het alleen voor de RTX serie is? Hoe groot is de vinger van Nvidia die in de pap roert bij Microsoft, blijf het jammer vinden dat developers naar Nvidia blijven luisteren.
Begrijp niet waarom het alleen voor de RTX serie is?
Alleen de RTX serie heeft gespecialiseerde hardware aan boord waarmee raytracing real-time kan worden gedaan.
Heeft daar helemaal niks mee te maken als AMD een graphics card bouwt met ray tracing cores zou het ook moeten kunnen. Alleen je hebt die speciale ray tracing cores nodig om die berekeningen te kunnen doen.
Wat laat de titan v zien? Die kan dit niet realtime tonen. Niets houdt AMD tegen om RT van direct X te ondersteunen in hun drivers, als jij denkt dat het zo simpel is om vloeiend werkend te krijgen op huidige GPU's die hier geen dedicated HW voor aan boord hebbeb. Denk niet echt dat jij begrijpt wat hier voor nodig is.
Heeft Microsoft er ook geen verstand van dan? Die heeft het naar gaming gebracht en het zou volgens Microsoft op alle huldige GPU’s moeten werken.

Wat de Titan V laat zien is dat die BF5 kan doen met Microsofts Ray Tracing aan en dan nagenoeg net zo snel is dan de 2080TI, en dat zonder de “RT cores”, hoop marketing van Nvidia iets waar ze wel goed in zijn.
Voor een kaart die dus meer dan 2x zo duur is als de 2080ti, en op zichzelf dus genoeg rekenkracht heft om het te benaderen. De speciale hw in de rtx is er dus voor om dedicated dit werk te kunnen doen en daarmee op een goedkopere manier dan de titan v.
Het gaat om de rekenkracht.
Titan V:

Pixel Rate
139.7 GPixel/s
Texture Rate
465.6 GTexel/s
FP16 (half) performance
29,798 GFLOPS (2:1)
FP32 (float) performance
14,899 GFLOPS
FP64 (double) performance
7,450 GFLOPS

RTX 2080TI:

Pixel Rate
136.0 GPixel/s
Texture Rate
420.2 GTexel/s
FP16 (half) performance
26,895 GFLOPS (2:1)
FP32 (float) performance
13,448 GFLOPS
FP64 (double) performance
420.2 GFLOPS

RTX 2070:

Pixel Rate
103.7 GPixel/s
Texture Rate
233.3 GTexel/s
FP16 (half) performance
14,930 GFLOPS (2:1)
FP32 (float) performance
7,465 GFLOPS
FP64 (double) performance
233.3 GFLOPS

Vega 64:

Pixel Rate
98.30 GPixel/s
Texture Rate
393.2 GTexel/s
FP16 (half) performance
25,166 GFLOPS (2:1)
FP32 (float) performance
12,583 GFLOPS
FP64 (double) performance
786.4 GFLOPS

Vega VII:

Pixel Rate
115.2 GPixel/s
Texture Rate
432.0 GTexel/s
FP16 (half) performance
27,648 GFLOPS (2:1)
FP32 (float) performance
13,824 GFLOPS
FP64 (double) performance
1,728 GFLOPS

Deze kaarten kunnen Ray Tracing doen zoals in BF5, maar waarom houd Nvidia dit tegen? Kan alleen maar bedenken dat ze AMD voor de zoveelste keer willen blokkeren.

Overigens maakt de prijs niets uit, er zitten geen “RT cores” in een Titan V dus zijn die niet noodzakelijk en alleen maar marketings praat.

[Reactie gewijzigd door Lindatje1 op 19 januari 2019 20:37]

Als je de specs mbt rays/s weglaat dan lijkt het idd alsof al die ander kaarten het ook kunnen.
Titan V heeft geen “RT cores” maar doet wel BF5 met Microsofts Ray Tracing aan, is dan net zo snel dan de 2080TI. Dus nogmaals zonder “RT cores”.
Nogmaals, vergelijkbaar op een lagere setting, en een kaart die meer dan het dubbele kost dan zelfs de 2080ti en wat betreft de standaard gpu een heel stuk krachtiger ook.
Wat een bullshit, nvidia houdt helemaal niets tegen. AMD is helemaal vrij om ook de rt van directX te ondersteunen. Het is geen marketingklets, die rt-cores zijn geoptimaliseerd om de specifieke berekeningen voor raytracing beter uit te voeren. Ja het is ook mogelijk met ruwe kracht, maar dan moet die wel een stuk sneller zijn.
Nvidia, hire that man! :) Zo'n man is goud waard om het 'nut' van raytracing aan te tonen (daar waar, denk ik, momenteel nog een hoop mensen afzien van een RTX, omdat nVidia m.i. nog niet genoegzaam duidelijk gemaakt heeft wat raytracing voor een thuisgebruiker kan doen).
Het is ook grotendeels aan de game developers om de techniek toe te voegen. Ik ben echter van mening dat het te vroeg is om raytracing op een goede snelheid te laten draaien in de meeste games. De enige reden dat het in Quake 2 kan is omdat er verder niet zo veel intensiefs gebeurt in die game.

[Reactie gewijzigd door Natrox op 19 januari 2019 18:02]

Het is inderdaad aan de ontwikkelaars om het toe te voegen, maar in theorie is het absoluut niet moeilijk. De meeste games maken tegenwoordig al gebruik van Physically Based Rendering en dat zou perfect moeten werken in combinatie met raytracing. In games met Screen Space Reflections wordt er al gewisseld tussen die reflecties en reflection probes. Raytracing toevoegen is dus waarschijnlijk niet meer dan de benodigde code toevoegen en dat misschien wat finetunen. De rest van een game zou er naadloos mee samen moeten kunnen werken.

Mijn theorie is dat ontwikkelaars er nu de meerwaarde nog niet van zien. De performance drop is best significant en dure kaart + slechte prestaties zorgt mogelijk voor slechte PR en een hoop klachten op fora. De veilige route is dus raytracing nog niet implementeren en wachten op betere drivers en snellere kaarten.
Je kan natuurlijk ook de andere kant op redeneren: als er geen games zijn die gebruik maken van raytracing, waarom zou je als GPU-maker een significant deel van je transistorbudget uitgeven aan RT cores? Voor rasterized games is je kaart dan namelijk altijd duurder en/of langzamer dan de concurrentie.

Gelukkig heeft Nvidia deze patstelling weten te doorbreken. Ik verwacht zelf dat de developers vrij snel overstag gaan: alle trucjes die nu worden toegepast om het er een beetje realistisch uit te laten zien zijn niet meer nodig met raytracing, dus games zijn een stuk makkelijker te maken. Vooral voor artists is dit blijkbaar een groot verschil: als je materials een beetje oké zijn, ziet je scene er automatisch fatsoenlijk uit.
Muah, dat laatste klopt niet helemaal. Veel van de huidige features (SSR, SSAO, GI) zitten standaard in de grootste engines (Unity, Unreal Engine 4, CryEngine, etc) en die aanzetten is een kwestie van plug & play. Ook daarmee ziet je scene er automatisch fatsoenlijk uit op wat finetunen hier en daar. Het grote nadeel is dat ze de meeste effecten gebaseerd zijn op wat jij kunt zien en dat brengt wat artifacts met zich mee. Het ziet er 9 van de 10 keer echter nog steeds mooi uit.

Raytracing ziet alles, niet alleen wat jij ziet, waardoor je die artifacts niet hebt, maar dat heeft weer als nadeel dat het enorm veel rekenkracht kost. Maar ook hier zijn er trucjes nodig om het er goed uit te laten zien. Zonder het denoising algoritme heb je bijvoorbeeld een beeld vol met ruis in de reflecties en schaduwen. Beiden opties zijn dus niet heilig.

Overigens is het goed dat Nvidia de stap naar raytracing durft te zetten omdat het deuren opent naar meer mogelijkheden qua graphics, maar ik vind de aanpak echt slecht en het lijkt erop dat ze de kaarten simpelweg te vroeg uitgebracht hebben. Dat kan ook weer averechts werken zoals ik in mijn vorige post aangaf. Ondersteuning in één game en de prestaties in die ene game zijn niet om over naar huis te schrijven. Dat is inmiddels beter na wat updates, maar je levert alsnog flink in. Nvidia had er beter aan gedaan om één high-end RTX-kaart uit te brengen. Het paradepaardje om gebruik te maken van de allernieuwste features. Had vervolgens een half jaar gewacht met de release, meer ontwikkelaars aan boord getrokken en de impact was een stuk positiever geweest dan nu.
Raytracing ziet alles, niet alleen wat jij ziet,
Nou ja, dat is ook weer niet waar.
Je traced namelijk vanuit het scherm totdat je een lamp tegenkomt, eigenlijk dus achterstevoren. Hierdoor zullen jouw 'scherm' rays niet overal in de scene terechtkomen waar het licht eigenlijk zou komen. Dus ook met raytracen is het normaal dat niet alles 'gezien' wordt.
Onzin, je rays komen wel overal. Het kan alleen gebeuren dat dat kans heel erg klein is dat ze op bepaalde plekken komen, waardoor je meer rays nodig hebt om van je noise af te komen. Dit kan bijvoorbeeld gebeuren als je een scene hebt waarbij de enige lamp in een doos zit met een opening van de camera af: als je dan de lamp wil raken, heb je bij meerdere bounces veel geluk nodig. Maar ze kúnnen er nog wel komen. En als je zulke problemen in je scene hebt, kan je ook gewoon (gedeeltelijk) vanaf de lamp tracen.
Onzin, je rays komen wel overal. Het kan alleen gebeuren dat dat kans heel erg klein is dat ze op bepaalde plekken komen, waardoor je meer rays nodig hebt om van je noise af te komen.
Ja, dat is een bijkomend probleem inderdaad.

De rays komen hoofdzakelijk op hetgeen terecht waar je naar kijkt omdat er vanaf het scherm naar lichten wordt gezocht. Dat is namelijk veel efficienter. De lampen sturen dus geen rays uit.
Na wat bounces komen de rays ook op plekken die je niet ziet (zoals de achterkant van dingen) maar dit zijn maar weinig rays waarvan je het effect toch amper ziet (alleen via nog meer bounces).
En zeker in een gamecontext zal er met een minimale hoeveelheid bounces gewerkt worden.
Dus alle oppervlakken die je niet ziet (zoals iets dat ergens achter staat) zullen zo goed als geen rays ontvangen.
Juist de rays die dingen raken die je niet kan zien zijn interessant. Als we alleen willen kijken naar alles wat we kunnen zien, kunnen we net zo goed een rasterizer gebruiken.

Kijk bijvoorbeeld naar deze render: https://www.cebas.com/pro.../cornell_box_renderRF.jpg

Op het plafond en de achterwand zijn er rode en groene plekken te zien. Dit komt door licht dat uit de lamp komt, de rode muur raakt, daarna de witte muur raakt, en dan naar de camera gaat. Juist de rays die meerdere bounces hebben, maken de scene realistisch.

Deze video laat het ook erg goed zien: https://www.youtube.com/watch?v=Cdy9AMxxaQM

Daarnaast is ook erg belangrijk wat het water doet. Door de golfjes zijn er witte plekken in de reflectie en refractie van het licht. Dit zijn caustics, en ze verschijnen alleen als je rays vanuit de lamp stuurt. Puur vanuit de camera kúnnen ze ook ontstaan, maar de kans daarop is zo bizar klein dat je dan per pixel vele duizenden samples nodig hebt.

Je hebt natuurlijk gelijk dat de kans dat een oppervlak na een paar bounces geraakt wordt, erg klein is. Maar omdat de kans zo klein is, wegen deze rays zwaarder mee in het eindresultaat. Je kan dus zeker niet zomaar zeggen dat je het effect niet kan zien.

[Reactie gewijzigd door laurxp op 19 januari 2019 23:51]

Ja, mee eens dat dit voor pro renders zo is.
Draagt allemaal bij aan GI enzo.
Maar in een game wordt het lastiger. Alleen al genoeg bounces hebben om dit voor elkaar te krijgen wordt lastig.
En dan is zo'n cornell box een enorm gecontroleerde omgeving.
En die caustics ga je ook niet zien in games. :)
Je hebt inderdaad veel rays nodig om dit goed te laten werken. Gelukkig is Nvidia bezig met hardware-acceleratie waardoor dit over een paar generaties goed te doen is.

Dit mag dan wel een gecontroleerde omgeving zijn, maar de reden dat ik dit laat zien, is om aan te tonen dat het zelfs effect heeft in de meest simpele scenes. Momenteel lijkt het inderdaad weinig effect te hebben in games, maar voor een groot deel komt dat natuurlijk ook doordat de games nog niet gebouwd zijn om volledig gebruik te maken van de pluspunten van een raytracer: nog maar een fractie van de gebruikers heeft immers hardware om dat te doen, dus moet het er op een rasterizer ongeveer hetzelfde uitzien. Stel je eens voor hoeveel beter de graphics van Bioshock hadden kunnen zijn met een volledige raytracer. Ik kan je garanderen dat iedereen dan helemaal lyrisch zou zijn geweest over de realistische caustics.
Gelukkig is Nvidia bezig met hardware-acceleratie waardoor dit over een paar generaties goed te doen is.
LOL nee joh.
Nvidia is vooral goed in het verbergen van een gebrek aan rays. Er zit zelfs een heel AI gebeuren in die kaarten die pixels bedenkt op basis van enkele rays.
Als je ook de andere video's over dit quake spel bekijkt (en andere achtergrondfilmpjes over RTX) dan zul je zien dat het grotendeels 'smoke and mirrors' is en dat het nog lang niet in de buurt komt van een 'echte' render.

En je begrijpt hoop ik dat als de eerste bounces (dus die direct op hetgeen op het scherm zichtbaar is) al slechts voor 10% gedekt zijn dat de kans dat er uberhaupt rays op moeilijke plekken komen echt minimaal is.
En dat gaat de komende tijd ook niet verbeteren, daar zou de hardware ordes van grootte meer moeten gaan uitrekenen.

Ooit? Ja, tuurlijk. Maar voorlopig nog een hele tijd niet.
Eens, veel zit natuurlijk al in de engine. Maar Raytracing maakt engines wel een heel stuk eenvoudiger: ik weet niet hoeveel regels code je in een moderne engine nodig hebt, maar een realistische raytracer lukt al in een paar duizend. Vooral voor indiegames zou het dan wel eens aantrekkelijker kunnen zijn om zelf iets te schrijven in plaats van te moeten betalen voor een engine.

Denoising heb je inderdaad eigenlijk wel nodig, maar dat is meer vanwege een gebrek aan rekenkracht. Met voldoende rays hoef je niet te denoisen, hoewel je het natuurlijk wel wil blijven doen om nog mooiere beelden te krijgen.
Dat is ook niet wat ik poog. Het is misschien niet moeilijk om het toe te voegen, maar of er frame-time budget voor is is maar de vraag. Een moderne game doet al een hoop waardoor er wellicht niet zoveel ms over is voor raytracing. Mijn punt is dat Quake 2 vrij weinig doet, en dus is er ruimte om RTX toe te voegen.
Aan de ene kant snap ik best dat Nvidia het op deze manier speelt, proberen met raytracing een vraag te creeeren die het rechtvaardigt om een ontwikkelingsplatform te worden. Dit zie je heden ten dage bij bijna alle bedrijven, er worden deel producten gemaakt met onbegrensde mogelijkheden in de hoop dat anderen ermee aan de slag gaan om er een succes van te maken en jij lekker licenties kan verkopen. Helaas is dat ermee aan de slag gaan een prijzige aangelegenheid waardoor de deelproducten slechts in een niche markt terecht komen of een stille dood sterven. Gezien de pracht en praal die met de bestaande rastertechnieken tentoongespreid wordt, komt RTX voor mijn gevoel 10-15 jaar te laat.
Gezien het absurde aantal transistoren dat bijvoorbeeld op een RTX 2060 zit is het niet reëel te denken dat dit 10 tot 15 jaar geleden mogelijk was. Zo'n RTX 2060 heeft er 10.8 miljard. Zo'n 10 jaar geleden praten we over de GTX 260/280 en die zaten toen op 1.4 miljard transistoren.

Overigens probeert Nvidia momenteel via de RTX 2060 ($349) Raytracing naar het midden van de markt te pushen. Gezien het succes dat de GTX 970 ($329) destijds had zou dit best nog een kans van slagen kunnen hebben. Dat is toen gelukt omdat de GTX 970 iets goedkoper was dan 'normaal' terwijl de GTX 960 enorm veel trager was. We weten nog niet wat er onder de RTX 2060 uit gaat komen dus Nvidia zou het opnieuw kunnen proberen. Gezien het aantal consumenten dat bereid was meer dan 400 euro voor een GTX 1060/RX 580 neer te leggen in 2017 kan ik het ze moeilijk kwalijk nemen. De consumenten lijken gewoon graag meer te willen betalen. (Immers een GTX 1060 3GB had je toen nog voor 225 euro, had je ook prima 2 jaar mee vooruit kunnen gaan tot deze generatie uit kwam).

Verder zijn ook Microsoft en AMD bezig met raytracing. In geval van Nvidia zal het er vanaf hangen of ze het net zo goed ondersteunen als gameworks (wat je er ook van mag vinden, itt open source kun je er als afnemer wel support op krijgen).

[Reactie gewijzigd door sdk1985 op 19 januari 2019 16:00]

Dat begrijp ik mijn punt is dat het 10 jaar geleden een techniek was die veel meer zou toevoegen tov rasterisation dan dat het nu doet, waardoor het moeilijker is om developers te bewegen er veel resources in te steken.

Min of meer hetzelfde als met sli en crossfire. Het ontwikkel proces van de techniek heeft zoveel tijd gekost dat het te laat komt om een must have te zijn voor fantastische graphics.

dan krijg je daar bovenop nog de hele vr toestanden. om dat ook nog eens fatsoenlijk te laten presteren met ray tracing op 4k 144hz lijkt me de komende jaren helemaal schier onmogelijk.

Wellicht komt er teveel tegelijk voor de markt om het op te sponzen.
VR komt mij een beetje over als de Wii. Dat virtuele plastic stuurtje waar je de controller in kan zetten is in eerste instantie hartstikke leuk in Mario kart. Maar zodra je een beetje competitief aan de slag wil dan sluit je snel het adaptertje met het pookje aan zodat je ronde tijden omhoog gaan. Voorlopig heeft VR een vergelijkbaar negatief effect.

Tel daarbij de vele praktische problemen (sneuvelen van spullen, ongezellig, gewicht op je hoofd, aanschafprijs) en ik zie zowel voor casual als hardcore gamers VR voorlopig niet als iets waar we echt om staan te springen. Natuurlijk is er een groep die het prachtig vind maar of het percentage dat daarvan bereid is erin te investeren hoog genoeg is betwijfel ik.

Ik zie op basis van het bovenstaande VR de komende jaren eerlijk gezegd nog wel een stille dood sterven. Op de tv's is het al helemaal verdwenen.

Augmented reality heeft wat dat betreft mijns inziens een stuk grotere kans van slagen. Dat kun je tenminste nog gezellig doen :).
"Het is ook grotendeels aan de game developers om de techniek toe te voegen."

Meestal is het een combinatie van de twee, waarbij de hardware 'kant' zijn nieuwe techniek promoot met de laatste kick-ass game (zoals TressFX haar in Rise of the Tomb Raider, bijvoorbeeld). Dat heeft m.i. bij de introductie van de RTX kaart een beetje ontbroken; wat het onmiddelijke gevolg heeft dat veel mensen nog even de kat uit de boom kijken, qua raytracing. Vandaar dat de beste man die dit (zo snel) voor elkaar gekregen heeft in Quake 2, wel een pluim verdient. nVidia zal er in ieder geval fors blij mee wezen. :)
Ik denk niet dat het een goede representatie is van de techniek omdat het dus performance-wise geen probleem is om dit in Quake 2 te krijgen. Dus ik heb niet het idee dat nVidia veel waarde hier aan hecht. Het is hoe dan ook wel vet gedaan.
Veel mensen zien af van de RTX voornamelijk vanwege de prijs. Daar komt de onzettend beperkte ondersteuning van Raytracing op dit moment nog eens bij.
Heb je een 1080/1440p scherm? Dan voldoet eigenlijk alles vanaf een 980Ti / AMD Fury nog wel.
Veel mensen zien af van de RTX voornamelijk vanwege de prijs. Daar komt de onzettend beperkte ondersteuning van Raytracing op dit moment nog eens bij.
Heb je een 1080/1440p scherm? Dan voldoet eigenlijk alles vanaf een 980Ti / AMD Fury nog wel.
Deze redenatie klinkt niet logisch. De 980 Ti was destijds nu net een kaart van pak hem beet 750 euro. Ook de Fury had een vergelijkbaar prijs niveau. Een custom RTX 2080 zit bij benadering op hetzelfde prijs niveau, een RTX 2070 en een RTX 2060 zitten er flink onder. De RTX kaarten zijn pas net uit en de eerste maanden betaal je traditioneel altijd de hoofdprijs. Velen zullen alleen al daarom de kat uit de boom kijken.

Overigens heb ik zelf sinds 2017 een GTX 1070 welke een klap sneller is dan een GTX 980 Ti en die voldoet echt niet in elke game op 1080p. Pak een game als Ghost Recon Wildlands en op ultra moet je niet gek opkijken als je regelmatig richting de 40 fps duikt. Laat staan op 1440p.

[Reactie gewijzigd door sdk1985 op 19 januari 2019 15:51]

Alleen is het enigste wat op dit moment snel genoeg is om in moderne games raytracing te gebruiken is een 2080Ti.
De goedkoopste 2080Ti die ik kan vinden is deze pricewatch: Zotac Gaming GeForce RTX 2080 Ti Twin Fan.
Die is toch echt een klap duurder als de 980Ti bij introductie. Dus zelfs na een prijsdaling van 25% zit je nog boven de introductieprijs van de 980Ti. Deze prijsklasse was altijd gereserveerd voor de Asus MARRS kaarten en dergelijke. Met deze prijzen word de afzetmarkt behoorlijk verkleind door Nvidia.

40fps vind ik persoonlijk geen probleem. Ik denk ook dat veel mensen er geen 1200 euro voor over hebben om dat een beetje op te krikken. (En dan ga ik er vanuit dat ze hun systeem niet hoeven upgraden)

[Reactie gewijzigd door arbraxas op 19 januari 2019 16:06]

Alleen is het enigste wat op dit moment snel genoeg is om in moderne games raytracing te gebruiken is een 2080Ti.
Heb je de reviews van de RTX 2060 wel gelezen? Bij HWI zie je de RTX 2060 73,3 fps, 63,8 fps en 54,3 fps op respectievelijk medium/high en ultra DXR. https://nl.hardware.info/...nchmarks-in-battlefield-v Voordat die dingen uit kwamen gingen we nog uit van 30 fps op 1080p voor de snelste van het stel. Tot heden valt dat allemaal reuze mee en is de snelste van het stel 300% sneller dan verwacht.

De enige valide vraag in deze is hoeveel games er daadwerkelijk iets mee gaan doen de komende tijd. Momenteel is de adoptie van de RTX kaarten nihil dus voorlopig wordt dat een lastig verhaal. Ze staan nog niets eens in de steam charts.
De goedkoopste 2080Ti die ik kan vinden is deze pricewatch: Zotac Gaming GeForce RTX 2080 Ti Twin Fan.
Die is toch echt een klap duurder als de 980Ti bij introductie. Dus zelfs na een prijsdaling van 25% zit je nog boven de introductieprijs van de 980Ti.
Gezien het bovenstaande zie ik niet hoe dit relevant is voor de strekking van het verhaal. Maar los daarvan lijkt het er sterk op dat Nvidia alle prijspunten heeft doorgeschoven. de x70 is duurder, de x80 is duurder en de x80 ti is duurder. Had Nvidia de RTX 2060 de x7 genoemd en dan doornummeren tot de laatste x80 Ti welke dan vervolgens de Titan naam kreeg dan was het een stuk logischer geweest. Wat dat betreft is er vaker wel dan niet geen touw vast te knopen aan de naamgevingen bij Nvidia, AMD en Intel. Beter kijk je gewoon naar prestaties per dollar (euro).

[Reactie gewijzigd door sdk1985 op 19 januari 2019 16:15]

Hmz ik had nog wat oudere reviews in gedachten waar de conclusie was dat raytracing alleen met een 2080Ti nut had.

Dan moet je eens kijken wat het verschil in FPS is bij games zonder raytracing. Dat zit een 2060 rond de 1070(Ti). Als je al iets van een 980Ti hebt is dat mijn inziens geen grofweg 400 euro waard wat nu zo gemiddeld een 2060 kost. Het is niet alleen perstatie per dollar, maar ook wat je er persoonlijk op vooruit gaat. Voor die anderhalve game die nu raytracing ondersteund zie ik geen grote markt.
Ik zou inderdaad niet van een 980 Ti gaan 'upgraden' naar een RTX 2060. Maar goed dat is an sich ook niet zo gek gezien het verschil in prijspunt. Als je high-end kaarten met midrangers gaat vergelijken dan kom je eigenlijk in 2 generaties er nooit goed vanaf. Voor jouw zou is een RTX 2080 een veel logischer optie, die is bijna 100% sneller (2x sneller) dan je 980 Ti, zeker op 1440p https://www.techpowerup.c..._Founders_Edition/33.html Zit ook meer in lijn met wat je eerder bereid was uit te geven.

Zelf heb ik mijn GTX 1070 in de zomer van 2016 voor 465 euro kunnen aanschaffen. Ondanks dat de RTX 2060 nu iets sneller is en iets goedkoper ga ik zelf ook niet upgraden, daar is het verschil te klein voor. Neemt echter niet weg dat mijn 1070 ook op 1920x1080/2560x1080 net iets te kort schiet hier en daar. Ik kan hem geen high-end meer noemen. Dit jaar is het jaar dat we hem midrange moeten gaan noemen :P.

Voor wie nog een GTX 970, RX 480 of iets tragers heeft is de RTX 2060 mijns inziens wel interessant. Zeker als hij over 2-3 maanden nog wat goedkoper is geworden. Maar dat is mijn mening.
RTX 2060 is alleen interesant als de prijs flink zakt naar maximaal €250.

Want laten we eerlijk zijn zo bijzonder is die kaart helemaal niet.
De RTX 2060 is na 2,8 jaar! maar 50% sneller dan de GTX 1060 dat terwijl de GTX 1060 een enorme boost had van 75%-85% over de GTX 960.

[Reactie gewijzigd door Lindatje1 op 19 januari 2019 17:52]

Los van dat ik je percentages niet heb gechecked was de GTX 960 een beetje een vreemde eet in de bijt. Die was slechts $199 en dermate traag dat de veel duurdere GTX 970 ($329) een betere bang for buck had. In de jaren daarvoor had juist de x6 vaak de betere bang for buck. De GTX was 1060 was met $249 tot $299 een stuk duurdere kaart.
Tja, niet anders dan vroeger met oa aliasing, toen moest je ook de nieuwste/duurste/snelste kaart hebben om nog wat fps te krijgen, maar visueel zag het er wel een stuk beter uit. Zelfde is nu met rtx, het ziet er visueel echt een stuk mooier uit (en kan zelfs voordeel geven omdat je in reflecties die vijand om de hoek kunt zien). Er zal ooit eens mee begonnen moeten worden voordat games er gebruik van kunnen maken, dus de volgende generatie zal weer sneller zijn maar dan ook meer games die het ondersteunen.
Alleen is het enigste wat op dit moment snel genoeg is om in moderne games raytracing te gebruiken is een 2080Ti.
De goedkoopste 2080Ti die ik kan vinden is deze pricewatch: Zotac Gaming GeForce RTX 2080 Ti Twin Fan.
Die is toch echt een klap duurder als de 980Ti bij introductie. Dus zelfs na een prijsdaling van 25% zit je nog boven de introductieprijs van de 980Ti. Deze prijsklasse was altijd gereserveerd voor de Asus MARRS kaarten en dergelijke. Met deze prijzen word de afzetmarkt behoorlijk verkleind door Nvidia.

40fps vind ik persoonlijk geen probleem. Ik denk ook dat veel mensen er geen 1200 euro voor over hebben om dat een beetje op te krikken. (En dan ga ik er vanuit dat ze hun systeem niet hoeven upgraden)
Niet alleen dat hij was bij introductie zelfs rond de €500,- duurder dan de Geforce GTX 1080 Ti, de GeForce RTX 2080 Ti was 1300,- toen hij net uit kwam, en de Geforce GTX 1080 Ti rond de €800,- toen hij net uit kwam.

De prijzen van grafische kaarten zijn tegenwoordig absurd, en dan gaan mensen het verdedigen om te zeggen dat het een nieuwe techniek is/heeft, ja maar er is vaak een nieuwe techniek als er een nieuwe grafische kaart uit komt, en daarom klopt het niet.

[Reactie gewijzigd door AmigaWolf op 19 januari 2019 16:44]

Ik speel 1080p 144hz op een gtx1080. Er zijn echt zo veel games die niet consistent de 144fps halen.

Ik kan me indenken dat het met 1440p 120hz+ helemaal een ramp is.
Ray Tracing is niet van Nvidia hoor. ;)
Zeg ik toch ook niet?! Maar nVidia heeft het nu wel geimplementeerd in hun RTX kaart. En iemand die nu dus ook het praktische nut kan laten zien van raytracing (voor games), die is wat waard. :)
Of raytracing is gewoon een ontzettend zware techniek?
Er was een tijd dat ik met een 80286 processor in samenwerking met een 80287 coprosessor een dag moest wachten voordat 1 plaatje van 1024 x 786 pixels met raytracing berekend was.

60 FPS is dus 60 x 3600 x 24 sneller.... _/-\o_
Uitgaande van 4 rays per pixel.
Ik weet wel zeker dat jouw plaatje méér rays/pixel gebruikte. Je berekening houdt derhalve geen stand.
Ok, dan valt het nog mee :)
Ben ik de enige die niet onder de indruk is? Ik vind dit zelfs zwaar tegenvallen. Ik was onder de indruk dat Raytracing eindelijk de zo gewenste "realistische belichting" naar games zou kunnen brengen, maar dit is verre van realistisch.

Ik bedoel; als ik een maquette zou maken met dezelfde low ress texturen als behang, en er lampjes in zou zetten, zou dat er toch heel anders uit zien als dit.

Raytracing lijkt hier dus niet de heilige graal te zijn m.b.t. realistische belichting. Of mis ik iets?
maar dit is verre van realistisch.
Daar kan ik een paar redenen voor bedenken.
1. De textures zijn niet realitisch. Je kunt ze dan wel realistisch belichten maar dat geeft alsnog niet erg realistisch resultaat.
2. De kleuren van de oorspronkelijke lampen (en die lijken te zijn overgenomen) zijn niet erg realitisch.
3. Er worden alsnog erg veel truuken gebruikt en aannames gemaakt. Zo klopt de 'zachtheid' van de schaduwen voor geen meter met de geometrie van de lampen. De overdreven zachtheid is vrijwel zeker vanwege een gebrek aan rekenkracht.
4. Er lijkt geen global illumination plaats te vinden. Het raytracen heeft alleen betrekking op een paar directe paden maar al het licht dat de rest van de scene in geschoten zou moeten worden lijkt te worden genegeerd. Dit is denk ik een belangrijke factor voor waarom het er niet fotorealistisch uitziet.

[Reactie gewijzigd door koelpasta op 19 januari 2019 18:46]

Juist ja, je mist iets..realistische belichting als in hoe een zonnestraaltje in werkelijkheid bounced door de omgeving, niet dat de omgeving zelf dan ineens realistisch wordt weergegeven, DAT is afhankelijk van de omgeving waar dat zonnestraaltje zich in rond bounced. De belichting in deze demo is wel degelijk realistisch.
Blijkbaar begrijp je me niet goed.

Ik zeg nergens dat ik verwacht dat de omgeving er realistisch uit gaat zien. Ik heb het over de belichting. Ik zeg zelfs expliciet dat wanneer er los res. behangtextures worden gebruikt ( zoals zowel in mijn maquette voorbeeld, als in de demo dus ) het er in het echt heel ander uit zien. Zelfs al werden er 16K texturen als behang gebruikt, dat doet niets af aan mijn stelling; het ziet er gewoon niet realistisch uit.
Als deze beste man het zo snel na release werkend heeft gekregen (de mindere complexiteit van Q2 tov BF daar gelaten), is het dan niet een techniek die over alle games heen "gelayered" kan worden via de driver?
Komt er ook Raytracing voor Rollercoaster Tycoon? :P
Ondanks dat ik voor nu skeptisch ben, laat dit wel zien dat RT waarschijnlijk de toekomst is. Vind het spel er best wel goed uit zien op deze manier; paar geüpdatete textures en hier en daar een extra polygon en het zou er waarschijnlijk uit kunnen zien als een game die dit jaar is uitgekomen.
Overdrijven is ook een vak.
Altijd fijn om Quake 2 weer eens langs te zien komen O+ Nog steeds 10/10 in mijn ogen.
akkoord :) maar dan wel met bijbehorende graphics en hardware _/-\o_
Dat brengt herinneringen terug zeg, maar om nou te zeggen dat het er beter op wordt...

Uiteraard knap gedaan.
Je moet ze wel naast elkaar zien, anders herinner je je het toch anders.

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True