Sabtu, 09 November 2013

Hair Modeling

Simulasi dan pemodelan rambut manusia adalah proses yang kompleksitas komputasinya sangat besar, hal ini karena banyaknya faktor yang harus diperhitungkan untuk memberikan tampilan yang realistis. Umumnya, metode ini digunakan dalam industri film untuk mensimulasikan rambut didasarkan pada grafis penanganan partikel.

Dalam pemodelan rambut, kita dihadapkan dengan geometri yang kompleks. Perkiraan jumlah rambut di kepala manusia dari 130.000 item, berambut merah memiliki sekitar 90.000 item, orang berambut pirang dapat memiliki 150.000 dan, dalam kasus hewan, kita berbicara tentang jutaan item pada kulit Anda. Selain itu, setiap rambut mungkin memiliki bentuk geometris khusus yang tidak sepele dalam simulasi dan perhitungan mereka.

Diameter rambut sangat tipis, sekitar 70 mikron dan mungkin selama kita mau, ini dapat menyebabkan masalah besar sampling, dan dengan demikian membuat sampel yang benar adalah penting untuk setiap praktek render rambut.

Sifat refleksi cahaya yang diterima oleh masing-masing rambut tidak hanya blok cahaya dari sumber dalam sebuah adegan, secara umum, masing-masing rambut mempengaruhi jumlah pencahayaan, seperti sehelai rambut dapat menyebabkan bayangan pada cahaya yang ditransmisikan rambut lainnya sebaik menerima yang lain, jumlah cahaya yang dipantulkan dan tersebar dapat berbeda dan tergantung dari arah pertumbuhan.

Grafik Rambut Manusia
Sebuah serat rambut manusia dapat direpresentasikan oleh silinder melengkung, yang terdiri dari partikel dan segitiga.
              
Model ini akan berlaku jika kita berada di dunia mikroskopis di mana kita melihat beberapa rambut bersama-sama.

Sebuah solusi alternatif akan membawa rambut ke pita datar selalu melihat kamera.

Cara lain untuk menyederhanakan geometri dan mendapatkan penampilan rambut adalah dengan cara jalur interkoneksi, yang berhubungan dengan nilai ketebalan buatan (biasanya satu piksel).

Sistem partikel merujuk pada metode grafis komputer untuk mensimulasikan fenomena difusi yang sulit untuk mereproduksi, metode ini memungkinkan untuk pemodelan benda padat dengan karakteristik lemah seperti: api, air dan awan, serta rambut, hasilnya mampu memainkan gerakan, perubahan dinamis, melalui representasi klasik untuk permukaan.

Pemodelan benda difus disebut Partikel System. Representasi sistem partikel berbeda dari representasi normal gambar dalam tiga poin kunci. Pertama, sebuah objek tidak diwakili oleh satu set primitif geometris yang menentukan batas-batas permukaan seperti poligon atau segitiga, tetapi sebagai akumulasi besar partikel primitif yang mendefinisikan volume. Poin kedua, sistem partikel bukanlah entitas statis sebagai perubahan bentuk partikel dan bergerak dengan berlalunya waktu. Partikel-partikel baru "lahir" dan partikel lama "mati." Poin ketiga, sebuah objek diwakili oleh sistem partikel tidak deterministik karena bentuk dan penampilan yang tidak sepenuhnya ditentukan, namun proses stokastik yang digunakan untuk membuat dan mengubah bentuk dan tampilan objek.

Teknik sistem partikel memiliki keuntungan yang signifikan dari teknik klasik yang dirancang untuk permukaan, sehubungan dengan pemodelan obyek menyebar. Sebuah sistem partikel ditentukan oleh sistem posisi absolut dalam ruang tiga dimensi dan satu set partikel. Setiap partikel individu ditentukan oleh posisi, kecepatan, warna dan ukuran.

Meski secara matematis garis harus amat tipis, garis dalam hal ini adalah terkait dengan beberapa nilai ketebalan buatan (lebar pixel). Di sini, menggunakan strip garis sebagai representasi rambut kita, tapi algoritma di sini berlaku untuk representasi pita poligonal. Dengan asumsi bahwa untai rambut didekati dengan jumlah poin p0, p1, ... pn-1 dan warna yang terkait c0, c1, ... cn-1. Kode berikut akan menarik rambut sebagai strip garis terhubung.

Menggambar rambut

DrawHair(p0,p1,..,pn-1,c0,c1,….cn-1)
{
 glBegin(GL_LINE_STRIP)
 glColor3fv(c0);
 glVertex3fv(p0);
 glColor3fv(c1);
 glVertex3fv(p1);
 …
 glColor3fv(cn-1);
 glVertex(pn-1);
 glEnd() 
}

Mengitung ukuran visibilitas dan menghitung nilai bayangan

Set thickness (alpha value)
 Compute the shaded color (Li.color1)
 Compute the shaded color (Li.color2)
C1 = Li.color1 * Li.shadow1
C2 = Li.color2 * Li.shadow2
glBegin(GL_LINES)
glColor3fv(C1)
glVertex3fv(Li.Pos1)
glColor3fv(C2)
glVertex3fv(Li.Pos2)
glEnd()


Penggunaan Partikel dalam Blender
Apa itu Blender? Blender adalah sebuah lingkungan yang mengintegrasikan sejumlah alat untuk membuat berbagai konten 3D, dengan manfaat tambahan dari multi-platform.

Ditujukan untuk para profesional media dan seniman, Blender dapat digunakan untuk membuat visualisasi 3D, baik gambar statis video berkualitas tinggi, sedangkan penambahan mesin 3D secara real time memungkinkan penciptaan konten interaktif yang dapat direproduksi secara independen. Awalnya dikembangkan oleh perusahaan 'Bukan Nomor' (NaN), Blender kini dikembangkan sebagai 'Free Software', dengan kode sumber yang tersedia di bawah GNU GPL.

Blender sistem partikel yang cepat, fleksibel dan kuat. Setiap objek jala dapat berfungsi sebagai emitor partikel, ini dapat dipengaruhi oleh kekuatan global untuk mensimulasikan efek fisik seperti gravitasi atau angin. Dengan kemungkinan ini dapat menghasilkan efek seperti: asap, kebakaran, ledakan, kembang api atau bahkan kawanan burung.

Penggunaan partikel statis dapat menghasilkan rambut, kulit, rumput atau tanaman, menerapkan berbagai teknik pemodelan. Contoh rambut di Blender dapat diamati pada Gambar. 4.
Gambar 4. Rambut dihasilkan menggunakan Blender

Secara umum aliran partikel dalam ruang dari grid, pergerakannya dapat dipengaruhi oleh berbagai situasi, seperti:
  1.       Kecepatan awal dari grid.
  2.       Pergerakan emitor (vertex, wajah atau objek)).
  3.       Gerakan sesuai dengan gravitasi atau hambatan udara.
  4.      Pengaruh medan gaya seperti angin, vortisitas atau dipandu melalui kurva.
  5.      Interaksi dengan benda lain seperti tabrakan.
  6.      Slow motion fisika "softbody" (hanya dalam sistem rambut partikel)
  7.     Atau bahkan proses manual.


Partikel-partikel dapat direpresentasikan sebagai:
     1.       Halos (untuk persiapan api, asap, awan)
     2.       Strands (digunakan dalam pengembangan rambut, kulit, rumput), yang berbentuk penuh string akan               ditampilkan sebagai string atau filamen, filamen tersebut dapat dimanipulasi (sisir, potong, bergerak,               dll.) secara langsung di Blender.

Setiap objek yang dibuat di Blender dapat berisi beberapa sistem partikel, dimana setiap sistem dapat memiliki hingga 100.000 partikel, kita harus ingat bahwa ada kemungkinan bahwa kita dapat memiliki beberapa set sistem partikel dalam Blender terkait dengan satu objek. Berikut ini akan diuraikan proses dengan cara yang sederhana untuk bekerja dengan sistem partikel menggunakan Blender.

Penciptaan dan definisi grid, berfungsi sebagai dasar untuk menerbitkan sistem partikel, sistem ini manifold dalam kombinasi untuk setiap partikel, mengembangkan simulasi efek yang diinginkan.

Setelah membuat sistem partikel Blender memungkinkan Anda untuk mengkonfigurasi lingkungan Anda untuk memilih salah satu dari tiga jenis sistem partikel, yaitu:
  1.  Emitter: Partikel yang dipancarkan oleh objek yang dipilih dan memiliki kehidupan tetap.
  2.  Reaktor: Hal ini sangat berguna bagi sebagian besar efek partikel yang lebih tua.
  3. Rambut: Jenis sistem ini direpresentasikan sebagai kabel dan semacamnya sifat khusus dapat diedit secara real-time 3D.
Prosedur untuk membuat sistem partikel Blender terdiri dari topik-topik berikut :
  1. Kita harus menempatkan objek dasar, pemodelan rambut, obyek ini dapat diimpor, model yang digunakan dikembangkan di Zbrush oleh perusahaan pixelogic.
  2.  Kita perlu mengubah sebagai cat tebal (Cat Bobot), untuk memilih area dimana algoritma akan bekerja.
  3.  Kita harus membuat set baru simpul dengan nama umum. Area yang dipilih akan terpengaruh oleh algoritma. Hasil langkah di atas ditunjukkan pada Gambar 5.
  4.  Buat sistem partikel jenis HAIR baru "lari " panel " Fisika " mengaktifkan tugas ini.
  5. Kami meningkatkan nilai, dicatat bahwa rambut tumbuh di seluruh objek kita (Gambar 6)
  6. Ini adalah masalah yang diselesaikan dengan menempatkan rambut di daerah yang akan didirikan, sehingga perlu untuk mengaktifkan " Extra" dalam kelompok simpul. Gambar 6a menunjukkan solusi yang diterapkan.

 Seperti dapat dilihat, telah diperoleh hanya, beberapa helai rambut, masih belum mencapai kepadatan yang diinginkan untuk model yang realistis foto, untuk mencapai simulasi lebih realistis akan perlu mengubah beberapa parameter. Dalam panel keturunan "Anak-anak" dapat mengkonfigurasi dua pilihan: Partikel dan wajah. Lihat Gambar. 7. Pada titik ini, model tersebut hampir selesai, dalam kasus rambut panjang pemodelan, Anda akan perlu memodifikasi beberapa parameter dalam tabrakan.

Gambar 5. Daerah di mana kita ingin menumbuhkan rambut

Gambar 6. Filamen yang dihasilkan oleh sistem partikel di Blender

Gambar 6 (a). Filamen dikelompokkan dalam area yang terkait dengan menggunakan Blender

Akhirnya, perlu untuk menambahkan jenis bahan untuk model kami, untuk itu diberikan dua jenis bahan, satu yang akan digunakan oleh kami berbasis obyek dan satu untuk sistem partikel dalam panel "Link dan Material" oleh mengubah parameter yang sesuai mencapai efek yang diinginkan, maka dalam mode edit akan perlu untuk membatalkan pilihan semua simpul dari basis kami (Lihat Gambar. 8). Ini akan membuat bahan baru yang akan digunakan dalam sistem partikel, cahaya akhirnya dapat ditambahkan ke model untuk mendapatkan hasil yang ditunjukkan pada Gambar. 9.

Gambar 7. Blender menyediakan kerapatan yang berbeda untuk sistem partikel dalam model rambut

Gambar 8. Memiliki model dalam mode edit di Blender
     
       Gambar 9. Hasil akhir menggunakan sistem partikel yang menyediakan Blender.

Kesimpulan
Pemodelan rambut adalah pekerjaan trivial untuk kompleksitas komputasi tinggi yang diperlukan untuk diproses. Ada beberapa teknik yang berbeda yang bertujuan untuk model rambut manusia berdasarkan kualitas gambar yang dihasilkan.
Sistem partikel untuk pemodelan rambut adalah yang paling sederhana dan cepat karena menggunakan struktur sederhana untuk setiap elemen dan yang menyederhanakan interaksi yang mengambil sistem dengan fenomena fisik, tidak seperti model lainnya seperti model rambut berbasis jala seperti di mana realisme dan interaksi dapat sedikit lebih terbatas.


Referensi
1.      Ernesto Coton (2004) Introducción a los Sistemas de Partículas. Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Laboratorio de Computación Gráfica.
2.      Johnny T. Chang, Jingyi Jin, Yizhou Yu (2002) A Practical Model for Hair Mutual Interactions: Department of Computer Science University of Illinois at Urbana Champaign.
3.      Aleka Mcadams, Andrew Selle, Kelly Ward, Eftychios Sifakis, Joseph Teran (2009) Detail Preserving Continuum Simulation of Straight Hair, ACM Transactions on Graphics, 28:3(62)
4.      Abraham, R. Shaw, C. Dynamics (1981) The Geometry of Behavior. City (the Hill Press, Santa Cruz, Calif)
5.      Badler, N. I., O'rourke J., Toltzis H. (1979) A spherical human body model for visualizing movement. Proc. IEEE 67:10
6.      Blinn, J. F. (1982) Light reflection functions for simulation of clouds and dusty surfaces. Proc. SIGGRAPH 16: (3)21-29.
7.      Csu~, C., Hackathorn R., Parent R., Carlson W., Howard M. (1979) Towards an interactive high visual complexity animation system, Proc. SIGGRAPH 79. 13: (2)289-299

8.      Fournier I., Fussel D., Carprenter I. (1982) Computer rendering of stochastic models, Commun. ACM 25: (6)371-384.