Dalam pertanyaan sebelumnya , disarankan bahwa bidang jarak yang ditandatangani dapat dihitung sebelumnya, dimuat saat runtime dan kemudian digunakan dari sana.
Untuk alasan yang akan saya jelaskan di akhir pertanyaan ini (untuk orang-orang yang tertarik), saya perlu membuat bidang jarak secara real time.
Ada beberapa makalah di luar sana untuk metode yang berbeda yang seharusnya dapat bertahan dalam lingkungan waktu nyata, seperti metode untuk transformasi jarak Chamfer dan transformasi berbasis diagram-pendekatan Voronoi (seperti yang disarankan dalam presentasi ini oleh pria pengembang Pixeljunk Shooter dev ), tetapi Saya (dan dengan demikian dapat diasumsikan banyak orang lain) memiliki waktu yang sangat sulit untuk menggunakannya, karena biasanya panjang, sebagian besar penuh dengan matematika dan tidak terlalu algoritmik dalam penjelasannya.
Algoritma apa yang akan Anda sarankan untuk membuat bidang jarak secara real-time (lebih baik pada GPU) terutama mengingat kualitas yang dihasilkan dari bidang jarak?
Karena saya sedang mencari penjelasan / tutorial yang sebenarnya dan bukan tautan ke kertas atau slide lain, pertanyaan ini akan menerima hadiah setelah memenuhi syarat untuk satu :-).
Inilah mengapa saya perlu melakukannya secara real time:
Jika Anda harus melakukan precompute SDFs ini untuk lingkungan 2D yang besar (pikirkan peta seperti Terraria yang besar), ini berarti Anda menerima overhead yang agak besar di ruang penyimpanan (dan waktu pembuatan peta) demi menerapkan lebih banyak algoritma rumit yang cukup cepat untuk pembuatan SDF waktu nyata.
Misalnya, peta yang relatif kecil dengan 1000 * 256 (lebar * tinggi) dengan ukuran ubin 10 * 10 piksel dan dengan demikian total dimensi 10.000 * 2560 piksel akan dikenakan biaya sekitar 2 megabita ukuran, jika Anda memilih yang relatif kecil Resolusi SDF 128x128, dengan asumsi bahwa Anda hanya menyimpan nilai jarak dari 0 hingga 255.
Jelas, ini bisa dengan cepat menjadi terlalu banyak dan merupakan overhead yang tidak ingin saya miliki.
Ada sesuatu yang lain:
SDF dapat digunakan untuk banyak hal (seperti deteksi tabrakan), dan beberapa aplikasi yang berguna bahkan belum ditemukan. Saya pikir banyak orang akan mencari hal-hal ini di masa depan, dan jika kita mendapatkan jawaban yang komprehensif di sini, saya pikir kita akan membantu banyak orang.