• Tidak ada hasil yang ditemukan

PAPER GRAFIKA KOMPUTER pembuatan objek

N/A
N/A
Protected

Academic year: 2017

Membagikan "PAPER GRAFIKA KOMPUTER pembuatan objek"

Copied!
12
0
0

Teks penuh

(1)

OBJEK 3 DIMENSI

“ROBOT HUMANOID”

LAPORAN

UNTUK MEMENUHI TUGAS AKHIR MATAKULIAH

Praktikum Grafika Komputer

Yang Dibina oleh Heru Wahyu Herwanto, S.t., M.Kom.

Oleh

Ananda Putri Syaviri

130533608243

Nena Erviana

130533608234

Offering B 2013

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

(2)

OBJEK 3 DIMENSI

“ROBOT HUMANOID”

Ananda Putri Syaviri1, Nena Erviana2

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Negeri Malang syaviri@yahoo.co.id 1 , nena_underground@yahoo.co.id

www.um.ac.id

Abstrak

Perkembangan teknologi saat ini menjadi andalan dan kebutuhan masyarakat IT, terutama pada teknologi komunikasi dan informasi berbasi komputer. Hal ini menyebabkan produk berbasis IT mulai banyak bermunculan. Salah satu produk IT tersebut iaalah 3dsMax, dengan menggunakan produk imi, banyak bangun 3Dimensi dapat dibentuk. Produk 3dsMax merupakan software untuk membuat objek tiga dimensi yang menyediakan berbagai tool untuk pembuatan objek tiga dimensi. Produk ini memiliki kemampuan dalam menggabungkan objek image, vektor dan tiga dimensi, serta terdapat aplikasi untuk menambahkan animasi pada objek tersebut. Animasi dimensi tiga ini dapat diintegrasikan pada halaman multimedia dan dapat berdiri sendiri sebagai sebuah movie. Adapun pemberian animasi pada objek ini menggunakan aplikasi pemrograman visual basic dengan menggunakan bahasa OpenGlut.

Kata kunci : Robot, 3dsMax, Lighting, objek 3D, OpenGlut

1. Pendahuluan

1.1 Latar Belakang

Perkembangan komputer saat ini sudah mengalami banyak perubahan yang sangat pesat jika dibandingkan dengan waktu sebelumnya, seiring dengan kebutuhan manusia yang semakin banyak dan kompleks. Pada awalnya komputer hanya digunakan untuk para akademisi dan militer, namun saat ini berbagai kalangan dapat menggunakan komputer.

Kini komputer juga banyak digunakan dalam berbagai bidang dalam kehidupan, tidak hanya untuk urusan kemiliteran atau akademisi, tetapi digunakan juga dalam bidang kesehatan, pendidikan, psikologi, permainan, jual- beli dan lain- lain.

Dalam kehidupan sehari- hari, banyak instansi perusahaan, maupun lembaga pendidikan yang membutuhkan program aplikasi untuk dapat membuat sebuah rancangan objek 3D yang nantinya digunakan untuk bahan presentasi maupun sebagai perancangan untuk membuat sebuah renovasi gedung maupun pembuatan objek yang digunakan untuk menunjang sistem kerja instansi tersebut.

Banyak program aplikasi yang dapat digunakan untuk membuat rancangan objek 3D ini, diantaranya 3dsMax dan blender. Dalam dunia pemrograman dan desain grafis computer, sudah banyak pengembangan aplikasi yang ada untuk dapat membuat rancangan tersebut.

(3)

perencanaan yang telah disusun. Program ini menggunakan bahasa pemrograman visual basic dan openGlut untuk membuat animasi pada objek yang dibuat pada apliaksi blender maupun 3dsMax.

1.2 Tujuan

Tujuan pembuatan program untuk menghasilkan objek 3D berbentuk robot dengan menerapkan konsep lighting dan pemberian animasi dengan interaksi keyboard dan mouse. Berikut tujuan lain dari pembuatan program ini:

- Untuk memenuhi tugas akhir mata kuliah Praktikum Grafika Komputer.

- Dapat membangun sebuah objek 3D pada aplikasi 3dsMax maupun blender.

- Dapat menerapkan konsep- konsep grafika komputer pada objek yang dibuat.

- Dapat memahami penggunaan fungsi- fungsi openGlut dalam membuat sebuah objek dan penerapan animasi serta interaksinya.

- Dapat menghasilkan program aplikasi objek 3D yang dapat membantu dalam perancangan untuk pembangunan objek di lapangan.

1.3 Batasan Masalah

Pembatasan pada penulisan paper tugas akhir adalah sebagai berikut:

1. Sistem ini menggunakan penerapan lighting. 2. Sistem ini menggunakan interaksi keyboard

baik pada tombol special dan tombol biasa. 3. Sistem ini menerapkan animasi dengan fungsi

scalef, untuk translasi, dan rotatef.

4. Sistem ini menggunakan penerapan fungsi interasi mouse.

2. Perancangan

Perancangan aplikasi ini berawal dari pembuatan objek yang menggunakan aplikasi software 3dsMax atau blender. Kemudian dieksport kedalam format .obj jika menggunakan 3dsMax, dan format .obj & .mtl jika menggunakan blender. Jika menggunakan aplikasi 3dsMax maka perlu mengimport file .obj pada 3dsMax kedalam blender, kemudian dieksport kembali kedalam format .obj dan secara otomatis blender akan mengeksport juga file dalam format .mtl. Kemudian untuk pemberian interaksi keyboard dan efek lighting dan texturing dilakukan pada aplikasi program visual basic.

Alur program yang digunakan dalam pembentukan objek robot humanoid ini adalah: 1. Start 4. Deklarasi fungsi drawmodel_box 5. Deklarasi fungsi display

6. Deklarasi fungsi init 7. Deklarasi fungsi reshape 8. Deklarasi fungsi update 9. Deklarasi fungsi mouse 10. Deklarasi fungsi motion mouse

11. Deklarasi fungsi my Keyboard dan special Keyboard.

12. Deklarasi fungsi main untuk pemanggilan fungsi-fungsi diatas agar dapat meload objek yang telah dibuat.

13. Selesai.

2.1 Flowchart ( lampiran) 2.2 Kode Program

//deklarasi header

(4)

#include<windows.h> #include<glut.h> #include"glm.h"

int z = -20;

//deklarasi koordinat dan variabel yang digunakan

float tx=0, ty=0, tz=-5;

int w = 640, h = 480;

int x1 = 0, y1 = 0, z1 = 0, sudut = 0; // deklarasi sumbu x, y, z dan sudut

float cx=0, cy=0, cz=0;

int a, b; //untuk deklarasi variabel x dan y

//deklarasi penggunaan parameter lighting

float x_light, y_light, z_light = 0.5; //nilai lighting yang digunakan 0.5

//deklarasi pointer untuk load objek

GLMmodel* pmodel1 = NULL;

//deklarasi pemanggilan objek robot

void drawmodel_box(void){

if (!pmodel1){

glColor3f(1,0,1); // deklarasi warna

pmodel1 =

glmReadOBJ("Robot.obj"); //fungsi untuk membaca file robot.obj

if (!pmodel1) exit(0);

glmUnitize(pmodel1);

glmFacetNormals(pmodel1);

glmVertexNormals(pmodel1, 100.0); //deklarasi vertex yang digunakan

}

glmDraw(pmodel1, GLM_SMOOTH| GLM_TEXTURE); //deklarasi gambar dengan fungsi glm_smooth, glm_texture

}

//deklarasi pemanggilan fungsi untuk penampilan objek

void display(void){ glClear

(GL_COLOR_BUFFER_BIT |

GL_DEPTH_BUFFER_BIT); //fungsi pewarnaan background

glLoadIdentity(); //fungsi loadIdentity

/*inisialisasi pemanggilan fungsi lighting*/

GLfloat LightPosition[] = {15.0f, 15.0f, 25.0f, 0.5f};

LightPosition[0] = a; LightPosition[1] = b; LightPosition[2] = 150;

//deklarasi dan inisialisasi array untuk posisi lighting

//GLfloat LightPosition[] = {x_light, y_light, z_light, 1};

glLightfv(GL_LIGHT0, GL_POSITION, LightPosition);

//deklarasi fungsi lighting specular

GLfloat LightSpecular[] = {0.5, 0.5, 0.5, 1.0};

//deklarasi fungsi shine ( pemberian cahaya)

(5)

//deklarasi pemberian animasi pada objek robot

glPushMatrix();

glTranslatef(0,0,z); //fungsi translasi dengan parameter 0,0,-20

glRotatef(sudut,x1,y1,z1); //fungsi rotasi dengan parameter 0,0,0,0 -> sesuai pendeklarasian pada variabel

drawmodel_box(); // pemanggilan fungsi drawmodel_box

//menampilkan objek

drawmodel_box(); glPopMatrix(); glPopMatrix();

Sleep(10); // fungsi untuk

menampilkan animasi objek yang dapat bergerak sendiri

glutSwapBuffers(); }

//fungsi init untuk meload objek (fungsi utama)

void init(void){

GLfloat LightPosition[] = {x_light, y_light, z_light, 20, 0};

GLfloat LightAmbient[] = {0.0f, 0.0f, 0.0f, 0.0f};

GLfloat LightDiffuse[] = {0.7f, 0.7f, 0.7f, 0.1f};

GLfloat LightSpecular[] = {0.5f, 0.5f, 0.5f, 0.1f};

GLfloat Shine[] = {80};

glClearColor (0.0, 0.0, 0.0, 0.0);

glMatrixMode (GL_PROJECTION); glLoadIdentity();

gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);

glMatrixMode (GL_MODELVIEW); }

//fungsi update untuk interaksi load objek

void update (int value){

glutPostRedisplay();

glutTimerFunc(60, update, 0); } arah bawah pada sumbu y

x1=0; y1=1; z1=0; sudut+=3;}

elseif (key == 'n'){ // untuk fungsi rotatef ke arah atas pada sumbu x

(6)

sudut-=3; }

elseif (key == 'p') { // untuk fungsi rotatef ke arah kiri pada sumbu y dengan searah jarum jam untuk ke arah kanan pada sumbu y dengan berlawanan arah jarum jam

y1=1;

const GLfloat light_ambient[] = { 0.3f, 0.3f, 0.3f, 1.0f };

const GLfloat light_diffuse[] = { 0.7f, 0.7f, 0.7f, 1.0f };

const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat light_position[] = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat light_ambient2[] = { 0.3f, 0.3f, 0.3f, 0.0f };

const GLfloat light_diffuse2[] = { 0.3f, 0.3f, 0.3f, 0.0f };

const GLfloat mat_ambient[] = { 0.8f, 0.8f, 0.8f, 1.0f };

const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };

const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat high_shininess[] = { 100.0f };

void mySpecialKeyboard(int key, int x, int

y){

switch(key){

case GLUT_KEY_UP : //untuk fungsi scalef ukuran besar

z++;

break;

case GLUT_KEY_DOWN : //untuk fungsi scalef ukuran kecil

z--;

break;

case GLUT_KEY_RIGHT : //untuk rotatef ke arah bawah pada sumbu x

x1=1; sudut+=3;

break;

case GLUT_KEY_LEFT : //untuk fungsi rotatef ke arah atas pada sumbu z

z1=1; { glutInit(&argc, argv);

glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); glutInitWindowSize (800, 640); glutInitWindowPosition (150, 150); glutCreateWindow ("ROBOT

HUMANOID");

gluOrtho2D(-100,100,-100,100); init();

(7)

glutReshapeFunc(reshape); glutTimerFunc(60, update, 0); glutKeyboardFunc(mykeyboard); glutSpecialFunc(mySpecialKeyboard); glutPassiveMotionFunc(motion); glutMainLoop();

}

2.3 Pembahasan

 Penjelasan Kode Program

I. Header

- #include"stdafx.h"

: digunakan untuk pemanggilan header - #include<stdlib.h>

: digunakan untuk inisialisasi header - #include<windows.h>

: digunakan untuk inisialisasi header penampilan windows aplikasi. - #include<glut.h>

: digunakan untuk pemanggilan fungsi glut yang ada pada script

- #include"glm.h"

: digunakan untuk pemanggilan fungsi yang ada pada folder glm pada project visual basic

II. Deklarasi variable

//deklarasi koordinat dan variabel yang digunakan

- int z = -20;

- float tx=0, ty=0, tz=-5; - int w = 640, h = 480;

- int x1 = 0, y1 = 0, z1 = 0, sudut = 0; // deklarasi sumbu x, y, z dan sudut - float cx=0, cy=0, cz=0;

- int a, b; //untuk deklarasi variabel x dan y

- float x_light, y_light, z_light = 0.5;

//deklarasi penggunaan parameter lighting

- GLMmodel* pmodel1 = NULL;

//deklarasi pointer untuk load objek

Deklarasi diatas digunakan untuk pemanggilan nilai- nilai variable yang digunakan sebagai parameter fungsi.

III. Fungsi

a) drawmodel_box(void): digunakan untuk deklarasi pemanggilan objek yang telah dibuat pada aplikasi 3dsMax dalam format .obj

b) display(void) : digunakan untuk deklarasi pemanggilan fungsi untuk menampilkan objek

c) init(void) : digunakan untuk deklarasi meload objek dengan pendeklarasian penggunaan lighting dalam objek ini. d) reshape (int w, int h) : digunakan

untuk pendeklarasian fungsi viewport, matrixmode, loadidentity, perspektif yang fungsinya membentuk objek 3D.

e) update (int value) : digunakan untuk interaksi load objek dengan fungsi timerfunc dan postredisplay

f) mouse(int tombol, int state, int x,

int y) : digunakan untuk pendeklarasian penggunaan interaksi mouse

g) motion(int x, int y) : digunakan untuk fungsi motion/pergerakan mouse

h) mykeyboard(unsigned char key, int

x, int y) : digunakan untuk pendeklarasian tombol keyboard yang digunakan untuk interaksi keyboard seperti rotate dan scalef pada objek. i) mySpecialKeyboard(int key, int x,

int y) : digunakan untuk pendeklarasian tombol navigasi keyboard yang digunakan untuk interaksi keyboard.

j) main(int argc, char** argv) : digunakan sebagai fungsi utama untuk pemanggilan fungsi- fungsi yang terkait dengan menampilkan objek pada windows aplikasi.

(8)

- glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);

digunakan untuk pewarnaan pada display objek

- glutInitWindowSize (800, 640);

digunakan untuk pengaturan size window untuk menampilkan objek

- glutInitWindowPosition (150, 150);

digunakan untuk pengaturan posisi window pada desktop untuk menampilkan objek

- glutCreateWindow ("ROBOT HUMANOID");

digunakan untuk pemberian judul window

- gluOrtho2D(-100,100,-100,100);

digunakan untuk pengaturan system koordinat yang digunakan.

- init();

digunakan untuk pemanggilan fungsi init yang sebelumnya telah dideklarasikan untuk fungsi lighting objek.

- glutDisplayFunc(display); - glutTimerFunc(60, update, 0);

digunakan untuk pengaturan timer/ motion yang digunakan.

- glutKeyboardFunc(mykeyboard);

digunakan untuk pemanggilan fungsi interaksi keyboard tombol biasa.

- glutSpecialFunc(mySpecialKeyboar d);

digunakan untuk pemanggilan fungsi

interaksi keyboard tombol

special/navigasi.

- glutPassiveMotionFunc(motion);

digunakan untuk motion atau pergerakan objek menggunakan passive motion

- glutMainLoop();

digunakan untuk fungsi perulangan pada program objek ini.

3. Kesimpulan

Berdasarkan uraian yang telah disampaikan baik dari proses awal perancangan hingga pengujian program, maka dapat disimpulkan bahwa Dengan menggunakan Bahasa pemrograman visual basic dan openGlut, dapat yang dapat digunakan jika nantinya akan dibuat di lapangan.

 Dengan menggunakan bahasa

pemograman C++ di dalam visual basic studio maka dapat membuat sebuah objek menjadi objek 3D dengan pemberian animasi baik interaksi pasif maupun aktif, namun pada program ini menggunakan motion pasif dengan interakasi mouse dan keyboard.

(9)

LAMPIRAN

-

FLOWCHART

(10)

Tampilan awal

Key Up

(11)

Key left

Tombol a

(12)

Tombol e

Referensi

Dokumen terkait

Dan hasil pengujian program dan tampilan program yang sudah dilakukan dapat disimpulkan bahwa sistem dapat bekerja dengan baik dan sesuai dengan perancangan sehingga untuk

Proses awal dari bentuk program sumber C (source program, yaitu program yang ditulis dalam bahasa C) hingga menjadi program yang executable (dapat dieksekusi secara

Setelah dilakukannya penelitian yaitu perancangan dan pengujian sistem menggunakan metode Design thinking, peneliti dapat menarik kesimpulan yaitu proses awal yang

Dari hasil penelitian yang dilakukan penulis mulai dari awal hingga proses pengujian dapat disimpulkan bahwa aplikasi sistem E-Market berbasis web dengan

Perancangan perangkat lunak sangat diperlukan karena rancangan tersebut adalah langkah awal bagaimana program itu akan dibuat dan menuangkannya kedalam bahasa

Setelah melakukan proses perakitan, program hingga pengujian pada mesin, didapatkan hasil bahwa mesin dryer assy untuk tipe G*C tersebut telah mampu melakukan proses

Berdasarkan uraian di atas disimpulkan bahwa telah diperoleh perancangan awal lensa infra merah dengan kinerja desain optik yang cukup baik karena memiliki minimum aberasi

Penyusunan Laporan Tahap akhir ini merupakan tahap pembuatan laporan mengenai keseluruhan proses yang dimulai dari awal perancangan hingga tahap akhir pengujian dan evaluasi sistem