Presentasi dari Mohamad Saepul Ramdani, Crew dari Agate Studio dalam event Talent Development Saturday Agate Studio. http://agatestudio.com
Talent Development Saturday adalah acara Agate Studio crew sharing berbagai topik. Mulai dari Art, Programming, Game Production dan General Business/Management. TDS ini dilakukan tanggal 8 Februari 2014 di Bandung Digital Valley.
5. Whitening
• Sebuah fungsi untuk merata-ratakan informasi suatu warna.
• Contoh: RGB(10, 20, 30) RGB(20, 20,20)
• Ini digunakan untuk mendapatkan tingkat “kecerahan” warna.
//color defined somewhere
for (int i = 0; i < 3; i++) {
int shift = (8 * i);
int part = (color & (0xff << shift)) >>> shift;
if (part > 0) {
number++;
sum += part;
}
}
int level = sum / number;
int result = (level << 16) | ((level << 8) | level);
6. Tint
• Fungsi untuk memodifikasi warna berdasarkan warna dasar yang
ditentukan dan disesuaikan dengan tingkat kecerahan sumber
• Component warna = (Tingkat kecerahan * warna dasar yang ditentukan) /
255
//color & whitened defined somewhere
for (int i = 0; i < 3; i++) {
int shift = i * 8;
int s = (whitened & (0xff << shift)) >>> shift;
int c = (color & (0xff << shift)) >>> shift;
result |= (s * c) / 0xff << shift;
}
7. Implementation 1
• Penggunaan pada algoritma sebelumnya pada Garuda 11, adalah
bagaimana cara agar bagian seperti baju, celana dan kaus kaki bisa
diwarnai sesuai dengan warna yang diharapkan.
• Cara untuk membedakan tiga bagian tersebut, adalah dengan
membedakan warna
8. Implementation 2
• Setelah itu tiap bagian yang telah dibedakan berdasarkan
informasi warna, diwarnai dengan algoritma tint sesuai
dengan informasi yang diberikan.
• NB: Kekurangan, dengan pendekatan algoritma seperti ini
tidak memungkinkan untuk memberikan corak pada baju /
celana atau kaus kaki.