Semangat Nyusun Proposal Skripsi --- 1

Ini bukan tentang siapa, apa atau kenapa. tapi ini semua tentang bagaimana. bukan tentang benar, salah, jujur atau bohong. tapi ini semua tentang prinsip. bukan tentang kuat, lemah, menyerah atau optimis. tapi ini semua tentang impian.

Semangat Seminar Proposal Skripsi --- 2

Jika kamu sudah mulai jenuh dgn sesuatu hal yg seharusnya kamu suka, maka hal terbaik yg bisa kamu lakukan adalah mengingat saat pertama kali kamu mengenalnya, mengaguminya, menyukainya, mengenalnya, menyentuhnya, membelainya dan ingin menjadi yg terbaik bersamanya.

Semangat Menuju Semester 7 : Skripsi --- 3

May Allah give us the opportunity to worship Him during the night of Qadr..

Semangat Buat Lulus 7 Semester --- 4

Saat manusia memberikan harapan yg menurut kita menjanjikan, terkadang kita melupakan harapan yg seharusnya tapi saat harapan-harapan dari manusia itu menjadi semakin semu dan membuat kita hampir putus asa dgn takdir, kenapa kita tidak kembali pada harapan yg pasti dan abadi.

Aku Mencintaimu --- 5

Ini Skripsi Gue !

Pages

Showing posts with label Grafika Komputer. Show all posts
Showing posts with label Grafika Komputer. Show all posts

Wednesday, May 1, 2013

Objek 3 Dimensi Open GL


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.
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.
Istilah atau Pengertian Grafik 3D adalah sebuah gambar,garis,lengkungan,dan sebagainya yang memiliki titik-titik yang menghubungkan menjadi sebuah bentuk 3D.
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.
1.    Bentuk Wire
Fungsi Wire merupakan implementasi dari object 3D berupa kerangka benda yang berpusat pada asal pemodelan sistem koordinat. Utara dan kutub selatan bola berada di Z positif dan negatif sumbu-masing-masing dan meridian utama persimpangan sumbu X positif.
Berikut adalah list untuk bangun kerangka pada 3D:
a.   Ukuran adalah panjang sisi
void glutWireCube(GLdouble size);
b. Fungsi glutWireSphere dan glutSolidSphere membuat bola berpusat pada asal pemodelan sistem koordinat. Utara dan kutub selatan bola berada di Z positif dan negatif sumbu-masing-masing dan meridian utama persimpangan sumbu X positif.
void glutWireSphere(GLdouble radius,GLint slices, GLint stacks);
c.   Ukuran benda ditentukan dari dasar jari-jari alasnya.
void glutWireCone(GLdouble base, GLdouble height,GLint slices, GLint stacks);
d.  Render ditentukan melalui 12 sisi. Berpusat pada asal,dan dengan radius sama dengan kuadrat dari 3.
void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings);
e.   Renders padat atau wireframe 12-sisi biasa padat. Berpusat di sekitar asal dan dengan radius sama dengan akar kuadrat dari 3
void glutWireDodecahedron(void);
f.  Renders padat atau wireframe 4-sisi biasa padat. Berpusat di sekitar asal dan dengan radius sama dengan akar kuadrat dari 3.
glutWiredTetrahedron void (void);
g.  Renders padat atau wireframe 8-sisi biasa padat. Berpusat di sekitar asal dan dengan radius sebesar 1.0.
void glutWireOctahedr5(void);
h.  Renders padat atau wireframe 20-sisi biasa padat. Berpusat di sekitar asal dan dengan radius sebesar 1.0.
void glutWireIcosahedron(void);
i.    Render dengan membuat membuat poci teh
void glutWireTeapot(GLdouble size);

2.   Gunakan beberapa fungsi tambahan untuk memanggil fungsi reshape dengan cara menambahkan fungsi glutReshapeFunc (reshape);. Fungs-fungsi di bawah adalah inisialisasi 3dimensi grafika komputer menggunakan opengl.


          Kemudian tambahkan fungsi



Pada fungsi main tambahkan callback function 

glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA);
glutReshapeFunc(resize);
     init();

Membuat 2 Objek Bergerak dengan Memanfaatkan Interaksi Keyboard


Fungsi dasar pembuatan animasi dengan menggunakan KeyboardFunction adalah sebagai berikut 
GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));

Dalam penggunaan glutKeyboardFunc dimungkinkan untuk mendeteksi input dari keyboard. Fungsi ini diletakkan pada fungsi main dari program, dan parameternya adalah callback function yang telah didefinisikan berupa fungsi dengan 3 parameter, seperti contoh di bawah ini.

void myKeyboard(unsigned char key, int x, int y){
          if(key == 'a') glTranslatef(4,0,0); //seleksi tombol yang ditekan
}

void mySpecialKeyboard(int key, int x, int y){
          switch(key){
                 case GLUT_KEY_??? : …; break;
          } 
} 

Langsung saja kita membuat 2 Objek Bergerak dengan Memanfaatkan Interaksi Keyboard

berikut Script programnya

#include<stdlib.h>
#include<glut.h>

float a = 0;
float b = 0;
float c = 0;
float d = 0;

void drawQuad(){     //segi4
   glBegin(GL_QUADS);
   glColor3f(1,0,0);
         glVertex2i(0.,0.);
         glVertex2i(100.,0.);
         glVertex2i(100.,100.);
         glVertex2i(0.,100.);
   glEnd();
   glFlush();
}
void draw() //segitiga
{
   glBegin(GL_TRIANGLES);
   glColor3f(0,1,1);
   glVertex2i(0,0);
   glVertex2i(-50,-100);
   glVertex2i(50,-100);
   glEnd();
}

void renderScene()
{
   glClear(GL_COLOR_BUFFER_BIT);
   glPushMatrix();
         glTranslatef(c,d,0);
         drawQuad();
         glPopMatrix();

         glPushMatrix();
         glTranslatef(a,b,0);
         draw();
         glPopMatrix();
         glFlush();
}
void myKeyboard(unsigned char key, int x, int y) {
   if (key == 'a') c-=4 ;
   else if (key == 'd') c+=4;
   else if (key == 'w') d+=4;
   else if (key == 'x') d-=4;
}
void mySpecialKeyboard(int key,int x, int y){
   switch(key){
         case GLUT_KEY_LEFT:
               a-=4;
               break;
         case GLUT_KEY_RIGHT:
               a+=4;
               break;
         case GLUT_KEY_UP:
               b+=4;
               break;
         case GLUT_KEY_DOWN:
               b-=4;
               break;
   }
}

void update(int value){
   glutPostRedisplay();
   glutTimerFunc(50,update,0);
}

void main(int argc, char **argv){
   glutInit(&argc, argv);
   glutInitWindowPosition(100, 100);
   glutInitWindowSize(640, 480);
   glutCreateWindow("Interaksi Keyboard");
   gluOrtho2D(-320.0,320.0,-320.0,320.0);
   glutDisplayFunc(renderScene);
   glutKeyboardFunc(myKeyboard);
   glutSpecialFunc(mySpecialKeyboard);
   glutTimerFunc(1000, update, 0);
   glutMainLoop();
}


Selamat Mencoba .... ^_^


Transformasi Objek pada Open GL


Transformasi  dua dimensi adalah suatu model atau bentuk atau teknik memindahkan atau mengubah nilai posisi objek dalam sistem koordinat dua dimensi. Pemindahan objek ini dapat diartikan sebagai pemindahan titik. Ada dua cara yang dapat digunakan untuk mentransformasi gambar yaitu :
-         



Transformasi objek
  • Definisinya  adalah  mengubah  koordinat-koordinat  dari  tiap  titik  di  objek  dengan beberapa  aturan  ,
  • meninggalkan underlying sistem koordinat yang tidak bisa diubah lagi.
-          Transformasi koordinat
  •   Definisinya adalah system koordinat yang baru dibuat sebelumnya merupakan perwakilan dari semua titik
  •     objek dalam sistem yang baru.

Tujuan transformasi adalah :
  1. Merubah atau menyesuaikan komposisi pemandangan.
  2. Memudahkan membuat objek yang simetris.
  3. Melihat objek dari sudut pandang yang berbeda.
  4. Memindahkan satu atau beberapa objek dari satu tempat ke tempat lain, ini biasa dipakai untuk animasi komputer.
Dalam transformasi   pada   dunia 2 dimensi, ada tiga transformasi dasar yang dapat dilakukan yaitu  translasi, penskalaan, rotasi.
a.    Perpindahan (Translasi)
Pengertian translasi adalah perpindahan objek dari titik P(x, y) ke titik P(x’, y’) secara linier. Dalam translasi dua dimensi diperlukan dua parameter, yaitu pemindahan kearah sumbu x dan pemindahan kearah sumbu y. Translasi (dx, dy) didefinisikan dengan :
x’= x + dx
y’ = y + dy
Fungsi dasar untuk Translasi (perubahan Posisi) objek
GLAPI void APIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z );
GLAPI void APIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z );

Bentuk umum :
glTranslatef( x, y, z )
glTranslated( x, y, z )
glVertex3f(1.0f, -1.0f, -10.0f );
glColor3f( 1.0, 0.0, 0.0 );
glVertex3f(-1.0f, -1.0f, -10.0f );
glEnd()











Ilustrasi Translasi



b.   Penskalaan (Scale)
Definisi dari penskalaan m adalah perpindahan objek dari titik P ke titik P, dimana jarak titik P adalah m kali titik P atau suatu operasi yang membuat suatu objek berubah ukurannya baik menjadi mengecil ataupun membesar secara seragam atau tidak seragam tergantung pada faktor penskalaan yang diberikan.
Fungsi dasar untuk skala (perubahan ukuran) objek
void APIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); GLAPI void APIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z );

Proses penskalaan dapat didefinisikan dengan :
x = mx x
y’ = my y
Bentuk umum :
glScalef( xf, yf, zf );

c.    Perputaran (Rotate)
Definisi rotasi adalah perpindahan objek dari titik P(x, y) ke titik P(x’,y’) yang berupa pemindahan berputar sebesar sudut θ atau suatu operasi yang menyebabkan objek bergerak berputar pada titik pusat atau pada sumbu putar yang dipilih berdasarkan sudut putaran tertentu.

Fungsi dasar untuk Rotasi objek

GLAPI void APIENTRY glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
GLAPI void APIENTRY glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );

Operasi rotasi dapat diuraikan sebagai berikut :
1.    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 θ
2.    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 θ
3.    Rotasi dari titik P(x, y) menjadi P(x’, y’) merupakan kombinasi dari kedua macam transformasi di atas R = Rx + Ry.
x = x .cos θ - y.sin θ
y = x.sin θ  + y.cos θ
Bentuk umum :
              glRotatef( sudut, sx, sy, sz );

Ilustrasi Rotasi


Statistic

Buscar