Monday, November 2, 2009

Constructive Solid Geometry

Constructive Solid Geometry (CSG) adalah suatu tekhnik yang digunakan dalam solid modeling serta sering kali namun tidak selalu, digunakan dalam komputer grafis 3D dan CAD. CSG memungkinkan modeler untuk membuat objek atau permukaan yang kompleks dengan menggunakan operator Boolean untuk menggabungkan objek tersebut. Dalam beberapa kasus, CSG ditampilkan dalam jaring-jaring polygonal dan mungkin juga prosedural atau parametrik.

Benda padat yang paling sederhana untuk ditampilkan disebut primitif yang biasanya berbentuk objek sederhana seperti kubus, prisma, silinder, piramida, bola dan kerucut. Himpunan primitif yang bisa digunakan tergantung dari software yang dipakai. Beberapa software memungkinkan CSG pada objek melengkung sementara yang lain tidak.
Sebuah objek dibangun dari sebuah primitif dengan cara operasi boolean yang terdiri dari union, intersection, dan difference.


1. Boolean union
2. Boolean difference
3. Boolean intersection
Demonstrasi CSG Union
Demonstrasi CSG Selisih
Demonstrasi CSG temu
Penggabungan dua benda menjadi satu.
Pengurangan satu objek dari lainnya.
Persinggungan antara kedua objek.

Dengan menggabungkan operasi-operasi dasar ini memungkinkan untuk membuat suatu objek yang memiliki kompleksitas yang tinggi dengan berawal dari sebuah objek primitif sederhana.




Objek CSG dapat diwakili oleh pohon biner, dimana daun mewakili primitif, dan batang mewakili operasi.
  • \ cap intersection persimpangan
  • \ cangkir union serikat
  • - \! difference perbedaan

  • Boolean Union
Union adalah membuat dua objek menjadi satu kesatuan objek sehingga dapat dilakukan manipulasi seperti pada satu objek. Gambar pertama menunjukan union dari kubus dengan bola. Untuk mendapatkan waktu union dari dua objek tersebut, maka akan dijelaskan sebagai berikut:

Selang waktu dari objek 1 (t1) dan objek 2 (t2) akan digabung atau union menjadi t3. t3 didapat dengan operasi OR. Tanda plus (+) berarti bahwa waktu sebuah cahaya sedang berjalan melalui sebuah objek Dan tanda minus (-) berarti bahwa waktu cahaya sedang berada di udara atau tidak pada objek.


  • Boolean Difference
Difference adalah objek yang dihasilkan dari pengurangan objek A oleh objek B seperti gambar kedua. Untuk mendapatkan waktu difference dari dua objek, maka akan dijelaskan sebagai berikut:


Selang waktu dari objek 1 (t1) dan objek 2 (t2) akan mengalami proses difference menjadi t3. t3 dicari dengan operasi XOR untuk yang bertanda + di t1. Tanda plus (+) berarti bahwa waktu sebuah cahaya sedang berjalan melalui sebuah objek Dan tanda minus (-) berarti bahwa waktu cahaya sedang berada di udara atau tidak pada objek.



  • Boolean Intersection
Intersection objek dibuat menjadi sebuah objek yang mengandung semua bagian dimana kedua objek saling berpotongan. Pada gambar ketiga, menunjukkan intersection antara kubus dengan bola. Bila tidak terjadi perpotongan antara kedua objek tersebut maka objek intersection tidak akan terbentuk. Untuk mendapatkan waktu intersection dari dua objek, maka digunakan perhitungan sebagai berikut:



Selang waktu dari objek 1 (t1) dan objek 2 (t2) akan mengalami proses intersection menjadi t3. t3 dicari dengan menggunakan operasi AND. Tanda plus (+) berarti bahwa waktu sebuah cahaya sedang berjalan melalui sebuah objek. Dan tanda minus (-) berarti bahwa waktu cahaya sedang berada di udara atau tidak pada objek.


CSG memiliki sejunlah kegunaan yang praktis dalam kasus-kasus pembuatan objek geometris sederhana ataupun dalam pembuatan objek yang memerlukan ketepatan akurasi matematis. The Unreal engine menggunakan sistem ini, seperti Hammer (dulu worldcraft), dan Torque Game Engine/Torque Game Engine Advanced. CSG menjadi populer karena modeler dapat membuat suatu objek geometry yang rumit dengan menggunakan satu set objek yang sederhana. Ketika CSG menjadi prosedural atau parametrik, modeler dapat memperbaiki objek geometry kompleks yang dibuatnya dengan mengubah posisi objek geometry atau dengan mengubah operasi boolean yang digunakan untuk menggabungkan objek tersebut.
Salah satu keuntungan CSG adalah dapat dengan mudah memastikan suatu objek "solid" atau water-tight jika semua objek primitif adalah water-tight. Ini begitu penting untuk beberapa manufakturing atau teknik aplikasi komputasi. Sebagai perbandingan, saat membuat geometry yang didasarkan pada batas representasi, penambahan data topologi yang diperlukan, atau cek konsitensi dilakukan untuk memastikan bahwa deskripsi yang diberikan valid terhadap penentuan batas benda padat.
Properti yang membuat nyaman CSG adalah CSG mudah untuk mengklasifikasikan poin-poin yang berada di dalam atau di luar bentuk yang diciptakan oleh CSG. Intinya adalah pengklasifikasian dilakukan secara simpel terhadap semua yang mendasari objek primitif dan operasi boolean yang dihasilkan dievaluasi. Ini adalah sebuah kualitas yang diinginkan oleh beberapa aplikasi seperti deteksi tabrakan.

0 comments:

Post a Comment