Bagikan melalui


Apa yang baru dalam Pratinjau Teknologi Direct3D 11 November 2008

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

Benda Deskripsi
Tessellation
Direct3D 11 menyediakan tahap alur tambahan untuk mendukung teselasi real-time primitif orde tinggi. Dengan kemampuan yang dapat diprogram secara luas, fitur ini memungkinkan banyak metode berbeda untuk mengevaluasi permukaan urutan tinggi, termasuk permukaan subdivisi menggunakan teknik perkiraan, patch Bezier, tesselulasi adaptif, dan pemetaan perpindahan. Fitur ini hanya akan tersedia pada perangkat keras kelas Direct3D 11, jadi untuk mengevaluasi fitur ini, Anda harus menggunakan Reference Rasterizer. Untuk melihat tessellation dalam aksi, periksa sampel SubD11 yang tersedia melalui Browser Sampel.
Compute Shader
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 yang tersebar ke sumber daya melalui Unordered Access Views, kumpulan memori bersama dalam grup utas yang sedang dieksekusi, primitif sinkronisasi, operator atom, 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 lengkap Direct3D 11 Compute Shader ditujukan untuk dukungan perangkat keras kelas Direct3D 11, jadi untuk mengevaluasi fungsionalitas penuh, Anda perlu menggunakan Reference Rasterizer hingga perangkat keras tersebut tersedia. Untuk demo Compute Shader dalam aksi, lihat sampel HDRToneMappingCS11 yang tersedia di Browser Sampel.
Pemrosesan Multi-utas
Perbedaan API utama dari Direct3D 10 di Direct3D 11 adalah penambahan konteks tertunda , yang memungkinkan eksekusi perintah Direct3D yang dapat diskalakan dan didistribusikan melalui beberapa inti. Konteks Tundaan mengumpulkan dan merangkai tindakan seperti perubahan status dan pengambilan data gambar yang dapat dijalankan pada perangkat sebenarnya di waktu yang akan datang. Dengan memanfaatkan Konteks yang Ditangguhkan pada beberapa utas, aplikasi dapat mendistribusikan beban CPU yang diperlukan dalam runtime Direct3D11 dan driver ke beberapa inti, memungkinkan pemanfaatan konfigurasi komputer pengguna akhir dengan lebih optimal. Fitur ini tersedia untuk digunakan pada perangkat keras Direct3D 10 saat ini serta rasterizer referensi. Untuk demonstrasi penggunaan API, lihat sampel MultithreadedRendering11 yang tersedia di Browser Sampel.
Shader Dinamis Linkage
Untuk mengatasi masalah ledakan kompbinatorial yang terlihat dalam mengkhususkan shader untuk performa, Direct3D 11 memperkenalkan bentuk terbatas runtime tautan shader 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 menginline instruksi shader asli dengan cepat daripada memaksa driver untuk mengkompilasi ulang bahasa perantara menjadi 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 dalam SDK ini melalui Direct3D 11 dan nantinya juga melalui Direct3D 10.1, WARP adalah rasterizer berskala berinti banyak yang sepenuhnya sesuai dengan Direct3D 10.1. Memanfaatkan teknologi ini sesederhana menggunakan flag D3D_DRIVER_TYPE_WARP saat membuat perangkat Anda.
Direct3D 10 dan Direct3D 11 pada Perangkat Keras Direct3D 9 (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 tingkat adalah superset ketat dari tingkat di bawahnya. Fungsionalitas yang minimal disimulasikan untuk memastikan tidak ada penurunan kinerja yang tidak terduga. 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 memiliki batas waktu. Untuk membuat proyek guna mengevaluasi komponen baru ini, anda harus menautkan ke perpustakaan impor berlabel beta yang setara (yaitu D3D11_beta.lib). Jika Anda memiliki salinan PDC (Professional Developers Conference) Windows 7, header, lib, dan pdb yang disediakan dalam Windows SDK dengan build tersebut cocok untuk pengembangan menggunakan komponen Direct3D 11 yang disediakan di Windows 7. Mohon batasi penggunaan header, libs, dan pdbs dalam SDK ini hanya untuk komponen beta yang disediakan di sini.
D3DX11
D3DX11 saat ini mendukung pemuatan tekstur, kompilasi shader, pemuatan data, dan fungsi thread 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
Pengkompilasi 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 titik mengambang 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 shader kompilator 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.
D3D11 Rasterizer Referensi
Reference Rasterizer menyediakan implementasi rasterisasi standar emas untuk evaluasi fitur Direct3D 11 yang belum tersedia di perangkat keras. Rasterizer Referensi juga disediakan sebagai cara untuk memverifikasi validitas implementasi perangkat keras tertentu terhadap standar rasterisasi. Rasterizer acuan dirancang untuk akurasi, bukan kinerja. Untuk membuat perangkat referensi, cukup gunakan parameter D3D_DRIVER_TYPE_REFERENCE ketika membuat perangkat.
Lapisan SDK D3D11
Lapisan SDK Direct3D11 menyediakan mekanisme untuk melacak pengoperasian runtime Direct3D 11 selama pengembangan. Saat ini digunakan untuk memberikan informasi debug yang berguna, sering memberikan informasi mendalam dan berguna untuk penelusuran kesalahan, yang tidak hanya mencakup kesalahan penggunaan yang tidak tepat tetapi juga peringatan yang merekomendasikan praktik terbaik dalam penggunaan runtime. 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 sesederhana 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 dari Shader Model 5 dan dukungan Direct3D 11 untuk menghubungkan metode antarmuka shader pada waktu runtime.
  • Contoh HDRToneMappingCS11 menunjukkan cara untuk mengatur dan menjalankan Compute Shader (CS untuk singkatan selanjutnya), yang merupakan salah satu fitur baru paling menarik dari Direct3D 11. Meskipun sampel hanya menggunakan CS untuk menerapkan pemetaan nada HDR, konsepnya harus meluas 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 yang baru sangat mirip dengan sampel SubD10 di DirectX SDK, kecuali bahwa sampel tersebut telah ditingkatkan untuk memanfaatkan tiga tahap pipeline Direct3D 11 baru: shader lambung, tesselator, dan shader domain.

Fitur yang Diperkenalkan dalam Rilis Sebelumnya