Senin, 02 Februari 2009

Transformasi 3d

3D Graphics Visual Realism

Realitas grafis 3D
Yang dimaksud realitas grafis 3D adalah bagimana membentuk suatu obyek 3D agar sesuai dengan kenyataan suatu obyek yang dilihat sehari-hari. Sebagian besar obyek nyata bersifat solid atau tidak tembus pandang.
Pada contoh bab sebelumnya obyek yang dibuat masih dalam bentuk rangka (wireframe). Dalam implementasinya model rangka ini masih banyak dipakai untuk mengetahui bagian dlaam suatu obyek.
Relaitas grafis 3D dapat dilakukan dengan : mengarsir poligon, rendering, dan shadowing.
Pewarnaan dan Arsiran (brush)
Terdapat 3 metode pewarnaan dalam grafis baik untuk mewarnai garis (Pen) maupun mengarsir poligon (Brush)
1.dengan variabel default (bawaan C++ Builder). Biasanya digunakan untuk warna2 dasar

untuk mewarnai garis
Canvas->Pen->Color=clRed ;//garis warna merah

untuk mewarnai arsiran
Canvas->Brush->Color=clRed ;//arsiran warna merah


clRed : merah
clBlue:biru
clBlack:hitam
clYellow:kuning
dll

2.dengan RGB
RGB merupakan warna yang dihasilkan kombinasi dari Red[R]-Green[G]-Blue[B], dengan nilai R:0-255 G:0-255 B:0-255, nilai 0 pada masing2 warna adalah hitam , dan 255 adalah warna maksimal

untuk mewarnai garis
Canvas->Pen->Color=RGB(100,100,100) ;//garis warna abu2

untuk mewarnai arsiran
Canvas->Brush->Color=RGB(0,255,0) ;//arsiran warna hijau

 kombinasi warna dapat dilihat di custom color Msword
3.dengan CMY
CMY seperti haknya RGB meruppakan warna yang dikombinasikan Cyan[C],Magenta[M], Yellow[Y]
tidak dibahas disini
4.dengan HSL
HSL seperti haknya RGB meruppakan warna yang dikombinasikan Hue[H],Saturation[S], Lamp[LY]
tidak dibahas disini

Gaya arsiran (style)
Arsiran dari suatu poligon dapat dibentuk dalam beberapa macam dengan perintah arsiran adalah

Canvas->Brush->Style=arsiran
Arsiran:
bsSolid: arsiran homogen/solid/pejal
bsCross:arsiran kotak-kotak
bsDiagonal: arsiran bergaris diagonal
bsVertical: arsiran bergaris tegak
bsHorisontal: arsiran bergaris mendatar
dll

Mode Pen
Garis yang membetuk suatu obyek juga dapat dibentuk

Canvas->Pen->Style=bentuk
Bentuk:
psSolid :garis homogen
psDot:garis berbentuk titik-titik
psDash: garis berbentuk garis kecil2
psDashDot: garis berbentuk kombinasi dash dan dot



Membuat arsiran pada grafis 3D
1.Ubah perintah Polyline (membentuk bagan sisi banyak ->2- tetapi berbentuk rangka/kawat (wireframe) menjadi Polygon (dapat diarsir/di blok)
2.tulis perintah untuk membuat arsir sebelum masing-masing polygon
Canvas->Brush->Color=warna
3.jalankan
4.akan terlihat bahwa tampilan gambar belum dapat diidentifikasi secara jelas –saling tumpang tindih (bentuk belum riil), karena proses penggambaran poligon belum memenuhi kaidah/algoritma pelukis (painter’s algorithm)

Algoritma pelukis (painter’s algorithm)
Algoritma pelukis adalah cara/urutan mengarsir suatu obyek yang saling menutupi dimulai dari yang terjauh (dari pengamat) dulu.

Maka agar pada grafis 3D poligon yang jauh akan tertutup oleh poligon yang dekat dengan pengamat, maka setiap poligon harus diurutkan proses pembuatannya dimulai dari yang terjauh dari pengamat/user (nilai koordinat z paling kecil)

Untuk mengurutkan poligon , maka nilai koordinat z dari setiap poligon harus dihitung rata-rata dari ke empat titik yg membetuk poligon.

Berdasarkan z rata-rata setiap poligon ini maka proses penampilan poligon dimulai dari yg bernilai z terkecil (ditulis paling atas pada program)

Implementasi Poligon dan Arsiran
Untuk membuat suatu obyek menjadi solid maka obyek tersebut harus tersusun atas poligon-poligon. Poligon ini tidak harus segi empat, tetapi bisa segitiga, dlsb sesuai dengan keperluan.
Langkah2 poligonisasi sebagai berikut.
1.Identifikasi titik-titik poligon yang membetuk suatu obyek, misal poligon 1 adalah bagian depan kotak (titik 1, titik 2,tiitk 3, dan titik 4), poligon 2 bagian belakang kotak (titik 5,titik 6, titik 7, dan titik8) dan seterusnya.
(Identifikasi ini dilakukan sebelum proses transformasi ke koordinat layar misal ,mulai nomor program 124 dst)
2.Urutkan posisi poligon tersebut berdasarkan nilai z-nya (vpn_pers[I][2]), sehingga poligon dengan nilai z paling kecil diletakkan kapa posisi pertama dst. Hal ini dilakukan agar proses pembuatan arsiran dimulai dari poligon yang paling jauh (algoritma pelukis-painter’s algorithm).
3.Bila tidak ada proses pengurutan maka poligon akan saling tumpang-tindih. Nilai z ini dapat dihitung dari nilai z rata-rata titik-titik yang membentuk poligon
4.Lakukan transformasi ke koordinat layar
5.Gambar poligon beserta arsiran setiap poligon(brush)
Untuk menggambar poligon maka perintah Polyline diganti menjadi Polygon, sedangkan untuk mengarsir, sebelum perintah poligon, perlu diatur arsiran sbb
Canvas ->Brush-> Color=warna arsir

Sampai langkah ini realitas obyek sudah mulai nampak , yakni bagian yang berada di belakang tidak nampak lagi, akan tetapi realitas ini masih dapat ditingkatkan yakni dengan efek rendering , yaitu perubahan warna akibat pencahayaan dari posisi tertentu (tidak di bahas disini, ada di buku-buku referensi grafika komputer), shadowing, yaitu efek bayangan.
Bila obyek yang akan di proses memilki cakupan yang besar, maka agar proses komputasi lebih cepat diperlukan clipping atau pemotongan (teori ada di berbagai buku referensi).

Implementasi Program
Untuk menerapkan visual realism dasar dilakukan tahapan sbb
1.Bari aplikasi sebelumnya ubahlah semua kode
……Polyline…. menjadi …Polygon ………
misal :
PaintBox1->Canvas->Polyline((TPoint*)t6,4);
Diganti menjadi
PaintBox1->Canvas->Polygon((TPoint*)t6,4);
2.Tambahkan perintah untuk mengarsir poligon sebelum/diatas perintah poligon dengan
……… Canvas->Brush->Color=warna..
warna, warna arsiran dapat diatur dengan
(i) konstanta, misal biru -> clBlue
merah -> clRed
kuning->clYellow
misal :
……… Canvas->Brush->Color=clBlue; arsir biru


(ii) kombinasi RGB(Red Green Blue-Merah Hijau Biru) misal :
……… Canvas->Brush->Color=RGB(200,100,0)
artinya nilai Red:100, Green 100, Blue:0
masing-masing warna memiliki range 0-255

misal poligon berwarna merah, maka tambahkan perintah arsir pada setiap poligon sbb
…………..
PaintBox1->Canvas->Color=clRed;
PaintBox1->Canvas->Polygon((TPoint*)t6,4);
……………….


3.Jalankan aplikasi, amati yang terjadi ! Mengapa gambar balok belum seperti yang diharapkan ? artinya wujud balok masih kacau ?

Pengurutan Poligon
Agar bentuk 3d rterlihat riil maka sesuai dengan algoritma pelukis, maka poligon yang lebih jauh diteampilkan lebih dulu. Didalam pemrograman untuk menrpakna tersebut dilakukan langkah sbb
1.Buat nilai rata-rata setiap poligon dan tampung dlaam variabel dengan index tersendiri
2.dengan algoritma untuk sorting (misal: bubble sort) , Urutkan setiap nilai sesuai dengan nilai z-nya.
3.tampilkan poligon tersebut.



Downloads :
3D Graphics Visual Realism.zip
7Grafik3D.zip
Trans3D.zip
Transformasi 3 Dimensi.zip

3 komentar:

  1. thank buat artikelnya, tp kalo bisa yang dibahas jangan cuma tentang transformasi aja donk, ato kalo bisa diluar bidang komputer grafik juga dibuat artikelnya. trus contoh-contohnya tolong ditambahin listing programnya donk.

    BalasHapus
  2. hallo gan, kok ga bsa di download ya???

    BalasHapus
  3. Caesars Casino & Racetrack - Mapyro
    Find the best casinos 포천 출장샵 in Las Vegas, NV near Golden Nugget and 정읍 출장샵 Golden Nugget. 통영 출장샵 The Casino is located on 3rd 삼척 출장샵 floor of 안산 출장마사지 the property and is open daily 24 hours

    BalasHapus