Keresés

Új hozzászólás Aktív témák

  • Abu85

    HÁZIGAZDA

    válasz b. #18 üzenetére

    Nem, az Uncharted az szimpla vertex shader trükköket használ. Mondjuk acélosakat, de semmi extra. Nem lekicsinyítve a munkájukat persze.
    A texel shading egy picit más, mert vannak tipikus buktatói, de ha ezeket valahogy megkerülöd, akkor iszonyatosan erős. Gyakorlatilag a Nitrous által használt object space shading is a texel shading egy formája. Gyakorlatilag az egész a Pixar Reyes leképzőmetódusának egy valós idejű megvalósítása.

  • Abu85

    HÁZIGAZDA

    válasz b. #14 üzenetére

    Persze, hogy volt benne rizikó. Kb. 150 ezer sornyi shader kódot kellett konvertálni úgy, hogy működjön DX12 és Vulkan API-ban is. És a teljesítmény sem mindegy, szóval egy olyan source-2-source fordító kellett, aminél azért lehetőleg minél kevesebb alkalommal kelljen manuálisan beavatkozni, hogy teljesítményt nyerjenek. Szóval volt benne munka bőven. A leképező igazából nem nagy kunszt. DX12-ről könnyű Vulkan API-ra ugrani, egy jól megírt motornál a kód jelentős része nem változik.

    A Strange Brigade-ot valószínűleg jól futtatná a DX11 is. Itt igazából azért váltottak, hogy amikor majd lépnek tovább, akkor már ne kelljen arra gondolni bizonyos döntéseknél, hogy a DX11 limitál. Ezzel sokkal szabadabban jelölhetik ki az irányokat, mert működik a motor DX12 és Vulkan része is, és közös a shader forrás hozzájuk. Jó persze a dxc még nem fordít olyan optimálisan a Vulkánhoz való SPIR-V-re, de idő kérdése és beéri a Microsoft DXIL IR-jéhez fordított kódok sebességét, és ha megvan, akkor lehet új SPIR-V-t szállítani patch-ekben. Ez az egész egyébként indie-ként nagy előny ám. Úgy tudsz hozzáállni az R&D-hez, hogy igazán érdekes dolgokat is megtehetsz, mondjuk texel shading, amit a legtöbben a DX11 miatt meg sem fontolhatnak. Tehát nem most akarnak ők ezzel aratni, hanem a következő körben, amikor őket már nem fogják a limitek. Amúgy félreértés ne essék a mostani kód is elég jó. Rendkívül gyors a motor, hihetetlenül jól optimalizált, tényleg példát vehet róluk az egész iparág.

  • Abu85

    HÁZIGAZDA

    válasz b. #12 üzenetére

    Egyszeri átállás drága. De utána a csökkennek a költségek, mert dobták a DX11-et. Hosszabb távon megéri, de rövidebb távon fáj.

  • Abu85

    HÁZIGAZDA

    válasz Petykemano #5 üzenetére

    Minden DX12 osztályba sorolt hardver támogat shader modell 6-ot. Az AMD-nél a GCN1-től, az NV-nél a Keplertől, míg az Intelnél a Gen8-tól. A shader modell egyes intrinsics függvényeiben, illetve képességeiben lehetnek különbségek, de a nyers specifikációt gyakorlatilag a Fermit leszámítva minden DX12-es hardver kezeli. Igazából a Fermi is tudná, csak nincs már hozzá driver. A Microsoft nagyon helyesen nem szabja meg, hogy az egyes intrinsics függvényeket hogyan implementálja egy gyártó, csak a végeredmény számít. Ha lassú, ha gyors, mindent elfogadnak, annak érdekében, hogy a shader modell 6 mögötti hardveres támogatás széles legyen, plusz egy csomó régi shadert eleve csak konvertálnak, nem fogják beépíteni az új lehetőségeket. Az persze más kérdés, hogy ha majd ezekhez a függvényekhez hozzányúlnak, akkor mi lesz, de a futtatás akkor is garantált. Egyedül a barycentric, aminél elveszik a garancia, de az egy külön feature szint az SM6.1-en belül. Ráadásul mindegyik hardverre implementálható, mert alapvetően arról van szó, hogy az LDS-ből kiolvashatóvá teszi a baricentrikus koordinátákat, tehát csak annyit kell tenni, hogy ha nem emulált volt az interpoláció egy hardverben, akkor emulálni kell és kész. Nem igényel új hardvert ez sem, csak némi szoftveres munkát a meghajtó oldalán.

    Ez egy nagyon régi tévhit, hogy az NV-re van szabva szinte minden. Nagyon nem, inkább az AMD-re. Mert ugye hogyan is tudnál az AMD kiterjesztéseivel az NV-re szabni valamit... Ez egy tévhit, ami nem akar kikopni, még úgy sem, hogy a fejlesztő, ma már elég sokan, külön nem szabványos shadereket szállítanak AMD-re, míg NV-n és Intelen szabványosokat futtatnak. Utóbbi nem igényel különösebb odafigyelést, előbbi viszont igen. Ezért is jött a shader modell 6.0, hogy amit az AMD megoldott magának kiterjesztésekkel, és amire tényleg tök egyszerű dolgozni PSSL shaderekből, azokat, ezen belül is a függvények úgy 90%-át a shader modell 6 szabványosítja.

Új hozzászólás Aktív témák

Hirdetés