Bagikan melalui


Efek pencahayaan tersebar jauh

Gunakan efek pencahayaan jauh-difus untuk membuat gambar yang tampaknya merupakan permukaan non-reflektif dengan di mana sumber cahaya tampaknya berasal dari jarak jauh (seperti matahari atau lampu overhead) dan cahaya tersebar di semua arah. Efek ini menggunakan saluran alfa sebagai peta tinggi dan menyalakan gambar dengan sumber cahaya yang jauh.

Warna bitmap output adalah hasil dari warna terang, posisi cahaya, dan geometri permukaan gambar. Output saluran alfa untuk setiap piksel dengan pencahayaan difus selalu 1,0.

CLSID untuk efek ini adalah CLSID_D2D1DistantDiffuse.

Contoh gambar

Contoh di sini menunjukkan gambar input dan output dari efek pencahayaan menyebar yang jauh.

contoh efek cuplikan layar gambar input dan output dari efek pencahayaan difus yang jauh.

Properti efek

Nama tampilan dan enumerasi indeks Deskripsi
Azimut
D2D1_DISTANTDIFFUSE_PROP_AZIMUTH
Sudut arah sumber cahaya di bidang XY relatif terhadap sumbu X berlawanan arah jarum jam. Unit-unit dinyatakan dalam derajat dan harus antara 0 dan 360 derajat.
Jenisnya adalah FLOAT.
Nilai defaultnya adalah 0,0f.
Ketinggian
D2D1_DISTANTDIFFUSE_PROP_ELEVATION
Sudut arah sumber cahaya di bidang YZ relatif terhadap sumbu Y berlawanan arah jarum jam. Unit-unit diukur dalam derajat dan harus antara 0 dan 360 derajat.
Jenisnya adalah FLOAT.
Nilai defaultnya adalah 0,0f.
DiffuseConstant
D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT
Rasio pantulan difus terhadap jumlah cahaya masuk. Properti ini harus antara 0 dan 10.000 dan tanpa satuan.
Jenisnya adalah FLOAT.
Nilai defaultnya adalah 1,0f.
SurfaceScale
D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE
Faktor skala pada arah Z. Skala permukaan tanpa satuan dan harus bernilai antara 0 dan 10.000.
Jenisnya adalah FLOAT.
Nilai defaultnya adalah 1,0f.
Warna
D2D1_DISTANTDIFFUSE_PROP_COLOR
Warna cahaya yang masuk. Properti ini diekspos sebagai D2D1_VECTOR_3F (R, G, B) dan digunakan untuk menghitung LR, LG, LB.
Jenisnya D2D1_VECTOR_3F.
Nilai defaultnya adalah {1.0f, 1.0f, 1.0f}.
KernelUnitLength
D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH
Ukuran elemen dalam kernel Sobel yang digunakan untuk menghasilkan permukaan normal ke arah X dan Y. Properti ini memetakan nilai dx dan dy dalam gradien Sobel. Properti ini adalah D2D1_VECTOR_2F (Panjang Unit Kernel X, Panjang Unit Kernel Y) dan didefinisikan dalam (piksel independen perangkat (DIP)/Unit Kernel). Efeknya menggunakan interpolasi bilinear untuk menskalakan bitmap agar sesuai dengan ukuran elemen kernel.
Jenisnya D2D1_VECTOR_2F.
Nilai defaultnya adalah {1.0f, 1.0f}.
ScaleMode
D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE
Mode interpolasi yang digunakan oleh efek untuk menskalakan gambar ke unit panjang kernel yang sesuai. Ada enam mode skala yang berkisar dalam kualitas dan kecepatan.
Jenisnya D2D1_DISTANTDIFFUSE_SCALE_MODE.
Nilai default adalah D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Skala mode

Enumerasi Deskripsi
D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR Mengambil sampel titik tunggal terdekat dan menggunakannya. Mode ini menggunakan lebih sedikit waktu pemrosesan, tetapi menghasilkan gambar kualitas terendah.
D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR Menggunakan sampel empat titik dan interpolasi linier. Mode ini menghasilkan gambar berkualitas lebih tinggi daripada tetangga terdekat.
D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC Menggunakan 16 sampel kernel kubik untuk interpolasi. Mode ini menggunakan waktu pemrosesan terbanyak, tetapi menghasilkan gambar berkualitas lebih tinggi.
D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR Menggunakan 4 sampel linier dalam satu piksel untuk anti-aliasing tepi yang baik. Mode ini baik untuk menurunkan skala dengan jumlah kecil pada gambar dengan beberapa piksel.
D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC Menggunakan pemfilteran anisotropic untuk mengambil sampel pola sesuai dengan bentuk bitmap yang diubah.
D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC Menggunakan kernel kubik berkualitas tinggi dengan ukuran variabel untuk melakukan prapengecilan gambar jika pengecilan ukuran termasuk dalam matriks transformasi. Kemudian menggunakan mode interpolasi kubik untuk output akhir.

Nota

Jika Anda tidak memilih mode, efek akan default ke D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Persyaratan

Syarat Nilai
Klien minimum yang didukung Pembaruan Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | aplikasi Windows Store]
Server minimum yang didukung Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | aplikasi toko Windows]
Header d2d1effects.h
Perpustakaan d2d1.lib, dxguid.lib

ID2D1Effect