Transformasi 3D
Transformasi 3D
Disusun Sebagai Bahan Acuan Petunjuk Pelaksanaan Pratikum dan Salah Satu
Syarat Untuk Melaksanakan Pratikum Pada Laboratorium Komputer
Universitas Pembangunan Panca Budi
Medan
Penyusun :
ROBY SEPTIAN PRATAMA ( 1414370134 )
Kelompok III
OBJEK 3D
A. Pengertian Objek 3D
Grafik komputer 3 dimensi biasa disebut 3D atau adalah bentuk dari benda
yang memiliki panjang, lebar, dan tinggi. Grafik 3 Dimensi merupakan teknik
penggambaran yg berpatokan pada titik koordinat sumbu x(datar), sumbu
y(tegak), dan sumbu z(miring).
Representasi dari data geometrik 3 dimensi sebagai hasil dari pemrosesan dan
pemberian efek cahaya terhadap grafika komputer 2D. Tiga Dimensi, biasanya
digunakan dalam penanganan grafis. 3D secara umum merujuk pada kemampuan
dari sebuah video card (link). Saat ini video card menggunakan variasi dari
instruksi-instruksi yang ditanamkan dalam video card itu sendiri (bukan berasal
dari software) untuk mencapai hasil grafik yang lebih realistis dalam memainkan
game komputer.
Grafik 3D merupakan perkembangan dari grafik 2D. Didalam grafika
komputer, 3D merupakan bentuk grafik yang menggunakan representasi data
geometri tiga dimensi.
Perbedaan paling utama dari objek 2 dimensi dan objek 3 dimensi yaitu
kedalamannya. Yaitu suatu jarak antara pengamat dengan suatu objek yang dilihat
(point of view). Jadi, jika objek 2 dimensi hanya menggunakan 2 ukuran (panjang
dan lebar), maka 3 dimensi menggunakan 3 ukuran meliputi panjang, lebar,
kedalaman yang disimbolkan dengan sumbu x, y, z.
Suatu objek rangka 3D apabila disinari dari arah tertentu akan membentuk
bayangan pada permukaan gambar. Proses pembuatan grafik komputer 3D dapat
dibagi ke dalam tiga fase, yaitu 3D modeling yang mendeskripsikan bentuk dari
sebuah objek, layout dan animation yang mendeskripsikan gerakan dan tata letak
sebuah objek, dan 3D rendering yang memproduksi image dari objek tersebut.
Di dalam dunia game, 3D secara umum merujuk pada kemampuan dari sebuah
video card (link). Saat ini video card menggunakan variasi dari instruksi-instruksi
yang ditanamkan dalam video card itu sendiri (bukan berasal dari software) untuk
mencapai hasil grafik yang lebih realistis dalam memainkan game komputer.
B. Objek 3D
Benda tiga dimensi tersusun dari sekumpulan surface. Surface yaitu
permukaan kulit.
Universias Pembangunan Panca Budi
Medan
Gbr. Arah vertex : (a) berlawanan dengan arah jarum jam (b) searah jarum jam
Pada gambar tersebut polygon menggunakan winding berlawanan jarum
jam karena didefinisikan sebagai urutan vertex v3-v4-v5 sedangkan pada gambar
8.6.b menggunakan winding searah jarum jam karena urutan vertex yang
digunakan v3-v5-v4.
Pada setiap permukaan dari poligon yang membentuk objek akan memuncukan
garis Normal, yaitu vektor tegak lurus pada permukaan. Fungsinya untuk
bayangan benda tersebut.
3) Illumination
Cahaya menyebabkan suatu objek dapat terlihat. Warna objek ditentukan dari
properti material objek itu sendiri dan sumber cahaya pada tampilan tersebut.
Algoritma Illuminasi tergantung pada pemodelan bayangan (shading model)
dan pemodenl permukaan (surface model).
4) Viewing transformation
Transformasi pengamatan adalah bentuk lain dari koordinat sistem.
Memetakan titik-titik yang ada pada world space ke ruang pengamatan. Posisi
pengamat ditransformasikan ke asalnya. Arah pengamatan diorientasikan
sepanjang axis. Mendefinisikan pengamtan volume.
5) Clipping
Proses clipping dulakukan pada penggambaran volume 3D yang biasa disebut
viewing frustum. Pada tahap ini dilakukan eliminasi total pada objek (dan
bagian objek) yang tidak visible bagi citra.
6) Projection
Objek selanjutnya diproyeksikan ke dalam 2D. Transformasikan dari ruang
pengamatan ke layar.
7) Rasterization
Konversi tiap objek primitive ke suah set fragment. Sebuah fragment
diperlakukan seperti pixel pada ruang 3 dimensi, selaras dengan grid pixel,
dengan atribut seperti posisi, warna, dan tekstur yang normal.
8) Display
Melakukan interpolasi parameter. Melakukan beragam operasi 2D.
D. Sistem Koordinat
Secara umum, sistem koordinat tiga dimensi dibedakan menjadi dua, yaitu
sistem koordinat tangan kiri dan sistem koordinat tangan kanan. Sistem koordinat
tangan kanan dapat digambarkan dengan tiga buah jari pada tangan kanan yang
menghadap pengamat yaitu jari tengah sebagai sumbu z positif, jari telunjuk
sebagai sumbu y dan ibu jari sebagai sumbu x. Sedangkan sistem koordinat
tangan kiri dapat digambarkan dengan tiga buah jari pada tangan kiri dengan
glutWireCube(25);
Dalam tranformasi objek tiga dimensi, translasi adalah pemindahan suatu titik dari
titik P=(x,y,z) ke posisi P=(x,y,z) (Hearn, 1994) dengan menggunakan operasi
matriks :
glTranslated (Tx,Ty,Tz)
parameter Tx digunakan untuk menentukan arah dan seberapa jauh suatu benda
akan dipindahkan berdasarkan sumbu x. Ty digunakan untuk menentukan arah
dan seberapajauh suatu benda akan dipindahkan berdasarkan sumbu y. Sedangkan
parameter Tz digunakan untuk menentukan arah dan seberapajauh suatu benda
akan dipindahkan berdasarkan sumbu z(berlaku pada model 3D).
Parameter yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu parameter
untuk
besar
sudut
putaran.
Sudut
rotasi
adalah
besaran
yang
c. Scalling (skala)
Skalasi merupakan bentuk transformasi yang dapat mengubah ukuran(besarkecil) suatu objek. Fungsi yang digunakan untuk melakukan skalasi ialah :
glScalef(Sx, Sy, Sz) glScaled(Sx, Sy, Sz) Perubahan ukuran suatu objek diperoleh
dengan mengalikan semua titik atau atau vertex pada objek dengan faktor skala
pada masing-masing sumbu (parameter Sx untuk sumbu x, Sy untuk sumbu y, dan
Sz untuk sumbu z).
Parameter pertama, kedua, dan ketiga masing - masing menunjukkan nilai skala
dari ukuran objek. Apabila parameter tersebut bernilai 1, maka berarti ukuran
objek tersebut tetap. Contoh penskalaan ditunjukkan oleh gambar di bawah ini.
Transformasi skala dilakukan terhadap titik pusat (0,) karena setiap titil p akan
digeser sebesar Sx dari titik pusat dalam sumbu x dan sejauh Sy dalam sumbu Y.
Apabila matrik M berisi nilai negative maka akan diperoleh pencerminan terdahap
sumbu v dan Y.jika kedua factor skala berisi nilai yang sama, Sx=Sy=s maka akan
diperoleh uniform scaling, dimana objek akan diperbesar pada kedua sumbu besar,
jika 0<s<1 maka akan diperoleh objek yang diperkecil (demagnification). Jika
factor skala tidak sama , maka akan diperoleh penskalaan defernsial. Jika salah
satu dari factor skala sama dengan 1 maka akan diperoleh transfornasi strain.
Berikut contoh program pada 3d transformasi yang berbentuk sphere (bola).
Dari contoh contoh program diatas, maka terdapat listing program yang di
butuhkan untuk membentuk sebuah objek gambar seperti tampilan diatas
dengan menggunakan processing yaitu :
int xPos=150;
int xDirection=1;
int yPos=50;
int
int yDirection=1;
zPos=10;
int
intzDirection=1;
xSpeed=2;
int ySpeed=2;
intend
//
zSpeed=2;
of variables
void setup() {
size (640, 480, P3D);
smooth();
}
void draw() {
background(192,192,192);
lights();
// box setup
stroke(0,0,128);
// background square
line(0, 0, -500, width, 0, -500);
line(0, 0, -500, 0, height, -500);
line(0, height, -500, width, height, -500);
line(width, height, -500, width, 0, -500);
// perspective lines
line(0, 0, -500, 0, 0, 0);
line(width, 0, -500, width, 0, 0);
line(0, height, -500, 0, height, 0);
line(width, height, -500, width, height, 0);
Universias Pembangunan Panca Budi
Medan
// motion setup
xPos = xPos + (xSpeed * xDirection);
yPos = yPos + (ySpeed * yDirection);
zPos = zPos + (zSpeed * zDirection);
if (xPos>width-50) {
xDirection*=-1;
}
if (yPos>height-50) {
yDirection*=-1;
}
if (zPos>500) {
zDirection*=-1;
}
if (xPos<50) {
xDirection*=-1;
}
if (yPos<50) {
yDirection*=-1;
}
if (zPos<0) {
zDirection*=-1;
}
//reversal
if (mousePressed) {
xDirection *=-1;
yDirection *=-1;
zDirection *=-1;
}
}