World of Tanks ger ray tracing till alla

Skrivet av pa1983:

Jag påpekade att det redan går att göra ray tracing utan speciallösningar som Nvidia RTX och för det är jag the bad dude på något vis?
Hur mycket mellan raderna läser ni?

En liten review av moddet

Utvecklaren själv går igenom hur det fungerar här

Men men fortsätt ni gnäll, själv föredrar jag lösningar ALLA kan använda än att låsa ner det till 1% av GeForce RTX användare.
Låter bra att Wargaming kör på en mer universial lösning alla kan nyttja, spelar deras spel själv så ser fram i mot den dagen WoWS får samma uppdatering.

Ja, det är fan jävligt coolt alltså!

Skrivet av HitGirls:

Skrev bara att RT har funnits ett bra tag i Reshade (Som fungerar i bla Skyrim, Fallout) samt shaders för Minecraft.

Jag har inte så bra koll på reshade, är du säker på att det inte är en screenspace variant? Screenspace brukar begränsa effekter till det som syns på skärmen, så ljus, reflektioner samt skuggor från något precis utanför skärmen ignoreras.

Min Stationär med Ryzen 1700 och 2070 Super...

Fast original skuggorna döljer bättre spelets låga modellupplösning.

Senast redigerat 2019-10-17 09:15

Jag såg ingen skillnad förrns jag kollade vilken av bilderna som var on o off.

Skrivet av HitGirls:

ENB lägger till Detailed Shadows som fungerar typ precis som vad bilderna visar. Skuggor som inte finns med i scenen annars. Väldigt detaljerade.

Öhm, nej, vad jag har sett är dom blockiga och fångar ej detaljer på karaktärer och byggnader.

Skrivet av wowsers:

Denna specifika BVH implementation skalar nog ganska bra till samma antal trådar som själva fysiken använder, rent allmänt skulle jag nog sätta ett tak på 32 trådar.

Hittade faktiskt data om antal kärnor. Så, här gäller det att ha många kärnor minsann!

Citat:

Thread Parallelism

Monte Carlo ray tracing is very easy to parallelize with multiple execution threads because all light paths are mutually independent. The image plane is simply subdivided into a set of small tiles. Whenever a thread finishes rendering of its current tile, it picks the next one from the list of unfinished tiles. Scalability on multi-core processors and multi-socket servers is close to linear. On a four-socket server with a total of 40 physical cores, for example, our renderer achieves 95% parallel efficiency.

https://software.intel.com/en-us/articles/embree-photo-realis...

Skrivet av HitGirls:

Vet inte vad du ens läste i mitt inlägg.
Skrev bara att RT har funnits ett bra tag i Reshade (Som fungerar i bla Skyrim, Fallout) samt shaders för Minecraft.

Skrivet av Dalton Sleeper:

Jag har inte så bra koll på reshade, är du säker på att det inte är en screenspace variant? Screenspace brukar begränsa effekter till det som syns på skärmen, så ljus, reflektioner samt skuggor från något precis utanför skärmen ignoreras.

Det är "Screen Space Ray Tracing". Så nej ... det är inte samma. Det kräver att man renderar mer objekt än att man bara lägger på en shader. Objekten får inte sorteras bort innan, etc. Du har rätt, Dalton.

Citat:

This question probably comes from the comparison people are making with Nvidia's Ray Tracing technique, since it takes advantage of out of screen information to deliver accurate results.
Marty McFly's shader is hooked to informations provided by ReShade (depth buffer). The end result is a Screen Space Ray Tracing calculation, just like Unigine SSRTGI (Ray Traced Global Illumination), which indeed is a form of Ray Tracing.

https://reshade.me/forum/shader-discussion/5450-guide-to-ray-...

Testat med min 975a istället för 920 först då det kan vara kul att se om det blir någon större skillnad men blir nog inte det antar jag då båda är 4 kärnor och 8 trådar. Men bra resultat med tanke på åldern på processorn.. "Dator i sign,bytte bara processorn för detta från min WoW Classic dator.. "

Skrivet av kelthar:

Du skapar bounding boxes och sedan modifierar du dem för de dynamiska objekten beroende på transformationer/rotationer/skalning. Det borde gå att använda fler trådar än vad fysikmotorn gör, beroende på hur många den använder kontra kärnor eftersom de olika objekten inte behöver beräkna kollisioner vid BVH-modifikationer. De borde lösas efter.

Problemet är att BVH generation är rekursiv och beror kraftigt på antal objekt, så lösningen är svår att göra parallel.

Man kan göra BVH för varje dynamiskt objekt för sig, vilket är bäst lämpat för en tråd per objekt eller fysiktråd beroende på antal objekt.

Sedan måste alla träd kombineras in i ett enda stort, här börjar med en tråd men kan skapa exponentiellt fler tills man nått halva antalet

BVH för 10 dynamiska objekt sker på sina respektive trådar (individuellt är de rekursiva).

Tråd 1 sorterar objekt efter X-axeln och delar upp de ungefär på mitten, sedan skapar tråd 2 och 3 med en halva.

Tråd 2 och 3 gör samma fast på Z-axeln, tråd 2 skapar tråd 4, 5 och thråd 3 skapar 6, 7.

Tråd 4, 5, 6, 7 sorterar på X-axeln igen och så fortsätter det.

Fortsätt tills BVH trädet är färdigt.

exempel

Citat:

Var detta till någon annan eller?

Yes, det tillhörde första citatet, blev en dålig formatering där av mig.

Skrivet av kelthar:

Hittade faktiskt data om antal kärnor. Så, här gäller det att ha många kärnor minsann!

https://software.intel.com/en-us/articles/embree-photo-realis...

Monte Carlo är mycket riktigt parallelt till en extrem grad, vilket är varför denna del körs på grafikkort! Det är dock inte lika tungt som att bygga BVH träd i detta fall, då de bara använder en stråle per pixel.

Skrivet av wowsers:

Problemet är att BVH generation är rekursiv och beror kraftigt på antal objekt, så lösningen är svår att göra parallel.

Man kan göra BVH för varje dynamiskt objekt för sig, vilket är bäst lämpat för en tråd per objekt eller fysiktråd beroende på antal objekt.

Sedan måste alla träd kombineras in i ett enda stort, här börjar med en tråd men kan skapa exponentiellt fler tills man nått halva antalet

Så det blir väldigt snabbt möjligt att parallelisera efter som antalet operationer som kan köras utan beroende av något annat dubbleras för varje steg?

Skrivet av wowsers:

Monte Carlo är mycket riktigt parallelt till en extrem grad, vilket är varför denna del körs på grafikkort! Det är dock inte lika tungt som att bygga BVH träd i detta fall, då de bara använder en stråle per pixel.

Där missade jag helt vad som syftades på. De hade börjat gå över till raytracing i stället för BVH.

Här finns en annan BVH för multicore som jag tolkar som att den är snabbare än embree. Och lite jämförande av olika algoritmer.
https://meistdan.github.io/publications/phr/paper.pdf

Skrivet av kelthar:

Testade tech demot precis. Tog en sekvens i början där de zoomar in på pansarvagnarna.

Ultra på allt annat i 1440p
RT Off: 150-170 FPS.
RT High: 105-100 FPS
RT Maximum: 100 FPS
RT Ultra: 90 FPS

https://wotencore.net/en

Det kostar FPS ändå, minsann! (2080 + 3900X)

Körde precis en runda jag med, dock i 1080p och allt på ULTRA.
Låg ofta över 100fps marken (närmare 120-144 - låst max fps på 144), 2700X@4.2Ghz/GTX 1080Ti@2025Mhz.

Dock fick jag hemskt med stuttering/micro-freeze runt 155s och 30-35s (när dom zoomade in på den svenska tanken)... Droppade ner till 80-88fps då också. Flöt på perfekt annars.

(omvänd ordning på citaten men lättare att läsa)

Citat:

Där missade jag helt vad som syftades på. De hade börjat gå över till raytracing i stället för BVH.

Här finns en annan BVH för multicore som jag tolkar som att den är snabbare än embree. Och lite jämförande av olika algoritmer.
https://meistdan.github.io/publications/phr/paper.pdf

BVH är en del av ray tracing, först bygger man ett BVH träd av något slag, sedan låter man en spårningsalgoritm (monte carlo eller annat) hantera traversering av det BVH trädet och leta efter kollisioner.

Skrivet av kelthar:

Så det blir väldigt snabbt möjligt att parallelisera efter som antalet operationer som kan köras utan beroende av något annat dubbleras för varje steg?

Yes, men det finns vissa begränsningar som att först måsta samla och sedan sortera alla objekt som ingår i BVH trädet i början, med en kompetent sorteringsalgoritm typ smoothsort kommer det vara nära linjärt vid största andelen sorteringar.

Efter detta sker den måttligt parallella processen av att rekursivt skapa BVH noder, detta kan bara göras parallelt tills man har lika många trådar som processorn har, ellerpraktiskt sett lika många som antalet lågt belastade trådar.

Då den rekursiva funktionen har kollapsat ihop noderna till ett BVH träd kan man ladda upp den till GPUn och avallokera den föregående.

Efter detta är det bara att köra ray tracing på BVH trädet och sedan applicera filtrering på resultatet för att mjuka upp grynigheten.

Passar på detta benchmark som tvingar en till att installera Gamecenter.
Onödigt bloat när man bara spelar ett Wargaming spel.

"WoT enCore RT will be installed via WGC.
If Wargaming.net Game Center isn't installed on your device, its installation will start first.
After the installation is completed, WoT enCore RT will be installed."

Om man lyfter blicken från detta tekniska framsteg som inte betyder ett skit för spelet egentligen så tar Wargaming ytterligare ett steg ner i dynghögen och försöker försämra ytterligare spelmekanik.
[Sandbox] High-Explosive Shells Revision: Join the Testing!

RIP KV-2

Skrivet av kelthar:

Testade tech demot precis. Tog en sekvens i början där de zoomar in på pansarvagnarna.

Ultra på allt annat i 1440p
RT Off: 150-170 FPS.
RT High: 105-100 FPS
RT Maximum: 100 FPS
RT Ultra: 90 FPS

https://wotencore.net/en

Det kostar FPS ändå, minsann! (2080 + 3900X)

Allt är relativt. Jämför man med SoTR så ser det hyfsat imponerande ut, med tanke på att det inte finns någon fixed-function traversal eller intersection tests.

Tiden som allt tar på RT ultra är enligt dina tester ~5ms (1/RT Ultra FPS - 1/RT Off FPS). På dessa 5ms så:
Skapar de ett nytt träd
Överför trädet till GPU:n
Söker igenom trädet (traversal)
Genomför beskärningstest (intersection)
Och efter allt detta är klart så slänger de en denoiser på allt.

Och allt detta utan dedikerad hårdvara. Så även om det verkar inte så imponerande på pappret så förtjänar de cred för det. Jag hade förväntat mig åtminstone 3x tiden. Men vem vet, kanske Turing har exceptionellt hög RT prestanda i det här fallet? Behövs fler tester med olika arkitekturer för att avgöra det.

Computerbase har jämfört med 2070 och 5700XT (tråkigt nog ingen Vega eller Pascal ) Där 2070 förlorar 35% av prestandan vid Ultra och 5700XT 43% av prestandan. För att med formeln från ovan får vi att 2070 tar ~4,3ms för RT, medan 5700XT tar ~5,9ms för RT. Detta resultatet är tillräckligt för att säga att Turing > RDNA 1.0 för shader baserad RT med denna testscen, med de här algoritmerna. Behöver inte betyda att RDNA 1.0 ej skulle få bättre resultat om de valt att implementera i DXR (då kan AMD även justera vilket execution mode de har, vilka algoritmer som ska användas för traversal och intersection, etc).

(Det här betyder inte att jag trashtalkar fixed-function hårdvara för RT, tvärtom gillar jag det. Snarare berömmer jag den förhållandevis grymma shaderprestandan hos Turing! Om de använt RT cores hade tiden säkerligen gått ner en del. RDNA och Turing är dock skapt för att INTE köra shader baserad RT, så det är lite onödigt att lägga stor vikt på det här)

Skrivet av Dinoman:

Aha! Det blåser upp till storm. Vi kan ju alla tacka Nvidia för att de satt Ray tracing-bollen i rullning. Tycka vad man vill om deras RTX-implementation så har det sporrat spelutvecklare att titta på tekniken och i detta fallet välja att använda en annan implementation.

Jag ser ingen anledning att tacka NVIDIA för det här. Ska jag tacka NVIDIA för att Intel har ett grymt open source RT ramverk som embree (sedan 2012 verkar det som)? Vilken inverkan hade Turing 2018 på Embree 2012?

Kanske de bör tackas för DXR som bestämdes av NVIDIA + åtminstone Microsoft, AMD + möjligtvis Intel?
Kanske de bör tackas för all research AMD och Intel har lagt ner på RT i åratal?

Nej, det enda NVIDIA har gjort är att släppa en produkt till desktop först med hårdvaruaccelererad RT. Men de beslut som AMD och Intel fattat har inte berott på NVIDIA. Ingen har visat något som helst bevis på det, och om ni har det skulle jag gärna vilja se det.

De enda som vill att vi ska tro det är NVIDIA själva, och jag kan säga att det fungerar riktigt bra. Ta t.ex följande kommentar:

Skrivet av DJ-SAAB:

Jag trodde ja skulle ligga runt 30 fps med RTX On med mitt GTX 1070 men de sköte sig väldigt fint. På Ultra i 1920x1080 med RTX On. Låg omkring 79 fps som mest något lite dippade ner men aldrig under 60 fps, kunde komma upp till 90+ fps.

Spelet använder Intels oneAPI, inte DXR. DXR finns inte ens till DX11.

RTX är egentligen ett samlingsnamn för hårdvara och tekniker i Turing såsom:
Ray tracing m.h.a RT cores
AI m.h.a Tensor cores
Mesh shaders
Variable Rate Shading
Texture Space Shading
Multi-View Rendering
etc.

Men ändå tillskrivs all ray tracing i hela universum RTX (trots att det bara är en delmängd). Intel och AMD hade nog offrat ena armen för all denna PR.
(Btw, klandrar inte dig för att få det här fel. NVIDIA har varit aningen förvirrande när det kommer till vad RTX är, och jag skulle nog säga att fler har missförstått än förstått vad det betyder).