Dithering Fraktal Stabil Permukaan adalah bentuk baru dithering yang ditemukan oleh Rune Skovbo Johansen untuk digunakan pada permukaan dalam adegan 3D.
Yang unik dari pola ini adalah titik-titik dalam pola gentar menempel pada permukaan, namun ukuran dan jarak titik tetap konstan di layar, bahkan saat permukaan bergerak semakin dekat atau semakin jauh. Hal ini dicapai dengan menambahkan atau menghapus titik secara dinamis sesuai kebutuhan.
Berikut video yang menjelaskan cara kerjanya:
Repositori ini berisi file sumber shader dan tekstur, serta proyek contoh Unity yang mendemonstrasikan penggunaannya. Contoh proyek dibuat dengan Unity 2019.4 dan juga diuji di Unity 2022.3.
Implementasi inti terletak di folder Assets/Dither3D
. File yang tersisa berhubungan dengan proyek contoh Unity.
Versi asli repositori ini dapat ditemukan di:
Setiap material yang menggunakan dithering memiliki sifat nomor spesifik dither berikut:
Kecerahan Masukan Gentar
Exposure
Eksposur untuk diterapkan pada kecerahan input (default 1).Offset
Offset untuk diterapkan pada kecerahan input (default 0).
Pengaturan Gentar
Dot Scale
Nilai yang menskalakan titik-titik secara eksponensial.Dot Size Variability
0 = kontrol bayangan jumlah titik “Gaya Bayer” (default);
1 = kontrol bayangan ukuran titik “gaya setengah nada”.Dot Contrast
Nilai 1 menghasilkan anti-aliasing sempurna (default 1).Stretch Smoothness
Berapa banyak untuk menghaluskan titik-titik anisotropik (default 1).
Opsi Global
Selanjutnya, properti sakelar global berikut dapat diatur melalui Dither3DGlobalProperties
komponen:
Radial Compensation
Saat menggunakan kamera perspektif, titik harus lebih besar ke arah tepi layar agar stabil saat kamera diputar. Fitur Kompensasi Radial dapat diaktifkan untuk mencapai hal ini.Quantize Layers
Jika dinonaktifkan, titik-titik tersebut dapat membesar atau mengecil ukurannya masing-masing saat muncul atau menghilang. Bahkan ketika diaktifkan, titik-titik mungkin masih terpotong sebagian, tapi itu adalah efek tersendiri dan tidak dapat dihindari.Debug Fractal
Menampilkan efek overlay yang menunjukkan ukuran pola, bila diaktifkan.
Itu Dither3DGlobalProperties
komponen juga dapat digunakan untuk mengesampingkan sifat non-global dari semua material gentar sekaligus.
Sekilas tentang file-file di Assets/Dither3D
map:
Shader pusat menyertakan file dengan implementasi dithering:
Termasuk file shader yang menggunakan implementasi dithering:
Dither3DOpaque.shader
Dither3DCutout.shader
Dither3DParticleAdd.shader
Dither3DSkybox.shader
Shader gentar mengandalkan tekstur 3D dengan pola gentar. Ini tersedia dalam beberapa versi dengan jumlah titik berbeda. Pada material yang menggunakan dither shader, Anda dapat dengan bebas beralih di antara tekstur 3D ini.
Dither3D_1x1.asset
Dither3D_2x2.asset
Dither3D_4x4.asset
Dither3D_8x8.asset
Meskipun tekstur 3D tersedia di repositori, sebuah skrip juga disertakan yang dapat menghasilkannya dari awal. Anda dapat melakukan ini dengan menggunakan item menu di bawah pengelompokan Assets/Create/Dither 3D Texture/...
.
Skrip ini juga menghasilkan file gambar PNG, di mana berbagai lapisan diletakkan dari bawah ke atas. File PNG ini tidak digunakan untuk apa pun dan dapat dihapus dengan aman, namun lebih mudah untuk diperiksa dan dipelajari daripada tekstur 3D asli. Perhatikan bahwa versi Unity yang lebih baru pada prinsipnya dapat mengimpor tekstur 3D dari gambar 2D tersebut, namun karena ketidakkonsistenan antara API tekstur 3D Unity dan pengimpor tekstur 3D-nya, lapisan akan muncul dalam urutan terbalik jika ini dicoba, dan ini akan menyebabkan efek dithering fraktal tidak berfungsi.
Dither3D_1x1.png
Dither3D_2x2.png
Dither3D_4x4.png
Dither3D_8x8.png
Implementasi Fraktal Dithering yang Stabil di Permukaan ini dilisensikan di bawah Lisensi Publik Mozilla, v.2.0.
Anda dapat membaca ringkasannya Di Sini. Singkatnya: Jika Anda melakukan perubahan/perbaikan pada implementasi Dithering Fraktal Surface-Stable ini, Anda harus membagikannya secara gratis kepada komunitas. Namun kode sumber lainnya untuk game atau aplikasi Anda tidak tunduk pada lisensi ini, jadi tidak ada yang menghalangi Anda untuk membuat game berpemilik dan komersial yang menggunakan implementasi Surface-Stable Fractal Dithering ini.