Fungsi Intrinsik

Tabel berikut mencantumkan fungsi intrinsik yang tersedia di HLSL. Setiap fungsi memiliki deskripsi singkat, dan tautan ke halaman referensi yang memiliki detail lebih lanjut tentang argumen input dan jenis pengembalian.

Nama Deskripsi Model shader minimum
Membatalkan Mengakhiri panggilan gambar atau pengiriman saat ini yang sedang dijalankan. 4
abs Nilai absolut (per komponen).
acos Mengembalikan arccosine dari setiap komponen x.
all Uji apakah semua komponen x bukan nol.
AllMemoryBarrier Memblokir eksekusi semua utas dalam grup hingga semua akses memori selesai. 5
AllMemoryBarrierWithGroupSync Memblokir eksekusi semua utas dalam grup hingga semua akses memori selesai dan semua utas dalam grup telah mencapai panggilan ini. 5
any Uji apakah ada komponen x yang bukan nol.
asdouble Menginterpretasikan ulang nilai cast ke dalam ganda. 5
asfloat Mengonversi jenis input menjadi float. 4
asin Mengembalikan arkasinus dari setiap komponen x.
asint Mengonversi jenis input menjadi bilangan bulat. 4
asuint Menginterpretrasi ulang pola bit dari jenis 64-bit ke uint. 5
asuint Konversi jenis input menjadi bilangan bulat yang tidak ditandatangani. 4
atan Mengembalikan arka tangen x.
atan2 Mengembalikan arka tangen dari dua nilai (x,y).
Ceil Mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan x.
CheckAccessFullyMapped Menentukan apakah semua nilai dari sampel atau operasi Muat diakses petak peta yang dipetakan dalam sumber daya petak peta. 5
Clamp Menjepit x ke rentang [min, maks].
Klip Membuang piksel saat ini, jika ada komponen x yang kurang dari nol.
cos Mengembalikan kosinus x.
cosh Mengembalikan kosinus hiperbolik x.
countbits Menghitung jumlah bit (per komponen) dalam bilangan bulat input. 5
Cross Mengembalikan produk silang dari dua vektor 3D.
D3DCOLORtoUBYTE4 Swizzles dan menskalakan komponen vektor 4D xto mengkompensasi kurangnya dukungan UBYTE4 di beberapa perangkat keras.
ddx Mengembalikan turunan parsial x sehubungan dengan koordinat x spasi layar.
ddx_coarse Menghitung turunan parsial presisi rendah sehubungan dengan ruang layar x-koordinat. 5
ddx_fine Menghitung turunan parsial presisi tinggi sehubungan dengan ruang layar x-koordinat. 5
ddy Mengembalikan turunan parsial x sehubungan dengan koordinat y spasi layar.
ddy_coarse Menghitung turunan parsial presisi rendah sehubungan dengan koordinat y ruang layar. 5
ddy_fine Menghitung turunan parsial presisi tinggi sehubungan dengan koordinat y ruang layar. 5
degrees Mengonversi x dari radian ke derajat.
Penentu Mengembalikan penentu matriks kuadrat m.
DeviceMemoryBarrier Memblokir eksekusi semua utas dalam grup hingga semua akses memori perangkat selesai. 5
DeviceMemoryBarrierWithGroupSync Memblokir eksekusi semua utas dalam grup hingga semua akses memori perangkat selesai dan semua utas dalam grup telah mencapai panggilan ini. 5
Jarak Mengembalikan jarak antara dua titik.
Dot Mengembalikan produk titik dari dua vektor. 1
Dst Menghitung vektor jarak. 5
errorf Mengirimkan pesan kesalahan ke antrean informasi. 4
EvaluateAttributeCentroid Mengevaluasi pada sentroid piksel. 5
EvaluateAttributeAtSample Mengevaluasi di lokasi sampel terindeks. 5
EvaluateAttributeSnapped Mengevaluasi pada piksel sentroid dengan offset. 5
exp Mengembalikan eksponen base-e.
exp2 Basis 2 eksponen (per komponen).
f16tof32 Mengonversi float16 yang disimpan di bagian bawah uint menjadi float. 5
f32tof16 Mengonversi input menjadi jenis float16. 5
faceforward Mengembalikan -n * sign(dot(i, ng)).
firstbithigh Mendapatkan lokasi bit set pertama mulai dari bit urutan tertinggi dan bekerja ke bawah, per komponen. 5
firstbitlow Mengembalikan lokasi bit set pertama yang dimulai dari bit urutan terendah dan bekerja ke atas, per komponen. 5
lantai Mengembalikan bilangan bulat terbesar yang kurang dari atau sama dengan x.
fma Mengembalikan presisi ganda yang menyatukan penambahan perkalian * b + c. 5
fmod Mengembalikan sisa titik mengambang dari x/y.
frac Mengembalikan bagian pecahan dari x.
frexp Mengembalikan mantissa dan eksponen x.
fwidth Mengembalikan abs(ddx(x)) + abs(ddy(x))
GetRenderTargetSampleCount Mengembalikan jumlah sampel target render. 4
GetRenderTargetSamplePosition Mengembalikan posisi sampel (x,y) untuk indeks sampel tertentu. 4
GroupMemoryBarrier Memblokir eksekusi semua utas dalam grup hingga semua akses bersama grup selesai. 5
GroupMemoryBarrierWithGroupSync Memblokir eksekusi semua utas dalam grup hingga semua akses bersama grup selesai dan semua utas dalam grup telah mencapai panggilan ini. 5
InterlockedAdd Melakukan penambahan nilai atom yang dijamin ke variabel sumber daya dest. 5
InterlockedAnd Melakukan atom terjamin dan. 5
InterlockedCompareExchange Secara atom membandingkan input dengan nilai perbandingan dan menukar hasilnya. 5
InterlockedCompareStore Secara atom membandingkan input dengan nilai perbandingan. 5
InterlockedExchange Menetapkan nilai untuk dest dan mengembalikan nilai asli. 5
InterlockedMax Melakukan maks atom terjamin. 5
InterlockedMin Melakukan min atom yang dijamin. 5
InterlockedOr Melakukan atom terjamin atau. 5
InterlockedXor Melakukan xor atom yang dijamin. 5
isfinite Mengembalikan true jika x terbatas, jika tidak salah.
isinf Mengembalikan true jika x adalah +INF atau -INF, jika tidak salah.
isnan Mengembalikan true jika x adalah NAN atau QNAN, jika tidak salah.
ldexp Mengembalikan x * 2exp
length Mengembalikan panjang vektor v.
lerp Mengembalikan x + s(y - x).
Menyalakan Mengembalikan vektor pencahayaan (sekitar, difus, spekular, 1)
log Mengembalikan logaritma base-e x.
log10 Mengembalikan logaritma base-10 dari x.
log2 Mengembalikan logaritma base-2 dari x.
Gila Melakukan operasi perkalian/penambahan aritmatika pada tiga nilai. 5
max Memilih yang lebih besar dari x dan y.
min Memilih lebih sedikit dari x dan y.
modf Memisahkan nilai x menjadi bagian pecahan dan bilangan bulat.
msad4 Membandingkan nilai referensi 4 byte dan nilai sumber 8 byte dan mengumpulkan vektor 4 jumlah. 5
mul Melakukan perkalian matriks menggunakan x dan y. 1
Kebisingan Menghasilkan nilai acak menggunakan algoritma Perlin-noise.
normalize Mengembalikan vektor yang dinormalisasi.
pow Mengembalikan xy.
printf Mengirimkan pesan shader kustom ke antrean informasi. 4
Process2DQuadTessFactorsAvg Menghasilkan faktor tessellation yang dikoreksi untuk patch quad. 5
Process2DQuadTessFactorsMax Menghasilkan faktor tessellation yang dikoreksi untuk patch quad. 5
Process2DQuadTessFactorsMin Menghasilkan faktor tessellation yang dikoreksi untuk patch quad. 5
ProcessIsolineTessFactors Menghasilkan faktor tesselulasi bulat untuk isoline. 5
ProcessQuadTessFactorsAvg Menghasilkan faktor tessellation yang dikoreksi untuk patch quad. 5
ProcessQuadTessFactorsMax Menghasilkan faktor tessellation yang dikoreksi untuk patch quad. 5
ProcessQuadTessFactorsMin Menghasilkan faktor tessellation yang dikoreksi untuk patch quad. 5
ProcessTriTessFactorsAvg Menghasilkan faktor tesselulasi yang dikoreksi untuk patch tri. 5
ProcessTriTessFactorsMax Menghasilkan faktor tesselulasi yang dikoreksi untuk patch tri. 5
ProcessTriTessFactorsMin Menghasilkan faktor tesselulasi yang dikoreksi untuk patch tri. 5
radians Mengonversi x dari derajat ke radian. 1
rcp Menghitung resiprokal per komponen yang cepat, perkiraan. 5
Mencerminkan Mengembalikan vektor pantulan. 1
refraks Mengembalikan vektor pembiasan.
reversebits Membalik urutan bit, per komponen. 5
round Membulatkan x ke bilangan bulat terdekat
rsqrt Mengembalikan 1 / sqrt(x)
Jenuh Menjepit x ke rentang [0, 1] 1
sign Menghitung tanda x.
sin Mengembalikan sinus x
sincos Mengembalikan sinus dan kosinus x.
sinh Mengembalikan sinus hiperbolik x
smoothstep Mengembalikan interpolasi Hermite halus antara 0 dan 1.
sqrt Akar kuadrat (per komponen)
Langkah Mengembalikan (x >= a) ? 1 : 0
tan Mengembalikan tangen x
tanh Mengembalikan tangen hiperbolik dari x
tex1D(s, t) Pencarian tekstur 1D. 1
tex1D(s, t, ddx, ddy) Pencarian tekstur 1D.
tex1Dbias Pencarian tekstur 1D dengan bias.
tex1Dgrad Pencarian tekstur 1D dengan gradien.
tex1Dlod Pencarian tekstur 1D dengan LOD.
tex1Dproj Pencarian tekstur 1D dengan pembagian proyektif.
tex2D(s, t) Pencarian tekstur 2D.
tex2D(s, t, ddx, ddy) Pencarian tekstur 2D.
tex2Dbias Pencarian tekstur 2D dengan bias.
tex2Dgrad Pencarian tekstur 2D dengan gradien.
tex2Dlod Pencarian tekstur 2D dengan LOD. 3
tex2Dproj Pencarian tekstur 2D dengan pembagian proyektif.
tex3D(s, t) Pencarian tekstur 3D.
tex3D(s, t, ddx, ddy) Pencarian tekstur 3D.
tex3Dbias Pencarian tekstur 3D dengan bias.
tex3Dgrad Pencarian tekstur 3D dengan gradien.
tex3Dlod Pencarian tekstur 3D dengan LOD.
tex3Dproj Pencarian tekstur 3D dengan pembagian proyektif.
texCUBE(s, t) Pencarian tekstur kubus.
texCUBE(s, t, ddx, ddy) Pencarian tekstur kubus.
texCUBEbias Pencarian tekstur kubus dengan bias.
texCUBEgrad Pencarian tekstur kubus dengan gradien.
texCUBElod Pencarian tekstur kubus dengan LOD.
texCUBEproj Pencarian tekstur kubus dengan pembagian proyektif.
mengubah urutan Mengembalikan urutan matriks m. 1
potong Memotong nilai floating-point menjadi nilai bilangan bulat 1

 

¹ lihat halaman referensi untuk pembatasan.

Komponen dan Jenis Templat

Deklarasi fungsi intrinsik HLSL menggunakan jenis komponen dan jenis templat untuk argumen parameter input dan mengembalikan nilai. Jenis yang tersedia tercantum dalam tabel berikut ini.

Jenis Templat Ini Deskripsi Dukung Jenis Data Ini
matriks hingga 16 komponen tergantung pada deklarasi Jenis HLSL Dasar
object objek sampler sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
skalar 1 komponen Jenis HLSL Dasar
Vektor Minimum 1 komponen, maksimum 4 komponen (inklusif) Jenis HLSL Dasar

 

Baca juga

Referensi untuk HLSL