Tuesday 20 June 2017

Membuat Boneka DanBO 3D projek di openGL codeBlock C++



PENGUMUMAN

  " Projek ini Dibuat dengan Benar sudah berjalan secara semestinya. apabila ada ERROR di code silahkan pelajari dimana letak errornya. jangan hanya mau disuapi saja. mengcopi ini = harus mempelajari  sourcodenaya sendiri. 

Jangan Lupa Ucapkan Terimakasih di kolom komentar Jika Projek Ini Berhasil dijalankan. 

dan untuk Glut download sementara saya tutup, jika ingin mendownload silahkan komentar dibawah "tujuan kalian belajar OPENGL beserta email kalian". nanti saya bagikan lewat email kalian yang ada dikolom komentar. (komentar tidak akan muncul jika belum disetujui dan belum dikirim openGLnya ke email kalian)"


Tentang Projek

Pada Projek

Persiapan Projek

Untuk memulai membuat projek open GL ini anda harus menseting beberapa komponen kedalam codeblock dan ketika sudah selesai menseting semuanya saatnya membuat projeknya. untul langkah-langkah persiapannya dapat melakukan beberapa langkah-langkah dibawah ini.

  1. Open GL download disini :View openGL
  2. CodeBlock setting dengan openGL caranya lihat disini: view
  3. buka codeblock dan buat projek baru caranya dapat dilihat disini : view
  4. copy semua sourcode yang tersedia di blog ini.
silahkan copy contoh program dibawah ini ke projek yang anda buat. adapun sourcode yang akan anda coba adalah sebagai berikut.

  

    #include "stdlib.h" #include "gl/glut.h" int w=500, h=500,z=0; int x1=0, y1=0, a=0, z1=0; void renderScene(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0,0,-100); glRotatef(a,x1,y1,z1); glTranslatef(0,0,z); glPushMatrix(); glTranslatef(0,-5,0); glColor3f(1,1,1); glutWireSphere(4,200,50); glPopMatrix(); glPushMatrix();//badan atas glTranslatef(0,0,0); glColor3f(1,1,1); glutWireSphere(3,200,50); glPopMatrix(); glPushMatrix();//badan bawah glTranslatef(0,4,0); glColor3f(1,1,1); glutWireSphere(2,200,50); glPopMatrix(); glPushMatrix(); //hidung glTranslatef(0,4,0); glColor3f(1,0,0); glutWireCone(1,3,200,50); glPopMatrix(); glPushMatrix(); //mata kiri glTranslatef(1,4.5,2); glColor3f(0,0,0); glutWireSphere(0.1,200,50); glPopMatrix(); glPushMatrix();//mata kanan glTranslatef(-1,4.5,2); glColor3f(0,0,0); glutWireSphere(0.1,200,50); glPopMatrix(); glPushMatrix(); glTranslatef(0,5,0);//topi glRotatef(-90,1,0,0); glColor3f(0,0,1); glutWireCone(2,4,200,50); glPopMatrix(); glutSwapBuffers(); } void resize(int w1,int h1){ glViewport(0,0,w1,h1); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0,(float) w1/(float) h1, 1.0,300.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void myKeyboard(unsigned char key, int x, int y){ if (key == 'x') { x1=1;y1=0;z1=0; a+=10; } else if (key == 'y') { y1=1;x1=0;z1=0;a+=-10; } else if (key == 'z') { y1=0;x1=0;z1=1;a+=-10; } } void mySpecialKeyboard(int key, int x, int y){ switch(key){ case GLUT_KEY_UP: z+=5;break; case GLUT_KEY_DOWN:z-=5; break; } } void init(){ glClearColor(0,0,0,1); glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0,(GLdouble) w/(GLdouble) h, 1.0,300.0); glMatrixMode(GL_MODELVIEW); } void timer(int value){ glutPostRedisplay(); glutTimerFunc(50,timer,0); } int main(int argc,char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(w,h); glutCreateWindow("kampret32"); gluOrtho2D(-w/2,w/2,-h/2,h/2); glutDisplayFunc(renderScene); glutReshapeFunc(resize); glutKeyboardFunc(myKeyboard); glutSpecialFunc(mySpecialKeyboard); glutTimerFunc(1,timer,0); init(); glutMainLoop(); }




Reverensi



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

int w = 480, h = 480, z = -50;

int x1 = 0, y1 = 0, z1 = 0, sudut = 0;

void timer(int value) {

glutPostRedisplay();

glutTimerFunc(50,timer,0);

}

void myKeyboard(unsigned char key, int x, int y) {

if(key == 'a') z += 5; //mendekat

else if (key == 'd') z -= 5; //menjauh

else if (key == 'x') { //rotasi sumbu x

x1 = 1;

y1 = 0;

z1 = 0;

sudut += 5;

} else if (key == 'y') { //rotasi sumbu y

x1 = 0;

y1 = 1;

z1 = 0;

sudut += 5;

} else if (key == 'z') { //rotasi sumbu z

x1 = 0;

y1 = 0;

z1 = 1;

sudut += 5;

}

}

void init() {

glClearColor(0.0,0.0,0.0,1.0);

glEnable(GL_DEPTH_TEST);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(30., (GLdouble)w/(GLdouble)h, 1., 300.);

glMatrixMode(GL_MODELVIEW);

}

void resize(int w1, int h1) {

glViewport(0,0,w1,h1);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(45.0, (float)w1/(float)h1, 1.0, 300.0);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void balok(double panjang, double lebar, double tinggi) {

glScalef(panjang, tinggi, lebar);

glutSolidCube(1);

}

void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

glClearColor(1,1,1,1);

glTranslatef(0, 0, z);

glRotatef(sudut, x1, y1, z1);

glPushMatrix(); //badan

glColor3f(0, 0, 0);

balok(10, 6, 9);

glPopMatrix();

glPushMatrix(); //kepala

glTranslatef(0, 9.5, 0);

glColor3f(0.8, 0.1, 0.2);

balok(15, 8, 10);

glPopMatrix();

glPushMatrix(); //mata kiri

glTranslatef(-2.2, 9.6, 4.1);

glRotatef(90, 0, 1, 0);

glColor3f(0.2, 0, 0);

glutSolidSphere(1, 2, 30);

glPopMatrix();

glPushMatrix(); //mata kanan

glTranslatef(2.2, 9.6, 4.1);

glRotatef(90, 0, 1, 0);

glColor3f(0.2, 0, 0);

glutSolidSphere(1, 2, 30);

glPopMatrix();

glPushMatrix(); //mulut

glTranslatef(0, 7.5, 4.1);

glRotatef(90, 0, 1, 0);

glRotatef(90, 1, 0, 0);

glColor3f(0.2, 0, 0);

glutSolidCone(1.5, 2, 2, 2);

glPopMatrix();

glPushMatrix(); //garis

glTranslatef(0, 3, 0);

glColor3f(1, 1, 1);

balok(10.2, 6.2, 1);

glPopMatrix();

glPushMatrix(); //garis

glTranslatef(0, 1, 0);

glColor3f(1, 1, 1);

balok(10.2, 6.2, 1);

glPopMatrix();

glPushMatrix(); //garis

glTranslatef(0, -1, 0);

glColor3f(1, 1, 1);

balok(10.2, 6.2, 1);

glPopMatrix();

glPushMatrix(); //garis

glTranslatef(0, -3, 0);

glColor3f(1, 1, 1);

balok(10.2, 6.2, 1);

glPopMatrix();

glPushMatrix(); //tangan kiri

glTranslatef(-6.5, -0.5, 2.5);

glRotatef(-45, 1, 0, 0);

glColor3f(0.8, 0.1, 0.2);

balok(3, 3, 8);

glPopMatrix();

glPushMatrix(); //tangan kanan

glTranslatef(6.5, -0.5, -2.5);

glRotatef(45, 1, 0, 0);

glColor3f(0.8, 0.1, 0.2);

balok(3, 3, 8);

glPopMatrix();

glPushMatrix(); //kaki kanan

glTranslatef(-2, -7, -0.5);

glRotatef(10, 1, 0, 0);

glColor3f(0.8, 0.1, 0.2);

balok(3, 3, 10);

glPopMatrix();

glPushMatrix(); //kaki kiri

glTranslatef(2, -7, 0.5);

glRotatef(-10, 1, 0, 0);

glColor3f(0.8, 0.1, 0.2);

balok(3, 3, 10);

glPopMatrix();

glutSwapBuffers();

}

int main(int argc, char **argv) {

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

glutInitWindowPosition(100,100);

glutInitWindowSize(w,h);

glutCreateWindow("Kampret 32");

gluOrtho2D(-w/2, w/2, -h/2, h/2);

glutDisplayFunc(renderScene);

glutTimerFunc(50, timer, 0);

glutKeyboardFunc(myKeyboard);

glutReshapeFunc(resize);

init();

glutMainLoop();

}





kemudian compile sourcodenya dengan menekan tombol f9.... maka hasilnya akan seperti dibawah ini... taraaaaaa.... selamat mencoba dan semoga bermanfaat. jangan lupa komentar dan likenya yah kawan... bila ada pertanyaan silahkan tanyakan komentar dibawah.




berikut ini adalah kombinasi tombol untuk projek diatas
a  = mendekat
d  = menjauh
x  = mutar depan
z  = memutar berlawanan jarum jam
y  = mutar tengah

Reverensi



Daftar Pustaka
  1. https://sigmaakhiria.wordpress.com/2013/04/27/membuat-danbo-3d-dengan-opengl/




Contoh Projek 3D lainnya.


Baca Juga Projek OpenGL dengan C++ Lainnya  dibawah ini :

 Contoh Projek 2D openGL

Baca juga Animasi 2D untuk projek openGL lainnya dibawah ini

Dasar OpenGL

Baca juga Dasar Dari OpenGL dibawah ini jika kalian ingin menekuninya.


No comments:

Post a Comment

Tingkat keanekaragaman hayati tingkat gen

Tingkat keanekaragaman hayati tingkat gen -- Keanekaragaman hayati adalah sebuah istilah untuk menggambarkan keanekaragaman mahluk hidup di ...