Sumber daya (Direct3D 10)

Sumber daya adalah area dalam memori yang dapat diakses oleh alur Direct3D. Agar alur dapat mengakses memori secara efisien, data yang disediakan ke alur (seperti geometri input, sumber daya shader, tekstur, dll) harus disimpan dalam sumber daya. Ada dua jenis sumber daya dari mana semua sumber daya Direct3D berasal: buffer atau tekstur. Hingga 128 sumber daya dapat aktif untuk setiap tahap alur.

Setiap aplikasi biasanya akan membuat banyak sumber daya. Contoh sumber daya meliputi: buffer vertex, buffer indeks, buffer konstanta, tekstur, dan sumber daya shader. Ada beberapa opsi yang menentukan bagaimana sumber daya dapat digunakan. Anda dapat membuat sumber daya yang sangat ditik atau mengetik lebih sedikit; Anda dapat mengontrol apakah sumber daya memiliki akses baca dan tulis; Anda dapat membuat sumber daya hanya dapat diakses oleh CPU, GPU, atau keduanya. Secara alami, akan ada tradeoff kecepatan vs. fungsionalitas - semakin banyak fungsionalitas yang Anda izinkan untuk dimiliki sumber daya, semakin sedikit performa yang harus Anda harapkan.

Karena aplikasi sering menggunakan banyak tekstur, Direct3D juga memperkenalkan konsep array tekstur untuk menyederhanakan manajemen tekstur. Array tekstur berisi satu atau beberapa tekstur (semua jenis dan dimensi yang sama) yang dapat diindeks dari dalam aplikasi atau oleh shader. Array tekstur memungkinkan Anda menggunakan satu antarmuka dengan beberapa indeks untuk mengakses banyak tekstur. Anda dapat membuat array tekstur sebanyak yang Anda butuhkan untuk mengelola jenis tekstur yang berbeda.

Setelah Anda membuat sumber daya yang akan digunakan aplikasi, Anda menyambungkan atau mengikat setiap sumber daya ke tahap alur yang akan menggunakannya. Ini dicapai dengan memanggil API ikatan, yang membawa pointer ke sumber daya. Karena lebih dari satu tahap alur mungkin memerlukan akses ke sumber daya yang sama, Direct3D 10 memperkenalkan konsep tampilan sumber daya. Tampilan mengidentifikasi bagian sumber daya yang dapat diakses. Anda dapat membuat tampilan m atau sumber daya dan mengikatnya ke tahap alur n, dengan asumsi Anda mengikuti aturan pengikatan untuk sumber daya bersama (runtime akan menghasilkan kesalahan pada waktu kompilasi jika tidak).

Tampilan sumber daya menyediakan model umum untuk akses ke sumber daya (tekstur, buffer, dll.). Karena Anda dapat menggunakan tampilan untuk memberi tahu runtime data apa yang akan diakses dan cara mengaksesnya, tampilan sumber daya memungkinkan Anda membuat jenis sumber daya yang lebih sedikit. Artinya, Anda dapat membuat sumber daya untuk ukuran tertentu pada waktu kompilasi, lalu mendeklarasikan jenis data dalam sumber daya saat sumber daya terikat ke alur. Tampilan mengekspos banyak kemampuan baru untuk menggunakan sumber daya, seperti kemampuan untuk membaca permukaan kedalaman/stensil belakang di shader, menghasilkan cubemap dinamis dalam satu pass, dan merender secara bersamaan ke beberapa irisan volume.

Untuk mengetahui selengkapnya tentang jenis sumber daya dasar, array tekstur, dan cara membuat dan menggunakan sumber daya, lihat topik lain ini:

Panduan Pemrograman untuk Direct3D 10