Bagikan melalui


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.

Referensi untuk HLSL