Bagikan melalui


Apa yang baru dalam Pratinjau Teknologi Direct3D 11 Nov 2008

Versi Direct3D 11 ini berisi fitur, alat, dan dokumentasi baru.

Item Deskripsi
Tessellation
Direct3D 11 menyediakan tahap alur tambahan untuk mendukung tessellasi real time primitif pesanan tinggi. Dengan kemampuan yang dapat diprogram secara ekstensif, fitur ini memungkinkan banyak metode berbeda untuk mengevaluasi permukaan urutan tinggi, termasuk permukaan subdivisi menggunakan teknik perkiraan, patch Bezier, tessellation adaptif, dan pemetaan perpindahan. Fitur ini hanya akan tersedia pada perangkat keras kelas Direct3D 11, jadi untuk mengevaluasi fitur ini, Anda harus menggunakan Rasterizer Referensi. Untuk demo tessellation yang sedang berjalan, lihat sampel SubD11 yang tersedia melalui Browser Sampel.
Shader Komputasi
Compute Shader adalah tahap tambahan yang independen dari alur Direct3D 11 yang memungkinkan komputasi tujuan umum pada GPU. Selain semua fitur shader yang disediakan oleh inti shader terpadu, Compute Shader juga mendukung pembacaan dan penulisan tersebar ke sumber daya melalui Tampilan Akses Tidak Berurutan, kumpulan memori bersama dalam sekelompok utas yang dieksekusi, primitif sinkronisasi, operator atomik, dan banyak fitur paralel data canggih lainnya. Varian Direct3D 11 Compute Shader telah diaktifkan dalam rilis ini yang dapat beroperasi pada perangkat keras kelas Direct3D 10. Oleh karena itu dimungkinkan untuk mengembangkan Compute Shaders pada perangkat keras aktual, tetapi driver yang diperbarui diperlukan. Fungsionalitas penuh Dari Direct3D 11 Compute Shader ditujukan untuk mendukung perangkat keras kelas Direct3D 11, jadi untuk mengevaluasi fungsionalitas penuh, Anda harus menggunakan Rasterizer Referensi sampai perangkat keras tersebut tersedia. Untuk demo Compute Shader yang sedang berjalan, lihat sampel HDRToneMappingCS11 yang tersedia melalui Browser Sampel.
Penyajian Multithreaded
Perbedaan API utama dari Direct3D 10 di Direct3D 11 adalah penambahan konteks yang ditangguhkan, yang memungkinkan eksekusi perintah Direct3D yang dapat diskalakan yang didistribusikan melalui beberapa inti. Konteks yang Ditangguhkan mengambil dan menyusun tindakan seperti perubahan status dan menarik pengiriman yang dapat dijalankan pada perangkat aktual di lain waktu. Dengan menggunakan Konteks yang Ditangguhkan pada beberapa utas, aplikasi dapat mendistribusikan overhead CPU yang diperlukan dalam runtime Direct3D11 dan driver ke beberapa inti, memungkinkan penggunaan konfigurasi komputer pengguna akhir dengan lebih baik. Fitur ini tersedia untuk digunakan pada perangkat keras Direct3D 10 saat ini serta rasterizer referensi. Untuk demonstrasi penggunaan API, lihat sampel MultithreadedRendering11 yang tersedia melalui Browser Sampel.
Linkage Shader Dinamis
Untuk mengatasi masalah ledakan combinatorial yang terlihat dalam mengkhususkan shader untuk performa, Direct3D 11 memperkenalkan bentuk terbatas tautan shader runtime yang memungkinkan spesialisasi shader yang hampir optimal selama eksekusi aplikasi. Ini dicapai dengan menentukan implementasi fungsi tertentu dalam kode shader ketika shader ditetapkan ke alur, memungkinkan driver untuk instruksi shader asli sebaris dengan cepat daripada memaksa driver untuk mengkompilasi ulang bahasa perantara ke dalam instruksi asli dengan konfigurasi baru. Pengembangan shader diekspos melalui pengenalan kelas dan antarmuka ke HLSL. Untuk demonstrasi, lihat sampel Dynamic Shader Linkage 11 yang tersedia melalui Browser Sampel.
Windows Advanced Rasterizer (WARP)
Tersedia di SDK ini melalui Direct3D 11 dan akhirnya juga melalui Direct3D 10.1, WARP adalah rasterizer penskalaan multi-inti yang sepenuhnya sesuai dengan Direct3D 10.1. Memanfaatkan teknologi ini semederhana melewati bendera D3D_DRIVER_TYPE_WARP dalam pembuatan perangkat Anda.
Direct3D 10 dan Direct3D 11 pada Direct3D 9 Hardware (D3D10 Level 9)
Tersedia di SDK ini melalui Direct3D 11 dan akhirnya juga melalui Direct3D 10.1, API Direct3D dapat menargetkan sebagian besar perangkat keras Direct3D 9 serta perangkat keras Direct3D 10, Direct3D 10.1 dan Direct3D 11. Ini dicapai dengan menyediakan mekanisme Tingkat Fitur, yang mengelompokkan perangkat keras ke dalam enam kategori tergantung pada fungsionalitas: 9_1, 9_2, 9_3, 10_0, 10_1 dan 11_0. Kartu hanya memenuhi tingkat fitur jika sepenuhnya sesuai dengan tingkat tersebut, dan setiap level adalah super-set yang ketat dari yang ada di bawahnya. Fungsionalitas minimal ditiru untuk memastikan tidak ada tebing performa tak terduga yang ditemui. Dengan demikian, fitur seperti Geometry Shaders tidak tersedia untuk target tingkat Direct3D 9.
Biner Runtime
Semua biner runtime yang disediakan dalam pratinjau teknologi Direct3D 11 yang akan tersedia di Windows 7 dan Windows Vista SP1 diinstal dengan SDK dan diberi label sebagai komponen "Beta" (yaitu D3D11_beta.DLL). Semua komponen berlabel beta dibom waktu. Untuk membuat proyek untuk mengevaluasi komponen baru ini, Anda harus menautkan ke pustaka impor berlabel beta yang setara (yaitu D3D11_beta.lib). Jika Anda memiliki salinan PDC Windows 7, header, libs, dan pdbs yang disediakan di Windows SDK dengan build sesuai untuk pengembangan menggunakan komponen Direct3D 11 yang disediakan di Windows 7. Harap pesan penggunaan header, libs, dan pdbs dalam SDK ini ke komponen beta yang disediakan di sini.
D3DX11
D3DX11 saat ini mendukung pemuatan tekstur, kompilasi shader, pemuatan data, dan fungsi utas pekerja untuk sumber daya Direct3D 11. Di masa depan, komponen ini akan menyediakan lebih banyak teknologi yang tersedia di D3DX10. Fungsionalitas kompilasi shader juga disediakan langsung melalui komponen Direct3D Compiler, dijelaskan berikutnya.
Pengkompilasi HLSL dan Direct3D
Kompilator HLSL memiliki beberapa fitur baru untuk mendukung teknologi baru yang tersedia di Direct3D 11. Ini termasuk pemrograman berorientasi objek melalui antarmuka dan kelas, sintaks pengindeksan langsung untuk beban sumber daya, dan kata kunci 'presisi' untuk memastikan bahwa semua operasi yang dilakukan dengan variabel tertentu mematuhi aturan floating point yang ketat. Hampir semua fitur linguistik baru memiliki fungsionalitas yang valid pada target shader yang ada. Selain mendukung semua shader Direct3D 9, Direct3D 10, Direct3D 10.1, dan Direct3D 11, pengkompilasi HLSL juga mendukung target khusus yang diperlukan untuk menulis shader untuk target Direct3D 10 Level 9. D3D Compiler sekarang dapat diakses langsung di luar D3DX10 dan D3DX11 melalui D3DCompiler.H dan D3DCompiler.lib. Dengan file baru ini, aplikasi tidak diperlukan untuk menautkan ke D3DX untuk melakukan kompilasi runtime, dan aplikasi tidak diperlukan untuk menyertakan pengkompilasi jika hanya fungsionalitas D3DX yang diperlukan.
Rasterizer Referensi D3D11
Reference Rasterizer menyediakan implementasi rasterisasi standar emas untuk evaluasi fitur Direct3D 11 yang belum tersedia di perangkat keras. Referensi Rasterizer juga disediakan sebagai cara untuk memverifikasi akurasi implementasi perangkat keras tertentu terhadap standar rasterisasi. Rasterizer referensi dirancang untuk kebenaran, bukan performa. Untuk membuat perangkat referensi, cukup berikan bendera D3D_DRIVER_TYPE_REFERENCE pada pembuatan perangkat.
Lapisan D3D11 SDK
Lapisan SDK Direct3D11 menyediakan mekanisme untuk melacak pengoperasian runtime Direct3D 11 selama pengembangan. Saat ini digunakan untuk memberikan informasi debug yang berguna, yang tidak hanya mencakup kesalahan pada penggunaan yang tidak tepat tetapi juga peringatan yang merekomendasikan penggunaan praktik terbaik runtime dan sering memberikan informasi mendalam dan berguna untuk penelusuran kesalahan. Sangat disarankan agar output debug dari Lapisan SDK D3D11 diaktifkan setiap saat selama pengembangan dan aplikasi tidak menghasilkan output debug selama eksekusi sebelum dirilis atau digunakan dengan PIX untuk Windows untuk pembuatan profil. Mengaktifkan lapisan debug semederhana melewati bendera D3D11_CREATE_DEVICE_DEBUG pada waktu pembuatan perangkat. Pengembang sangat didorong untuk menggunakan lapisan dalam build debug. Lapisan tidak disarankan untuk digunakan dalam build profil atau rilis.
Sampel Baru
Rilis ini memiliki empat sampel baru.
  • Sampel Dynamic Shader Linkage 11 menunjukkan penggunaan antarmuka shader Model 5 Shader dan dukungan Direct3D 11 untuk menautkan metode antarmuka shader saat runtime.
  • Sampel HDRToneMappingCS11 menunjukkan cara mengatur dan menjalankan Compute Shader (CS untuk singkat kemudian), yang merupakan salah satu fitur baru paling menarik dari Direct3D 11. Meskipun sampel hanya menggunakan CS untuk menerapkan pemetaan nada HDR, konsepnya harus diperluas dengan mudah ke algoritma pasca-pemrosesan lainnya serta perhitungan yang lebih umum.
  • Sampel MultithreadedRendering11 menunjukkan cara membagi penyajian di antara beberapa utas, dengan overhead yang sangat rendah.
  • Sampel SubD11 baru sangat mirip dengan sampel SubD10 di DirectX SDK, kecuali bahwa telah ditingkatkan untuk memanfaatkan tiga tahap alur Direct3D 11 baru: shader lambung, tessellator, dan shader domain.

Fitur yang Diperkenalkan Dalam Rilis Sebelumnya