Referensi Shader Asm
Shader mendorong alur grafis yang dapat diprogram.
Referensi Vertex Shader
Perbedaan Vertex Shader meringkas perbedaan antara versi shader vertex.
Referensi Pixel Shader
Perbedaan Pixel Shader meringkas perbedaan antara versi piksel shader.
Referensi Model Shader 4 dan 5
Bagian Rakitan Model Shader 4 dan Rakitan Model Shader 5 menjelaskan instruksi yang didukung shader model 4 dan 5.
Perilaku Register Konstan di Shader Rakitan
Ada dua cara untuk mengatur register konstan dalam shader rakitan:
- Deklarasikan konstanta shader dalam kode rakitan menggunakan salah satu instruksi def*.
- Gunakan salah satu metode API Set***ShaderConstant*.
Konstanta Shader Direct3D 9
Dalam Direct3D 9 masa pakai konstanta yang ditentukan dalam shader tertentu terbatas pada eksekusi shader itu saja (dan tidak dapat diganti). Konstanta yang ditentukan di Direct3D 9 tidak memiliki efek samping di luar shader.
Berikut adalah contoh menggunakan Direct3D 9:
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 1:
Call Set***Shader shader1
Call Set***ShaderConstant* to set c4
Call Draw
Result: The shader will see the def'd value in c4
Given:
Scenario 1 has just completed
Create shader2 (which references c4 but does not use the def instruction
to define it)
Scenario 2:
Call Set***Shader shader2
Call Draw
Result: The shader will see the value last set in c4 by
Set***ShaderConstant* in scenario 1. This is because shader 2
didn't def c4.
Di Direct3D 9, memanggil Get***ShaderConstant* hanya akan mengambil nilai konstanta yang ditetapkan melalui Set***ShaderConstant*.
Konstanta Shader Direct3D 8
Perilaku ini berbeda dalam Direct3D 8.x.
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 1 (repeated with Direct3D 8):
Call Set***Shader with shader1
Call Set***ShaderConstant to set c4
Call Draw
Result: The shader will see the value in c4 from Set***ShaderConstant
Di Direct3D 8.x Set***ShaderConstant langsung berlaku. Pertimbangkan skenario ini:
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 3:
Call Set***Shader with shader1
Call Draw
Result: The shader will see the def'd value in c4
Given:
Scenario 3 has just completed
Create shader2 (which references c4 but does not use the def instruction
to define it)
Scenario 4 :
Call Set***Shader with shader2
Call Draw
Result: The shader will see the def'd value in c4 (set by def in shader 1)
Hasil yang tidak diinginkan adalah bahwa urutan di mana shader ditetapkan dapat memengaruhi perilaku shader individu yang diamati.
Persyaratan Model Driver Shader
Antarmuka Direct3D 9 dibatasi untuk driver antarmuka driver perangkat (DDI) yang merupakan DirectX 7 tingkat ke atas. Untuk memeriksa tingkat DDI, jalankan Alat Diagnostik DirectX dan periksa file teks yang disimpan.
Sebagai referensi, antarmuka Direct3D 8 hanya berfungsi pada driver DDI yang tingkat DirectX 6 ke atas.
Format Biner Shader
Tata letak bitwise aliran instruksi shader ditentukan dalam D3d9types.h. Jika Anda ingin merancang pengkompilasi shader atau alat konstruksi Anda sendiri dan Anda ingin informasi lebih lanjut tentang aliran token shader, lihat Direct3D 9 Driver Development Kit (DDK).
Bahasa Shader seperti C
Lihat Referensi HLSL untuk merasakan bahasa shader seperti C.
Topik terkait