0% menganggap dokumen ini bermanfaat (0 suara)
474 tayangan18 halaman

Transformasi 3D

Dokumen tersebut membahas tentang transformasi 3D yang mencakup pengertian objek 3D, sistem koordinat 3D, primitive objek 3D, dan metode transformasi objek 3D seperti translasi dan rotasi.

Diunggah oleh

Roby Kacaribu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
474 tayangan18 halaman

Transformasi 3D

Dokumen tersebut membahas tentang transformasi 3D yang mencakup pengertian objek 3D, sistem koordinat 3D, primitive objek 3D, dan metode transformasi objek 3D seperti translasi dan rotasi.

Diunggah oleh

Roby Kacaribu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 18

TRANFORMASI 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

PROGRAM STUDI SISTEM KOMPUTER


FAKULTAS ILMU KOMPUTER
UNIVERSITAS PEMBAGUNAN PANCA BUDI
MEDAN
2016

Universias Pembangunan Panca Budi


Medan

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. Contoh permukaan 3d


Surface dapat dibuat dari rangkaian Polygon. Polygon adalah bentuk yang
disusun dari serangkaian garis yang terhubung satu dengan yang lain dan
berbentuk kurva tertutup sehingga membentuk sebuah objek gambar. Titik sudut
dari Polygon disebut vertex sedangkan garis penyusun Polygon disebut edge.

Gbr. Contoh polygon


Polygon digambar dengan menggambar masing-masing edge dengan
setiap edge merupakan pasangan dari vertexi vertexi+1 kecuali untuk edge
terakhir merupakan pasangan dari vertexn vertex1.

Gbr. Objek 3d yang tersusun dari kumpulan polygon

Universias Pembangunan Panca Budi


Medan

Bentuk polygon yang paling tepat digunakan untuk membuat permukaan


benda tiga dimensi adalah polygon segitiga (triangle). Hal ini disebabkan polygon
segitiga akan selalu berada dalam keadaan planar (datar) se-mentara polygon
dengan vertex lebih dari 3 dapat berada dalam kondisi non-planar karena salah
satu vertex tidak berada di lokasi yang sejajar. Satu hal yang harus diperhatikan
pada saat menggunakan polygon segitiga adalah winding. Winding adalah urutan
dan arah vertex-vertex penyusun polygon. Winding menganggap bahwa arah
vertex berlawanan jarum jam sebagai tampak depan sedangkan arah vertex searah
jarum jam dianggap sebagai bagian belakang benda.

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.

Universias Pembangunan Panca Budi


Medan

Gbr. Garis normal polygon


C. Alur Proses Rendering Grafis 3D
Pada grafika komputer, rendering adalah proses pembuatan/ produksi
image/gambar pada layar dari pendeskripsian suatu model. Proses rendering grafis
3D mendeskripsikan objek 3D dari vertex-vertex pada objek primitive(seperti
segitiga, titik, garis, dan segiempat), dan menghasilkan warna-warna pada pixel
pada layar.

Gbr. Alur proses rendering grafis 3d


1) Modelling Trasnformations
Menempatkan model pada sistem koordinat yang disebut world space. Semua
objek, sumber cahaya, dan sudut pandang pengamat berada pada world space.
2) Trival Rejection
Rejection (penolakan) dilakukan terhadap bagian-bagian yeng tidak perlu
sebagai upaya optimalisasi.

Universias Pembangunan Panca Budi


Medan

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

Universias Pembangunan Panca Budi


Medan

punggung tangan menghadap pengamat dengan jari tengah sebagai sumbu z


negatif, jari telunjuk sebagai sumbu y dan ibu jari sebagai sumbu x.
Sistem koordinat tangan kanan banyak digunakan pada penggambaran
geometri. Sebaliknya sistem koordinat tangan kiri banyak digunakan pada
peggambaran pada grafika komputer Sistem koordinat tangan kiri digunakan agar
objek 3 dimensi memiliki nilai z positif (jarak jauh dekat benda lebih terlihat).
Setiap titik dalam sistem koordinat tiga dimensi dapat ditentukan posisinya
dengan meentukan seberapa jauh, tingggi dan lebar dari objek aslinya yang
dtentukan berdasarkan koordinat-koordinat pada sumbu x, y, dan z.

Gbr. Sistem koordinat 3d tangan tangan kiri dan tangan kanan


E. Primitive
Ada beberapa bentuk primitive dari objek 3 dimensi. Promitive yaitu bentuk
dasar yang dapat dengan mudah didefinisikan secara matematik.
a. Sphere
glutWireSphere(5, 20, 20);

Gbr. Sphere (bola)


b. Cube
Universias Pembangunan Panca Budi
Medan

glutWireCube(25);

Gbr. Cube (kubus)


c. Cone
glutWireCone(alas, tinggi, 20, 20);

Gbr. Cone (kerucut)


d. Dodecahedron
glutWireDodecahedron();

Gbr. Dodecahedron (bola segilima)


e. Teapot
glutWireTeapot(15);

Universias Pembangunan Panca Budi


Medan

Gbr. Teapot (poci)


f. Torus
glutWireTorus(luar, dalam, 20, 20);

Gbr. Torus (cincin)


Setiap primitive 3D memiliki parameter nilai yang mengekspresikan letak
dan bentuk primitive objek tersebut.
F. Tranformasi objek 3D (tiga dimensi)
Metode transformasi objek tiga dimensi sangat berbeda dengan objek dua
dimensi karena terdapat sumbu z yang ditambahkan sebagai salah satu acuan
untuk memperoleh posisi koordinat baru.
a. Translasi (perpindahan)
merupakan bentuk transformasi yang memindahkan posisi suatu objek, baik
pada sumbu x, sumbu y, atau sumbu z. Fungsi yang digunakan untuk melakukan
translasi adalah : glTranslatef(Tx, Ty, Tz) glTranslated(Tx, Ty, Tz) Parameter Tx
digunakan untuk menentukan arah dan seberapa jauh suatu benda akan
dipindahkan berdasarkan sumbu x. Parameter Ty digunakan untuk menentukan
arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu y.
Sedangkan parameter Tz digunakan untuk menentukan arah dan seberapa jauh
suatu benda akan dipindahkan berdasarkan sumbu z (berlaku pada model 3D).

Universias Pembangunan Panca Budi


Medan

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 :

Parameter tx, ty, dan tz menjelaskan perpindahan jarak untuk koordinat x,


y, dan z.

Gbr. Memindahkan titik dengan translasi Vektor T = (tx1 ty1 tz)


Fungsi yang digunakan pada translasi yaitu :
glTranslatef (Tx,Ty,Tz)

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).

Universias Pembangunan Panca Budi


Medan

Gbr. Ilustrasi translasi


b. Rotasi (perputaran)
Rotasi merupakan bentuk transformasi yang digunakan untuk memutar posisi
suatu benda. Fungsi yang digunakan untuk melakukan rotasi ialah : glRotatef(,
Rx, Ry, Rz) glRotated(, Rx, Ry, Rz) Parameter yang dibutuhkan pada fungsi
tersebut ada 4 macam, yaitu parameter untuk besar sudut putaran, parameter Rx
untuk putaran berdasarkan sumbu x, parameter Ry untuk putaran berdasarkan
sumbu y, dan parameter Rz untuk putaran berdasarkan sumbu z. Jika parameter
bernilai postif, maka objek akan diputar berlawanan arah jarum jam. Sedangkan
jika parameter bernilai negatif, maka objek akan diputar searah jarum jam.
Untuk merotasikan sebuah objek diperlukan sumbu rotasi (poros untuk
merotasikan objek) (Donald Hearn, 1994). Sintaks untuk merotasikan objek pada
OpenGL adalah glRotate(sudut, x, y, z).
Parameter pertama adalah nilai perputaran sudut. Parameter kedua , ketiga, dan
keempat bernilai 1 apabila sumbunya dijadikan sumbu putar. Contoh perotasian
objek ditunjukkan pada gambar di bawah ini.

Universias Pembangunan Panca Budi


Medan

Gbr. Tabung sebelum dan setelah di rotasi


Fungsi yang digunakan pada rotasi yaitu :

glRotatef(, Rx, Ry, Rz)

glRotated(, Rx, Ry, Rz)

Parameter yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu parameter
untuk

besar

sudut

putaran.

Sudut

rotasi

adalah

besaran

yang

menentukan seberapa jauh sebuah titik akan diputar. Parameter Rx

untuk putaran berdasarkan sumbu x, parameter Ry untuk putaran berdasarkan


sumbu y, parameter Rz untuk putaran berdasarkan sumbu z. Jika parameter
bernilai positif, maka objek akan diputar berlawanan arah jarum jam, sedangkan
jika parameter bernilai negatif, maka akan diputar searah jarum jam.
Operasi rotasi dapat diuraikan sebagai berikut :

Rotasi dari titik P yang berada di sumbu x, P(x, 0) menjadi P(x, y)

dapat digambarkan dengan :


x = x .cos
y = x.sin
Rotasi dari titik P yang berada di sumbu y, P(y, 0) menjadi P(x, y)

dapat digambarkan dengan :


x = -y .cos
y = y.sin
Rotasi dari titik P(x, y) menjadi P(x, y) merupakan kombinasi dari
kedua macam transformasi di atas yaitu :
R = Rx + Ry
X = xp +(x - xp) cos (y - yp) sin
Y = yp + (x xp) sin + (y yp) cos

Universias Pembangunan Panca Budi


Medan

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.

Gbr. Sesudah dan sebelum diskalasi


Fungsi yang digunakan pada skala yaitu :

glScalef(Sx, Sy, Sz)

glScaled(Sx, Sy, Sz)

Berbeda dengan transformasi geser yang tidak mengubah bentuk objek,


transformasi skala akan mengubah bentuk objek sebesat skala Sx dab Sy ,
sehingga : (Qx,Qy)= (Px*Sy*Sy)

Universias Pembangunan Panca Budi


Medan

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).

Pada tampilan output program diatas terdapat penjelasan penjelasan sebagai


berikut :
a. Pada tampilan tersebut terdapat gambar seperti kubus, dimana gambar
tersebut memiliki fungsi sebagai bidang untuk tempat pantulan supaya bola
yang terdapat pada gambar dapat berpindah pindah tempat.
Berikut perintah perintah yang terdapat pada sebuah objek kubus tersebut :
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);
Universias Pembangunan Panca Budi
Medan

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);
pada program diatas terdapat perintah line, dimana line tersebut fungsinya
untuk membentuk sebuah objek garis berbentuk kubus yang terdapat pada
tampilan gambar.
b. Pada tampilan tersebut juga terdapat sebuah objek bola, dimana bola tersebut
dapat bergerak atau berpindah pindah tempat dengan sendirinya.
Berikut perintah perintah yang terdapat pada sebuah objek bola tersebut :
translate (xPos, yPos, -zPos);
sphere(200);
noFill();
pada program diatas terdapat perintah sphere, dimana sphere fungsinya untuk
membuat ukuran diameter pada bola tersebut.
Kemudian di bawah ini terdapat program untuk perpindahan bola dan
kecepatan bola :
int xPos=150;
int yPos=50;
int zPos=10;
int xSpeed=2;
int ySpeed=2;
int zSpeed=2;
int xDirection=1;
int yDirection=1;
int zDirection=1;
pada progam diatas terdapat perintah int, dimana int tersebut adalah sebagai
variabel. intPos fungsinya untuk memberi perpindahan bola dari satu bidang
kubus ke bidang kubus lainnya. Dan intxSpeed yang fungsinya untuk
memberi kecepatan bola pada saat bola tersebut dalam berpindah ke bidang
bidang lainnya. Sedangkan pada perintah intzDirection fungsinya untuk
memberi kecepatan bola ketika bola tersebut memantul.
Kemudian pada program tersebut terdapat perintah untuk menghentikan bola
pada saat bola tersebut memantul mantul atau berpindah pindah dengan
menggunakan perintah mouse dengan program :
if (mousePressed) {
xDirection *=-1;
yDirection *=-1;
zDirection *=-1;

Universias Pembangunan Panca Budi


Medan

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

// inital ball set up


translate (xPos, yPos, -zPos);
sphere(200);
noFill();

// 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;
}

Universias Pembangunan Panca Budi


Medan

//reversal
if (mousePressed) {
xDirection *=-1;
yDirection *=-1;
zDirection *=-1;
}
}

Untuk menjalankan program diatas menggunakan software processing. Processing


sendiri terdapat berbagai macam macam versi, kebetulan pada program diatas
menggunakan processing versi 2.2.1.

Universias Pembangunan Panca Budi


Medan

Anda mungkin juga menyukai