Megosztás a következőn keresztül:


Eszköztípusok (Direct3D 9)

HAL-eszköz

Az elsődleges eszköztípus a hal típusú eszköz, amely támogatja a hardveres gyorsított raszterizálást, valamint a hardver- és szoftvercsúcs-feldolgozást is. Ha a számítógép, amelyen az alkalmazás fut, rendelkezik a Direct3D-t támogató kijelzőadapterrel, az alkalmazásnak a Direct3D-műveletekhez kell használnia. A Direct3D hal eszközök az átalakítás, a világítás és a raszterizálási modulok egy részét vagy egészét implementálják a hardverben.

Az alkalmazások nem férnek hozzá közvetlenül a grafikus adapterekhez. Direct3D-függvényeket és metódusokat hívnak. A Direct3D a halon keresztül éri el a hardvert. Ha az alkalmazás által futtatott számítógép támogatja a hal használatát, a hal eszköz használatával a legjobb teljesítményt érheti el.

Hal típusú eszköz létrehozásához hívja meg CreateDevice D3DDEVTYPE_HAL használatával.

Referenciaeszköz

A Direct3D egy további, referenciaeszköznek vagy referenciaraszterezőnek nevezett eszköztípust támogat. A szoftvereszköztől eltérően a referencia raszterizátor minden Direct3D-funkciót támogat. Ez az eszköz hibakeresési célokra használható, ezért csak olyan gépeken érhető el, amelyeken a DirectX SDK telepítve van. Mivel ezek a funkciók a sebesség helyett a pontosság érdekében vannak implementálva, és a szoftverben vannak implementálva, az eredmények nem túl gyorsak. A referencia-raszterizátor minden alkalommal speciális CPU-utasításokat használ, de nem kereskedelmi alkalmazásokhoz készült. A referencia raszterizátort csak funkciótesztelési vagy bemutató célokra használja. Referenciaeszköz létrehozásához hívja meg CreateDevice metódust D3DDEVTYPE_REF eszköztípusként.

HAL és REF-eszközök

A HAL (Hardver absztrakciós réteg) és a REF (REFerence raszterizer) eszközök a Direct3D-eszközök két fő típusa; az első a hardvertámogatáson alapul, és nagyon gyors, de lehet, hogy nem támogat mindent; míg a második nem használ hardveres gyorsítást, így nagyon lassú, de garantáltan támogatja a Direct3D-funkciók teljes készletét a megfelelő módon. Általában csak HAL-eszközöket kell használnia, de ha olyan speciális funkciót használ, amelyet a grafikus kártya nem támogat, akkor előfordulhat, hogy vissza kell esnie a REF-re.

A másik alkalom, amikor a REF-t szeretné használni, az az, ha a HAL-eszköz furcsa eredményeket hoz létre – vagyis biztos benne, hogy a kód helyes, de az eredmény nem az, amit vár. A REF-eszköz garantáltan helyesen viselkedik, ezért érdemes lehet tesztelni az alkalmazást a REF-eszközön, és megnézni, hogy a furcsa viselkedés folytatódik-e. Ha nem, az azt jelenti, hogy vagy (a) az alkalmazás feltételezi, hogy a grafikus kártya támogat valamit, amit nem, vagy (b) ez egy illesztőprogram hibája. Ha továbbra sem működik a REF-eszközzel, akkor ez egy alkalmazáshiba.

Hardver és szoftveres csúcspontok feldolgozása

A hardver és a szoftver csúcsának feldolgozása csak a HAL-eszközökre vonatkozik. Amikor a csúcspontokat a folyamaton keresztül küldi el, át kell alakítani őket (a világ, a nézet és a vetítési mátrixok viszont) és megvilágítani (a D3D beépített fényei által) - ezt a feldolgozási szakaszt T&L -nek (átalakítás & világításhoz) nevezzük. A hardver csúcspontjainak feldolgozása azt jelenti, hogy ez hardveren történik, ha a hardver támogatja azt; ergo, A szoftver csúcsának feldolgozása a szoftver. Az általános gyakorlat az, hogy először megpróbál létrehozni egy Hardver T&L-eszközt, és ha ez nem sikerül, próbálkozzon vegyesen, és ha ez nem sikerül, próbálkozzon a Szoftverrel. (Ha a szoftver meghibásodik, adja fel és lépjen ki egy hibával).

Direct3D-eszközök