Tahap alur (Direct3D 10)

Alur Direct3D 10 yang dapat diprogram dirancang untuk menghasilkan grafik untuk aplikasi game realtime. Diagram berikut menunjukkan aliran data dari input ke output melalui setiap tahap yang dapat diprogram.

diagram aliran data dalam alur direct3d 10 yang dapat diprogram

Semua tahapan dapat dikonfigurasi menggunakan API. Tahapan yang menampilkan inti shader umum (blok persegi panjang bulat) dapat diprogram menggunakan bahasa pemrograman HLSL. Seperti yang Akan Anda lihat, ini membuat alur sangat fleksibel dan dapat beradaptasi. Tujuan masing-masing tahapan tercantum di bawah ini.

  • Tahap Input-Assembler - Tahap perakitan input bertanggung jawab untuk memasok data (segitiga, garis, dan titik) ke alur.
  • Tahap Vertex-Shader - Tahap vertex-shader memproses simpul, biasanya melakukan operasi seperti transformasi, skinning, dan pencahayaan. Shader vertex selalu mengambil satu puncak input dan menghasilkan satu verteks output.
  • Tahap Geometri-Shader - Tahap geometri-shader memproses seluruh primitif. Inputnya adalah primitif penuh (yaitu tiga simpul untuk segitiga, dua simpul untuk garis, atau satu puncak untuk titik). Selain itu, setiap primitif juga dapat menyertakan data vertex untuk primitif yang berdekatan tepi. Ini dapat mencakup paling banyak tiga simpul tambahan untuk segitiga atau dua simpul tambahan untuk garis. Geometry Shader juga mendukung amplifikasi geometri terbatas dan de-amplifikasi. Mengingat input primitif, Geometry Shader dapat membuang primitif, atau memancarkan satu atau beberapa primitif baru.
  • Tahap Stream-Output - Tahap stream-output dirancang untuk streaming data primitif dari alur ke memori dalam perjalanan ke rasterizer. Data dapat dialirkan dan/atau diteruskan ke rasterizer. Data yang dialirkan ke memori dapat diedarkan kembali ke alur sebagai data input atau read-back dari CPU.
  • Tahap Rasterizer - Rasterizer bertanggung jawab untuk mengklip primitif, menyiapkan primitif untuk shader piksel dan menentukan cara memanggil pemecah piksel.
  • Tahap Pixel-Shader - Tahap pixel-shader menerima data terinterpolasi untuk primitif dan menghasilkan data per piksel seperti warna.
  • Tahap Output-Merger - Tahap output-merger bertanggung jawab untuk menggabungkan berbagai jenis data output (nilai shader piksel, informasi kedalaman dan stensil) dengan konten target render dan buffer kedalaman/stensil untuk menghasilkan hasil alur akhir.

Panduan Pemrograman untuk Direct3D 10