Bagikan melalui


Fitur Direct3D 10.1

Direct3D 10.1 memperluas set fitur Direct3D 10.0 dengan fitur baru berikut:

  • Mode Campuran - Mode campuran independen per target render menggunakan antarmuka status campuran baru (lihat Antarmuka ID3D10BlendState1). Operasi blending sumber ganda dibatasi untuk merender slot target 0; Anda mungkin tidak menulis ke output lain atau memiliki target render yang terikat ke slot selain slot 0.

  • Perilaku Culling - Wajah area nol secara otomatis dimusnahkan; ini hanya memengaruhi penyajian wireframe.

  • Aturan Titik Mengambang - Menggunakan aturan IEEE-754 yang sama untuk operasi floating-point EXCEPT 32-bit floating point telah diperketat untuk menghasilkan hasil dalam 0,5 unit-last-place (0,5 ULP) dari hasil yang tak terbatas tepat. Ini berlaku untuk penambahan, pengurangan, dan perkalian. (akurasi ke 0,5 ULP untuk dikalikan, 1,0 ULP untuk timbal balik).

  • Format - Presisi blending float16 telah meningkat menjadi 0,5 ULP. Blending juga diperlukan untuk format UNORM16/SNORM16/SNORM8.

  • Multisample Anti-Aliasing - Multisampling telah ditingkatkan untuk menggeneralisasi transparansi berbasis cakupan dan membuat pekerjaan multisampling lebih efektif dengan penyajian multi-pass. Untuk mencapai hal ini, semua semantik multisample didefinisikan seolah-olah shader piksel selalu berjalan sekali per sampel (frekuensi sampel), menghitung warna terpisah per sampel. Jika shader piksel tidak menggunakan atribut per sampel apa pun, maka akan menghitung nilai yang sama untuk setiap sampel yang dicakup dalam satu piksel. Dalam hal ini, setara dengan perangkat keras yang menjalankan shader sekali per piksel (frekuensi piksel), mereplikasi hasilnya ke semua sampel yang tercakup. Secara alami, berjalan pada frekuensi piksel selalu menghasilkan hasil yang sama dengan menjalankan shader yang sama pada frekuensi sampel, ketika atribut diambil sampelnya pada frekuensi piksel. Kenaikan statistik alur PSInvocations pada frekuensi sampel kecuali shader berjalan pada frekuensi piksel.

  • Bandwidth Tahap Alur - Meningkatkan jumlah data yang dapat diteruskan di antara tahap shader:

    Sumber daya Batas
    Mendaftar di antara Tahap Shader 32 (32-bit x 4-component)
    Daftar Input Vertex Shader 32
    Slot input Perakitan Input 32

     

  • Aturan Rasterisasi - Aturan untuk rasterisasi telah berubah untuk baris, selain itu, fungsionalitas baru telah ditambahkan.

    • MultisampleEnable hanya memengaruhi rasterisasi garis (titik dan segitiga tidak terpengaruh), dan digunakan untuk memilih algoritma gambar garis. Ini berarti bahwa beberapa rasterisasi multisample dari Direct3D 10 tidak lagi didukung.
    • Eksekusi piksel shader frekuensi sampel baru dengan rasterisasi primitif.
  • Sumber Daya - CopyResource diaktifkan dalam dua skenario baru:

    • Permukaan MSAA warna dan kedalaman/stensil sekarang dapat digunakan dengan CopyResource sebagai sumber atau tujuan
    • Konversi Format saat menyalin antara sumber daya terstruktur 32/64/128 bit tertentu, sumber daya yang diketik, dan representasi terkompresi dengan lebar bit yang sama.
  • Texture Sampling - instruksi sample_c dan sample_c_lz didefinisikan untuk bekerja dengan Texture2DArrays dan TextureCubeArrays, gunakan Anggota lokasi (komponen alfa) untuk menentukan indeks array.

  • Tampilan - TextureCube dan TextureCubeArray baru (lihat D3D10_TEXCUBE_ARRAY_SRV1) bukan sumber daya aktual, tetapi merupakan tampilan baru pada sumber daya Texture2DArray. Buat tampilan sumber daya dari sumber daya Texture2DArray dengan bendera penggunaan baru (D3D10_RESOURCE_MISC_TEXTURECUBE), gunakan antarmuka Antarmuka ID3D10ShaderResourceView1 baru untuk mengikat tampilan tekstur kubus ke alur.

Fitur baru memerlukan jenis perangkat 10.1 (lihat ANTARMUKA ID3D10Device1) yang dapat dibuat dengan memanggil D3D10CreateDevice1, atau Anda dapat membuat perangkat dan rantai pertukaran pada saat yang sama dengan memanggil D3D10CreateDeviceAndSwapChain1.

Di Windows Vista Service Pack 1, DLL Direct3D 10.0 dan Direct3D 10.1 ada secara berdampingan di sistem. Untuk mengakses fitur 10.1, lakukan salah satu hal berikut:

Mengakses 10.1 Fitur di Vista Gold dan Vista Service Pack 1

Pengembang yang ingin mendukung Vista Gold serta SP1 harus memperhitungkan kurangnya ekstensi API 10.1 baru di Vista Gold. DXUT dan D3DX10 akan memberikan fungsi kenyamanan untuk membuat perangkat yang sesuai, berdasarkan DLL yang tersedia pada sistem dan perangkat keras yang tersedia (10.0 atau 10.1). Perangkat 10.1 mewarisi dari perangkat 10.0, dan dapat diambil menggunakan QueryInterface(). Disarankan agar setiap aplikasi melacak jenis perangkat dan mempertahankan pointer ke perangkat 10.1 (jika tersedia) untuk menghindari panggilan QueryInterface yang sering ketika fungsionalitas 10.1 diinginkan. Demikian juga, di mana 10.1 tampilan sumber daya dan objek status dikaitkan oleh kelas kustom aplikasi, disarankan agar aplikasi melacak apakah objek adalah jenis 10.0 atau 10.1 untuk menghindari panggilan QueryInterface() yang berlebihan. D3DX10 menyertakan serangkaian fungsi utilitas untuk menyederhanakan proses ini (lihat D3DX10CreateDevice dan D3DX10CreateDeviceAndSwapChain).

Mengakses Fitur 10.1 pada Vista Service Pack 1 Secara Eksklusif

Beberapa pengembang dapat memilih untuk mewajibkan Vista Service Pack 1, yang akan didistribusikan secara luas ke pengguna akhir dan mencakup serangkaian peningkatan di luar Direct3D 10.1. Pengembang ini dapat menggunakan header dan pustaka Direct3D 10.1 secara eksklusif, mengambil dependensi pada DLL Direct3D 10.1 yang mendukung perangkat keras 10.0 dan 10.1 (beberapa panggilan mungkin gagal, namun, pada perangkat 10.0 di mana fungsionalitas baru tidak didukung).

Beberapa catatan tambahan:

  • API yang diekspos di D3DX10.dll akan menerima perangkat 10.0 dan 10.1, dan akan memanfaatkan fungsionalitas 10.1 saat tersedia.
  • D3D10SDKLayers.dll mendukung perangkat 10.1 dan dapat menghasilkan spew debug yang sesuai untuk fitur 10.1.
  • D3D10Ref.dll menerapkan perangkat lunak 10.0 dan 10.1.
  • D3DX10 dan FXC mendukung model shader 10.1 yang diperbarui dengan target berikut: vs_4_1, gs_4_1, ps_4_1, dan fx_4_1 yang dapat terikat ke perangkat 10.1. Perangkat 10.1 mendukung shader model 4.0 dan 4.1 shader.
  • Kerangka kerja efek Direct3D 10.0 mendukung perangkat 10.0 dan 10.1, namun, teknik apa pun yang mencakup shader model 4.1 shader atau fitur 10.1 baru harus menggunakan perangkat 10.1.

Panduan Pemrograman untuk Direct3D 10