Microsoft esitteli tänään uuden DirectX Raytracing -rajapinnan. DXR toimii nykyisillä näytönohjaimilla, mutta grafiikkapiireihin on mahdollista rakentaa myös ns. rautakiihdytys sen toiminnoille. Sekä AMD että NVIDIA ovat jo ilmoittaneet tukevansa Microsoftin uutta rajapintaa ja pyrkimystä tuoda säteenseuranta osaksi yhä useampaa sovellusta.
Kuten jo todettua, DirectX Raytracing toimii nykyisilläkin näytönohjaimilla. Sen rautakiihdytys on sen sijaan mielenkiintoisempi kysymys, johon ei toistaiseksi ole selvää vastausta. AMD on ilmoittanut yksinkertaisesti tukevansa rajapintaa ja tuovansa sille ajurin lähiaikoina. Selvyys siihen, tukeeko AMD:n näytönohjaimet DXR:n ominaisuuksien kiihdyttämistä ns. raudalla vai vain samalla tasolla kuin kaikki DirectX 12 -näytönohjaimet, saadaan aikaisintaan kyseisten ajureiden myötä.
AMD:n mukaan se on tehnyt Microsoftin kanssa tiivistä yhteistyötä uuden rajapinnan parissa ja tulee puhumaan DXR:n hyödyntämisestä peleissä tällä viikolla pidettävillä GDC-messuilla.
NVIDIA on sen sijaan ilmoittanut, että yhtiön Volta-arkkitehtuuri – eli käytännössä Titan V -näytönohjain – tukee ainakin osittaista DXR:n rautakiihdytystä. AnandTechin mukaan Volta sisältää joitain nimenomaan säteenseurannan kiihdyttämiseen tarkoitettuja ominaisuuksia, joista NVIDIA ei ole kertonut aiemmin. Yllä oleva video on kotimaisen Remedyn käsialaa ja se hyödyntää nimenomaan DXR-rajapintaa NVIDIAn näytönonohjaimella. Remedy hyödyntää DXR:ää Northlight-pelimoottorissaan.
NVIDIAn mukaan se on tehnyt Microsoftin kanssa yhteistyötä varmistaakseen, että yhtiön uutta DXR-rajapintaa hyödyntävät sovellukset tukisivat täysin sen omaa NVIDIA RTX -teknologiaa. NVIDIA ei tehnyt selväksi, vaatiiko sen Volta-arkkitehtuurin ominaisuuksien hyödyntäminen nimenomaan RTX:n käytön, vai voidaanko niitä hyödyntää myös suoraan DXR-rajapinnalla. Lisäksi NVIDIA kertoi lisäävänsä GameWorks-työkaluihin säteenseurannan kohinaa vähentävän työkalun.
NVIDIAn Voltaa vanhemmat arkkitehtuurit tukevat DXR:n fallback-kerrosta, jossa DXR toteutetaan perinteisinä laskentatyyppisinä tehtävinä. Yhtiö on julkaissut myös mielenkiintoisen blogin, jossa se käsittelee rasteroinnin ja säteenseurannan eroja.
Microsoft and Nvidia are bringing real-time raytracing to games before the end of the year
Tämän perusteella NVIDIA TXR:n ja Voltan "secret sauce" on arvausleikki tekoälyn siivittämänä. Eli käytetään vähemmän säteitä ja hyödynnetään tensor-coreja tekoälylaskuissa kun arvotaan kuvan "puuttuvat elementit" simuloimatta itse säteitä
Näissä voisi aina myös mainita mikä näissä uudemmissa teknologioissa on mahdollisesti hyöty, jos ollenkaan, vanhemmilla näytönohjaimilla.
Sen varmasti voisi mainita jos sen tietäisi
No näihän se on. Kommentoin hätiköiden.
Näyttisvalmistajien tuki tälle on käytännössä säteenjäljityksen toteuttava koodi jota ajetaan näyttiksen shader-prossuilla. Ja näyttisvalmistajat pyrkivät optimoimaan tämän koodinsa mahdollisimman hyvin.
Eli softaa, ei rautaa, mutta näyttiksellä tuhansilla rinnakkaisilla laskentayksiköillä ajettavaa softaa.
Työkaverit TTYllä on muuten kehittäneet tuota nVidian tekoälyratkaisua nopeamman ja parempilaatuisen kohinanvaimennuksen säteenjäljitykseen, eikä tarvi mitään tensorirautaa vaan on ihan geneeristä shader-koodia, OpenCL:llä, Vegalla ja Furyllä sitä testanneet. Paperi tuosta on tehty, muttei vielä julkaistu.
Voisiko kohinaa poistaa keskiarvojen avulla lähipikseleistä, vai onko se liian hidasta..?
Toistaalta myöskin: Onko noissa mahdollista mennä etupäässä valoisuustiedon (mustavalkea) ehdoilla joko osassa pikseleitä tai kaikissa s.e. värin käsittelyyn käytetään kevyempiä laskutoimituksia..
Paha mainita, jos ei tiedä. Tämä on vasta "hei, me ollaan tehty tällainen juttu".
Sen hyöty tiedetään vasta teoreettisesti, ei näytönohjain kohtaisesti.
Kuten todettua uutisessa, toimii kaikilla DX12 näyttiksillä, mutta jotkutvoivat tarkota erilaisia kiihdytystapoja kuten Volta+RTX kombinaation arvausleikki
Siihen kohinanvaimennus pääosin juuri perustuu. Ja joku yksinkertainen efektiivisesti keskiarvoa laskeva low-pass-filtteri lähjipikselien yli on nykyraudalla todella nopea laskea, ongelmaksi vaan muodostuu kuvan suttaantuminen joka pilaa kuvanlaadun.
Sitten kun aletaan tekemään jotain monimutkaisempaa paremman kuvanlaadun saavuttamiseksi, alkaa se laskenta-aika kasvaa. En ehkä vielä sano tuota kaverien algoritmin pääideaa, kun paperi ei ole vielä julkaistu.
Oleellista tässä on se, että aiemmin jos joku halusi tehdä raytraceusta peleissä, se raytracing-koodi piti itse kirjoittaa shader-koodina ja optimoida itse. (ja sitten siitä tuli kuitenkin helposti vain yhdelle näyttisarkkitehtuurille optimoitu koodi).
Tai sitten kaivaa jostain joku kolmannen osapuolen open source ray tracing-koodi joka saattoi olla joko huono tai hyvä, ja kuitenkin perehtyä asiaa paljon selvittääkseen, onko se huono vai hyvä koodi).
Nyt se näyttisvalmistaja on kirjoittanut sen raytracing-koodin ja huolehtii sen optimoinnista.
Hommia on kyllä reilusti sekä temporal, että spatial noisen kanssa… tuota northlight videota kun katselee, niin highlightit vilkuvat kuin mitkäkin neo-noir leffan neon-putket.
Ilmeisesti nyt tulee jopa tekninen hyppäys seuraavaan generaatioon ja pelaajillekkin tulee tensor coret käyttöön.
Täytyypä hankkia sit RTX 2080 😉
Saattaa tuolla olla jotain muutakin, kuin nuo tensor coret, jotka liittyy juurikin tuohon hommaan..
AMD näyttäisi käyttävän tuohon jo olemassa olevaa radeon pro render apiaan:
Announcing Real-Time Ray Tracing – GPUOpen
Keskiviikkona varmaan saadaan kuulla tuosta enemmän:
Real-Time Ray-Tracing Techniques for Integration into Existing Renderers (Presented by AMD)
Tänään suorana kello 18:30 Unreal Engine – Live from GDC – YouTube
Kyllähän tuossa revontulivideossa tuota rakeisuutta näkyy aika paljon, lähinnä harmaissa pinnoissa kuten eka kahvikuppi ja lopussa discopallon jalusta. Myös 30fps nopea panorointi aiheutti päänsärkyä, mutta jos tosiaan livenä nauhotettu niin ei voine vielä mahottomia odottaa.
Itselle riittäisi pelkästään kunnon valot / varjot rasteroinnin päälle. Emmä tiedä onko noi peilipinnat nyt _niin_ siistejä.
Peilipintaan riittää yksi säde per pikseli. Valoihin ja varjoihin taas tarvitaan useita ettei niihin tule kohinaa (tulee silti ellei käytä todella paljon säteitä)
Jos saataisiin uskottava taskulamppu aikaiseksi johonkin peliin!
NVIDIAn Tom Petersen haastattelussa asian tiimoilta.