Jenis perangkat

Jenis perangkat Direct3D termasuk perangkat Hardware Abstraction Layer (hal) dan rasterizer referensi.

Perangkat HAL

Jenis perangkat utama adalah perangkat hal, yang mendukung rasterisasi yang dipercepat perangkat keras dan pemrosesan simpul perangkat keras dan perangkat lunak. Jika komputer tempat aplikasi Anda berjalan dilengkapi dengan adaptor tampilan yang mendukung Direct3D, aplikasi Anda harus menggunakannya untuk operasi Direct3D. Perangkat hal direct3D mengimplementasikan semua atau sebagian modul transformasi, pencahayaan, dan rasterisasi dalam perangkat keras.

Aplikasi tidak mengakses adaptor grafis secara langsung. Mereka menyebut fungsi dan metode Direct3D. Direct3D mengakses perangkat keras melalui hal. Jika komputer yang menjalankan aplikasi Anda mendukung hal, itu akan mendapatkan kinerja terbaik dengan menggunakan perangkat hal.

Perangkat Referensi

Direct3D mendukung jenis perangkat tambahan yang disebut perangkat referensi atau rasterizer referensi. Tidak seperti perangkat lunak, rasterizer referensi mendukung setiap fitur Direct3D. Perangkat ini dimaksudkan untuk digunakan untuk tujuan debugging dan oleh karena itu hanya tersedia pada mesin di mana DirectX SDK telah diinstal. Karena fitur-fitur ini diimplementasikan untuk akurasi daripada kecepatan dan diimplementasikan dalam perangkat lunak, hasilnya tidak terlalu cepat. Rasterizer referensi memang menggunakan instruksi CPU khusus kapan pun bisa, tetapi tidak dimaksudkan untuk aplikasi ritel. Gunakan rasterizer referensi hanya untuk tujuan pengujian fitur atau demonstrasi.

Perangkat HAL vs. REF

Perangkat HAL (Hardware Abstraction Layer) dan perangkat REF (REFerence rasterizer) adalah dua jenis utama perangkat Direct3D; yang pertama didasarkan pada dukungan perangkat keras, dan sangat cepat tetapi mungkin tidak mendukung semuanya; sedangkan yang kedua tidak menggunakan akselerasi perangkat keras, jadi sangat lambat, tetapi dijamin untuk mendukung seluruh rangkaian fitur Direct3D, dengan cara yang benar. Secara umum Anda hanya perlu menggunakan perangkat HAL, tetapi jika Anda menggunakan beberapa fitur canggih yang tidak didukung kartu grafis Anda maka Anda mungkin perlu kembali ke REF.

Lain kali Anda mungkin ingin menggunakan REF adalah jika perangkat HAL menghasilkan hasil yang aneh - yaitu, Anda yakin kode Anda benar, tetapi hasilnya tidak seperti yang Anda harapkan. Perangkat REF dijamin berperilaku dengan benar, jadi Anda mungkin ingin menguji aplikasi Anda di perangkat REF dan melihat apakah perilaku aneh berlanjut. Jika tidak, itu berarti bahwa baik (a) aplikasi Anda mengasumsikan bahwa kartu grafis mendukung sesuatu yang tidak, atau (b) itu adalah bug driver. Jika masih tidak berfungsi dengan perangkat REF, maka itu adalah bug aplikasi.

Pemrosesan Vertex Perangkat Keras vs. Perangkat Lunak

Pemrosesan vertex perangkat keras versus perangkat lunak hanya benar-benar berlaku untuk perangkat HAL. Ketika Anda mendorong simpul melalui pipa, mereka perlu diubah (oleh dunia, tampilan, dan matriks proyeksi pada gilirannya) dan menyala (oleh lampu built-in D3D) - tahap pemrosesan ini dikenal sebagai TL& (untuk Pencahayaan Transformasi & ). Pemrosesan simpul perangkat keras berarti ini dilakukan di perangkat keras, jika perangkat keras mendukungnya; ergo, Pemrosesan vertex Perangkat lunak dilakukan dalam perangkat lunak. Praktik umumnya adalah mencoba membuat perangkat TL Perangkat Keras& terlebih dahulu, dan jika gagal coba Campuran, dan jika itu gagal coba Perangkat Lunak. (Jika perangkat lunak gagal, menyerah dan keluar dengan kesalahan.)

Perangkat