Rabu, 27 Oktober 2010

Constructive Solid Geometry (CSG)


Constructive Solid Geometry (CSG)

CSG adalah teknik untuk menciptakan model dengan menggunakan operasi matematika seperti penambahan dan pengurangan. 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.
                Sebuah benda padat yang paling sederhana untuk ditampilkan disebut primitive, 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
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. 
  • persimpangan
  • serikat
  • perbedaan

  • Boolean Union
Union adalah membuat dua objek menjadi satu kesatuan , 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.

PENGGAMBARAN OBJEK CSG :

>Benda nyata dan virtual dapat diwakili oleh:
- Model solid seperti bola, silinder dan kerucut
- Model permukaan seperti triangels, paha depan dan poligon

>Model permukaan dapat direpresentasikan dengan  baik menggunakan teknik :
- Obyek-order rendering
- Image-order rendering (ray tracing i.e.)

>Model solid hanya dapat dihasilkan dengan teknik ray tracing

>Model padat umumnya digunakan untuk menggambarkan bentuk-bentuk buatan manusia
, seperti :
- Computer aided design
- Computer assisted manufacturing

>Model objek padat konstruktif dapat terdiri dari bentuk primitif seperti
- Sphere
- Silinder
- Kerucut
- Piramida
- Cube
- Kotak

> Konstruktif model padat tidak dapat terdiri dari setengah ruang seperti
- Points
- Baris
- Planes

Contoh Gambar :







  Aplikasi dengan dukungan CSG

Refrensi :
http://en.wikipedia.org/wiki/Constructive_solid_geometry
http://www.devmaster.net/wiki/Constructive_solid_geometry
Wikipedia.org/wiki/ Constructive_solid_geometry

Nama anggota kelompok :

- Arina Rizky               - Noor Indah Sari                  - Rio Sukarno
- Danar Wiguna           - Nuraini
- Febrian Nahari          - Rianto Hidayat