Maaf, pertanyaan ini agak esoteris, tetapi saya tidak bisa mengeluarkannya dari kepala saya!
Saya melihat algoritma fade yang digunakan dalam game arcade DoDonPachi (dan juga banyak game lama lainnya):
Saya menulis skrip python untuk memilih beberapa piksel dan melacaknya selama durasi pudar. Inilah contoh yang representatif dari hasilnya. Baris pertama dari setiap grup adalah nilai warna awal, sedangkan setiap baris berikutnya adalah perbedaan antara nilai warna dari frame saat ini dan nilai warna dari frame sebelumnya.
Starting Value: (132, 66, 189)
Frame 1: [9, 9, 8]
Frame 2: [8, 8, 8]
Frame 3: [8, 8, 8]
Frame 4: [8, 8, 9]
Frame 5: [9, 9, 8]
Frame 6: [8, 8, 8]
Frame 7: [8, 8, 8]
Frame 8: [8, 8, 9]
Frame 9: [9, 0, 8]
Frame 10: [8, 0, 8]
Frame 11: [8, 0, 8]
Frame 12: [8, 0, 9]
Frame 13: [9, 0, 8]
Frame 14: [8, 0, 8]
Frame 15: [8, 0, 8]
Frame 16: [8, 0, 9]
Frame 17: [0, 0, 8]
Frame 18: [0, 0, 8]
Frame 19: [0, 0, 8]
Frame 20: [0, 0, 9]
Frame 21: [0, 0, 8]
Frame 22: [0, 0, 8]
Frame 23: [0, 0, 8]
Frame 24: [0, 0, 0]
Frame 25: [0, 0, 0]
Frame 26: [0, 0, 0]
Frame 27: [0, 0, 0]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Starting Value: (132, 0, 0)
Frame 1: [9, 0, 0]
Frame 2: [8, 0, 0]
Frame 3: [8, 0, 0]
Frame 4: [8, 0, 0]
Frame 5: [9, 0, 0]
Frame 6: [8, 0, 0]
Frame 7: [8, 0, 0]
Frame 8: [8, 0, 0]
Frame 9: [9, 0, 0]
Frame 10: [8, 0, 0]
Frame 11: [8, 0, 0]
Frame 12: [8, 0, 0]
Frame 13: [9, 0, 0]
Frame 14: [8, 0, 0]
Frame 15: [8, 0, 0]
Frame 16: [8, 0, 0]
Frame 17: [0, 0, 0]
Frame 18: [0, 0, 0]
Frame 19: [0, 0, 0]
Frame 20: [0, 0, 0]
Frame 21: [0, 0, 0]
Frame 22: [0, 0, 0]
Frame 23: [0, 0, 0]
Frame 24: [0, 0, 0]
Frame 25: [0, 0, 0]
Frame 26: [0, 0, 0]
Frame 27: [0, 0, 0]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Starting Value: (165, 156, 222)
Frame 1: [9, 8, 8]
Frame 2: [8, 8, 8]
Frame 3: [8, 8, 8]
Frame 4: [8, 9, 9]
Frame 5: [9, 8, 8]
Frame 6: [8, 8, 8]
Frame 7: [8, 8, 8]
Frame 8: [8, 9, 9]
Frame 9: [9, 8, 8]
Frame 10: [8, 8, 8]
Frame 11: [8, 8, 8]
Frame 12: [8, 9, 9]
Frame 13: [9, 8, 8]
Frame 14: [8, 8, 8]
Frame 15: [8, 8, 8]
Frame 16: [8, 9, 9]
Frame 17: [9, 8, 8]
Frame 18: [8, 8, 8]
Frame 19: [8, 8, 8]
Frame 20: [8, 0, 9]
Frame 21: [0, 0, 8]
Frame 22: [0, 0, 8]
Frame 23: [0, 0, 8]
Frame 24: [0, 0, 9]
Frame 25: [0, 0, 8]
Frame 26: [0, 0, 8]
Frame 27: [0, 0, 8]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Starting Value: (156, 90, 206)
Frame 1: [8, 8, 8]
Frame 2: [8, 8, 9]
Frame 3: [8, 8, 8]
Frame 4: [9, 9, 8]
Frame 5: [8, 8, 8]
Frame 6: [8, 8, 9]
Frame 7: [8, 8, 8]
Frame 8: [9, 9, 8]
Frame 9: [8, 8, 8]
Frame 10: [8, 8, 9]
Frame 11: [8, 8, 8]
Frame 12: [9, 0, 8]
Frame 13: [8, 0, 8]
Frame 14: [8, 0, 9]
Frame 15: [8, 0, 8]
Frame 16: [9, 0, 8]
Frame 17: [8, 0, 8]
Frame 18: [8, 0, 9]
Frame 19: [8, 0, 8]
Frame 20: [0, 0, 8]
Frame 21: [0, 0, 8]
Frame 22: [0, 0, 9]
Frame 23: [0, 0, 8]
Frame 24: [0, 0, 8]
Frame 25: [0, 0, 8]
Frame 26: [0, 0, 0]
Frame 27: [0, 0, 0]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Seperti yang Anda lihat, angka 8 atau 9 dikurangi dari setiap komponen warna di setiap bingkai. Selain itu, 9 selalu muncul tiga frame setelah 8, meskipun nilai awal yang dikurangi berbeda untuk setiap komponen warna. Perhatikan juga bahwa setiap komponen warna mencapai 0 (yaitu, hitam) dengan perbedaan antara 8 atau 9, bukan sisa yang sewenang-wenang. Ini berarti bahwa siklus nilai yang dikurangi 8,8,8,9 tidak pernah rusak! (Algoritma ini mungkin ditulis untuk memastikan bahwa frame terakhir fade semulus yang lain.)
Sekarang, ini membingungkan saya. Menurut perhitungan saya, jika Anda membalikkan proses - yaitu, ambil siklus 8,8,8,9 dan jumlah itu untuk menemukan semua kombinasi yang mungkin dalam 29 frame - Anda hanya mendapatkan 52 angka unik. Tetapi ketika hal itu terjadi, setiap komponen warna adalah anggota set ini! Ini berarti bahwa salah satu warna dipilih secara khusus untuk algoritma fade ini (tidak mungkin), atau bahwa algoritma fade dirancang di sekitar palet warna permainan. Tetapi bagaimana mungkin seseorang dapat mengetahui bahwa jika Anda mengambil 8,8,8,9, menggeser siklus dengan tepat, dan terus mengurangi angka dari setiap komponen warna dalam palet Anda, Anda akhirnya akan mencapai 0 untuk setiap warna tunggal? ! Pasti ada trik matematika yang saya lewatkan. Apa itu?