6. fejezet - Áttekintés shaderek
Áttekintés shaderek
Még azután is jelentős javulást a Direct3D 7.0 játékok között nem jelenik meg sok a különbség, csak a pénz gyors, akkor lehetett volna egy csomó sokszögek használat tömörített textúrák és hatások multitexture megjelenítéséhez több textúrák és keverjük őket össze. Az igazi forradalom jött DirectX 8 és a DirectX 9 DirectX 8 végül eltávolítjuk DirectDrawot alkatrész és bevezette vertex shaderek, pixel shader és sok hatások - kivetése megkönnyebbülés, nem szabványos textúra leképezés stb - de csak akkor támogatja a Shader Model 1.0 és eleinte nem nagyon könnyű használni, mert a sok változás, hogy az API, valamint annak szükségességét, hogy írjon shader assembly nyelven.
Shader mindenütt XNA
Már látható az előző fejezetben. Shaderek, amelyek alapján leképezésére semmit XNA; nélkül shader, amely megjeleníti pixel a képernyőn, akkor nem is készít egy egyszerű vonal. Biztos vagyok benne, akkor képes lesz használni a szellemet osztályok két-dimenziós grafika és a felület lehet tudni használni SimpleEffect osztály megjelenítésére, amit néhány háromdimenziós adatokat, de én nem szeretem SimpleEffect osztály és ne használja ezt a könyvet. Azt hiszem, hogy túl bonyolult a használata, és nem a nyújtott ellátások képes írni a saját shader, ami lesz könnyebb, gyorsabb és rugalmasabb. Használd az egyszerű hatás azt jelenti, hogy egy előre meghatározott funkciókat, és ha kell valami, akkor is meg kell kezdeni írásban a saját shader. Az ezt követő játékok ezt a könyvet, akkor elsősorban használni normal mapping shader megjelenítéséhez háromdimenziós adatokat, majd egy meredek utáni képernyő shader hatások manipulálni a végső kép a képernyőn. Mindezek shader nem lehet megvalósítani a SimpleEffect osztályban.
Ha már dolgozott az OpenGL vagy DirectX és csak a fix funkció csővezeték, akkor miért van szükség költeni annyi erőfeszítést a shader, és miért nem lehet csak elképzelni néhány háromdimenziós adatokat a képernyőn, ahogy tette eddig. Igen, az írás a kód valamivel nehezebb, és bár lehet szemléltetni a DirectX .x modell, szinte anélkül, hogy ismerné a matricát és a belső GPU működési elveit, akkor nem lesz képes arra, hogy jelentős változások a megjelenítés, ha nem kap a részleteket. Esetleg minden tanulni shader nehéz, de legalább már jobban ismeri a grafikus hardver, jobban megérteni, hogyan sokszögek válnak a képernyőn, ezért előfordulhatnak hibák, és hogyan kell kijavítani őket gyorsan.
Miután a következő két fejezetet ebben a könyvben már nem beszél shader, és akkor valószínűleg nem költenek a játékok túl sok időt shaderek, miután az elején, hogy a legfontosabbakat. Akkor kizárólag shader, és nem is kell gondolni róluk.
És a végén, amit szeretnék megemlíteni még egy dolog - a növekedés a munka mennyisége kapcsán használatával shaderek. Nem csak akkor, mint egy programozó kell mindent tudni shader, bár akkor valószínűleg, és írjon a legtöbbjük, kivéve, ha a csapat nem a „shader fiú”, hanem a művészek (Remélem, hogy ez nem megint) meg kell ismernie shaderek. Például, a használata normal mapping shader, hogy növelje a realizmus megjelenése tárgyak legújabb játékok (pl Doom 3) csak akkor van értelme, ha a háromdimenziós adatok nem csak az alapvető geometria, hanem biztosítja a normális térképeket, a végrehajtásához szükséges ezt a hatást.
Nem előretekintve a következő fejezetben. ahol a hatás normal mapping tárgyaljuk részletesebben, megjegyezzük, hogy általában van egy nagy poli változat (millió poligon) háromdimenziós objektumok és alacsony poli változata (csak néhány száz vagy ezer sokszögek) a megjelenítés. Amint az ábrán. 6.2 alacsony poligon anélkül normals néz ki rosszul, de amikor a hatás van kapcsolva (lásd jobbra), a gömb jelentősen javult.
Alternatívaként a magasan modell, amely általában megköveteli a sok munka, akkor is használhatja egy rajz programot „dolgozzon” a normál térkép, először felhívni a térképet a magasságtól, majd alakítani egy normális térképet. Általában ezek a kártyák meg több durva, és ez a megközelítés, akkor soha nem éri el a vezető minőségű grafika játékokat, de időről időre látni fogja, hogy a végrehajtás rendes térképek oly módon, hogy pénzt takarítanak meg. Mindenesetre, az előadó tudni kell, hogy minden új technikákat, és meg kell gondolni, hogyan lehet létrehozni tartalmat megkezdése előtt írásban a motort, és a játék kódját.
példák játékok
Ha szeretné látni a shaderek akcióban, csak játszani néhány a legújabb játékok - szinte mindegyik támogatási shader és akkor is, ha nem jelenik meg a normál mapping vagy poszt-képernyő hatások, shaderek is használható hatékony vizualizációs háromdimenziós modellek vagy technológia megvalósítása árnyék overlay .
Más játékok, mint a stratégiai vagy szerepe is, hogy kihasználják a shader, de észre igényel közelebbről, mert még a jelenlétében shader, ezek a játékok nagyobb hangsúlyt a játék, hogyan kell elképzelni egy időben annyi egységet, vagy a kamera ellenőrzési problémák .
Látni még jobb példa a különbség a használatát shader és a fix funkció csővezeték játékok, nézd meg a víz felszínén háromdimenziós játék. Az elmúlt néhány évben technikák kép vízfelület alakult ki, hogy most nehéz megkülönböztetni az igazi.