Bagikan melalui


Enumerasi D3DTEXTUREOP

Mendefinisikan operasi penaduan tekstur per tahap.

Sintaks

typedef enum D3DTEXTUREOP { 
  D3DTOP_DISABLE                    = 1,
  D3DTOP_SELECTARG1                 = 2,
  D3DTOP_SELECTARG2                 = 3,
  D3DTOP_MODULATE                   = 4,
  D3DTOP_MODULATE2X                 = 5,
  D3DTOP_MODULATE4X                 = 6,
  D3DTOP_ADD                        = 7,
  D3DTOP_ADDSIGNED                  = 8,
  D3DTOP_ADDSIGNED2X                = 9,
  D3DTOP_SUBTRACT                   = 10,
  D3DTOP_ADDSMOOTH                  = 11,
  D3DTOP_BLENDDIFFUSEALPHA          = 12,
  D3DTOP_BLENDTEXTUREALPHA          = 13,
  D3DTOP_BLENDFACTORALPHA           = 14,
  D3DTOP_BLENDTEXTUREALPHAPM        = 15,
  D3DTOP_BLENDCURRENTALPHA          = 16,
  D3DTOP_PREMODULATE                = 17,
  D3DTOP_MODULATEALPHA_ADDCOLOR     = 18,
  D3DTOP_MODULATECOLOR_ADDALPHA     = 19,
  D3DTOP_MODULATEINVALPHA_ADDCOLOR  = 20,
  D3DTOP_MODULATEINVCOLOR_ADDALPHA  = 21,
  D3DTOP_BUMPENVMAP                 = 22,
  D3DTOP_BUMPENVMAPLUMINANCE        = 23,
  D3DTOP_DOTPRODUCT3                = 24,
  D3DTOP_MULTIPLYADD                = 25,
  D3DTOP_LERP                       = 26,
  D3DTOP_FORCE_DWORD                = 0x7fffffff
} D3DTEXTUREOP, *LPD3DTEXTUREOP;

Konstanta

D3DTOP_DISABLE

Menonaktifkan output dari tahap tekstur ini dan semua tahap dengan indeks yang lebih tinggi. Untuk menonaktifkan pemetaan tekstur, atur ini sebagai operasi warna untuk tahap tekstur pertama (tahap 0). Operasi alfa tidak dapat dinonaktifkan ketika operasi warna diaktifkan. Mengatur operasi alfa ke D3DTOP_DISABLE saat penpaduan warna diaktifkan menyebabkan perilaku yang tidak terdefinisi.

D3DTOP_SELECTARG1

Gunakan argumen warna atau alfa pertama tahap tekstur ini, tidak dimodifikasi, sebagai output. Operasi ini memengaruhi argumen warna saat digunakan dengan status tahap tekstur D3DTSS_COLOROP, dan argumen alfa saat digunakan dengan D3DTSS_ALPHAOP.

persamaan argumen ini (s(rgba) = arg1)

D3DTOP_SELECTARG2

Gunakan argumen warna kedua atau alfa tahap tekstur ini, yang tidak dimodifikasi, sebagai output. Operasi ini memengaruhi argumen warna saat digunakan dengan status tahap tekstur D3DTSS_COLOROP, dan argumen alfa saat digunakan dengan D3DTSS_ALPHAOP.

persamaan argumen ini (s(rgba) = arg2)

D3DTOP_MODULATE

Kalikan komponen argumen.

persamaan operasi modulasi (s(rgba) = arg1 x arg 2)

D3DTOP_MODULATE2X

Kalikan komponen argumen, dan geser produk ke kiri 1 bit (secara efektif mengalikannya dengan 2) untuk pencerahan.

persamaan operasi modulate2x (s(rgba) = (arg1 x arg 2) lalu geser ke kiri 1)

D3DTOP_MODULATE4X

Kalikan komponen argumen, dan geser produk ke 2 bit kiri (mengalikannya secara efektif dengan 4) untuk mencerahkan.

persamaan operasi modulate4x (s(rgba) = (arg1 x arg 2) lalu geser ke kiri 2)

D3DTOP_ADD

Tambahkan komponen argumen.

persamaan operasi tambah (s(rgba) = arg1 + arg 2)

D3DTOP_ADDSIGNED

Tambahkan komponen argumen dengan bias - 0,5, membuat rentang nilai yang efektif dari - 0,5 hingga 0,5.

persamaan operasi tambahkan yang ditandatangani (s(rgba) = arg1 + arg 2 – 0,5)

D3DTOP_ADDSIGNED2X

Tambahkan komponen argumen dengan bias - 0,5, dan geser produk ke kiri 1 bit.

persamaan operasi tambahkan 2x yang ditandatangani ((s(rgba) = arg1 + arg 2 - 0,5) lalu geser ke kiri 1)

D3DTOP_SUBTRACT

Kurangi komponen argumen kedua dari argumen pertama.

persamaan operasi pengurangan (s(rgba) = arg1 - arg 2)

D3DTOP_ADDSMOOTH

Tambahkan argumen pertama dan kedua; kemudian kurangi produk mereka dari jumlah.

persamaan operasi tambahkan halus (s(rgba) = arg1 + arg 2 x (1 - arg1))

D3DTOP_BLENDDIFFUSEALPHA

Padukan tahap tekstur ini secara linier, menggunakan alfa terinterpolasi dari setiap vertex.

persamaan blend diffuse alpha operation (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP_BLENDTEXTUREALPHA

Padukan tahap tekstur ini secara linear, menggunakan alfa dari tekstur tahap ini.

persamaan operasi alfa tekstur campuran (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP_BLENDFACTORALPHA

Campuran tahap tekstur ini secara linier, menggunakan alfa skalar yang diatur dengan status render D3DRS_TEXTUREFACTOR.

persamaan operasi alfa faktor campuran (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP_BLENDTEXTUREALPHAPM

Secara linier memadukan tahap tekstur yang menggunakan alfa yang telah diubah sebelumnya.

persamaan operasi alpha pm tekstur campuran (s(rgba) = arg1 + arg 2 x (1 - alpha))

D3DTOP_BLENDCURRENTALPHA

Padukan tahap tekstur ini secara linier, menggunakan alfa yang diambil dari tahap tekstur sebelumnya.

persamaan operasi alfa saat ini campuran (s(rgba) = arg1 x alpha + arg2 x (1 - alpha))

D3DTOP_PREMODULATE

D3DTOP_PREMODULATE diatur dalam tahap n. Output tahap n adalah arg1. Selain itu, jika ada tekstur dalam tahap n + 1, D3DTA_CURRENT apa pun di tahap n + 1 telah ditentukan sebelumnya oleh tekstur di tahap n + 1.

D3DTOP_MODULATEALPHA_ADDCOLOR

Modulasi warna argumen kedua, menggunakan alfa argumen pertama; lalu tambahkan hasilnya ke argumen satu. Operasi ini hanya didukung untuk operasi warna (D3DTSS_COLOROP).

persamaan operasi alfa modulat tambahkan warna (s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP_MODULATECOLOR_ADDALPHA

Memodulasi argumen; lalu tambahkan alfa argumen pertama. Operasi ini hanya didukung untuk operasi warna (D3DTSS_COLOROP).

persamaan operasi tambahkan warna modulat alfa (s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP_MODULATEINVALPHA_ADDCOLOR

Mirip dengan D3DTOP_MODULATEALPHA_ADDCOLOR, tetapi gunakan inversi alfa argumen pertama. Operasi ini hanya didukung untuk operasi warna (D3DTSS_COLOROP).

persamaan operasi alfa terbalik modulat warna tambah (s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))

D3DTOP_MODULATEINVCOLOR_ADDALPHA

Mirip dengan D3DTOP_MODULATECOLOR_ADDALPHA, tetapi gunakan inversi warna argumen pertama. Operasi ini hanya didukung untuk operasi warna (D3DTSS_COLOROP).

persamaan operasi tambahkan warna terbalik modulat alfa (s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP_BUMPENVMAP

Lakukan pemetaan benjolan per piksel, menggunakan peta lingkungan di tahap tekstur berikutnya, tanpa luminance. Operasi ini hanya didukung untuk operasi warna (D3DTSS_COLOROP).

D3DTOP_BUMPENVMAPLUMINANCE

Lakukan pemetaan benjolan per piksel, menggunakan peta lingkungan di tahap tekstur berikutnya, dengan luminance. Operasi ini hanya didukung untuk operasi warna (D3DTSS_COLOROP).

D3DTOP_DOTPRODUCT3

Memodulasi komponen dari setiap argumen sebagai komponen yang ditandatangani, menambahkan produknya; kemudian replikasi jumlah ke semua saluran warna, termasuk alfa. Operasi ini didukung untuk operasi warna dan alfa.

persamaan operasi produk titik 3 (s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

Di DirectX 6 dan DirectX 7, operasi multitekstur input di atas semuanya digeser ke bawah setengah (y = x - 0,5) sebelum digunakan untuk mensimulasikan data yang ditandatangani, dan hasil skalar secara otomatis dijepit ke nilai positif dan direplikasi ke ketiga saluran output. Selain itu, perhatikan bahwa sebagai operasi warna ini tidak memperbarui alfa, ini hanya memperbarui komponen RGB.

Namun, dalam shader DirectX 8.1 Anda dapat menentukan bahwa output dirutekan ke .rgb atau komponen .a atau keduanya (default). Anda juga dapat menentukan operasi skalar terpisah pada saluran alfa.

D3DTOP_MULTIPLYADD

Melakukan operasi multiply-accumulate. Dibutuhkan dua argumen terakhir, mengalikannya bersama-sama, dan menambahkannya ke argumen input/sumber yang tersisa, dan menempatkannya ke dalam hasil.

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP_LERP

Secara linier menginterpolasi antara argumen sumber kedua dan ketiga dengan proporsi yang ditentukan dalam argumen sumber pertama.

SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.

D3DTOP_FORCE_DWORD

Memaksa enumerasi ini untuk mengkompilasi ke ukuran 32 bit. Tanpa nilai ini, beberapa pengkompilasi akan memungkinkan enumerasi ini dikompilasi ke ukuran selain 32 bit. Nilai ini tidak digunakan.

Keterangan

Anggota jenis ini digunakan saat mengatur warna atau operasi alfa dengan menggunakan nilai D3DTSS_COLOROP atau D3DTSS_ALPHAOP dengan metode IDirect3DDevice9::SetTextureStageState .

Dalam rumus di atas, SRGBA adalah warna RGBA yang dihasilkan oleh operasi tekstur, dan Arg1, Arg2, dan Arg3 mewakili warna RGBA lengkap dari argumen tekstur. Komponen individual dari argumen ditampilkan dengan subskrip. Misalnya, komponen alfa untuk argumen 1 akan ditampilkan sebagai Arg1A.

Persyaratan

Persyaratan Nilai
Header
D3D9Types.h

Lihat juga

Enumerasi Direct3D

D3DTEXTURESTAGESTATETYPE