Wednesday 21 June 2017

membuat Anjing 3D berjalan 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. 

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)"
 
Projek OpenGL kali ini kita akan membuat seekor anjing sedang berjalan. kita akan belajar membuat anjing berjalan dengan openGl pada codeblock C++. setiap fungsi didalam program akan saya pisahkan supaya lebih mudah dipahami ketika saat ingin merubah hasil tampilan dari animasinya.

Untuk bisa membuat projek seperti diatas anda harus menyiapkan beberapa hal dalam penyetingan di komoputer anda yang berkaitan dengan openGL. diantaranya yaitu :
  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.


    
    #define NULL 0
    #define TORSO_HEIGHT 4.0     #define TORSO_RADIUS 1.50     #define UPPER_FRONT_HEIGHT 2.0     #define LOWER_FRONT_HEIGHT 0.10     #define LOWER_BACK_HEIGHT 0.10     #define UPPER_FRONT_RADIUS 0.5     #define LOWER_FRONT_RADIUS 0.5     #define HEAD_HEIGHT 1.5     #define HEAD_RADIUS 1.0     #include <GL/glut.h>     // Rotation amounts     static GLfloat xRot = 0.0f;     static GLfloat yRot = 0.0f;     //set head, torso, and all the feet     void head();     void torso();     void left_upper_front();     void right_upper_front();     void left_upper_back();     void right_upper_back();     typedef float point[3];     typedef struct treenode{     GLfloat m[16];     void (*f)();     struct treenode *sibling;     struct treenode *child;     } treenode;     typedef treenode* t_ptr;     static GLfloat theta[11] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,0.0, 0.0, 0.0, 0.0};     static GLint acc = 1, acc1 = 1, acc2 = 1;     GLUquadricObj *t, *h, *luf, *llf, *ruf, *rlf, *llb, *rlb, *rub, *lub;     treenode torso_node, head_node, luf_node, ruf_node, llb_node, rlb_node, llf_node,rlf_node, rub_node, lub_node;     void TimerFunc(int value){     glutPostRedisplay();     glutTimerFunc(100, TimerFunc, 1);     }     void traverse(treenode * root){     if(root==NULL) return ;     glPushMatrix();     glMultMatrixf(root->m);     root->f();     if(root->child!=NULL) traverse(root->child);     glPopMatrix();     if(root->sibling!=NULL)traverse(root->sibling);     }     void torso(){     glPushMatrix();     glColor3ub(139,90,43); //tan4     glRotatef(-90.0, 0.0, 1.0, 0.0);     gluSphere(t, TORSO_RADIUS, 10, 10);     gluCylinder(t, TORSO_RADIUS, TORSO_RADIUS, TORSO_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, TORSO_HEIGHT );     gluSphere(t, TORSO_RADIUS, 10, 10);     glPopMatrix();     //tail     glPushMatrix();     glColor3ub(139,90,43); //tan4     glTranslatef(-5.70, 0.90, 0.0);     glScalef(2.50, 0.5, 0.50);     gluSphere(h, 0.5, 10, 10);     glPopMatrix();     }     void head(){     glPushMatrix();     glTranslatef(-0.20, 4.0, 0.0);     glPushMatrix();      glTranslatef(1.80, -2.50, 0.0);     glScalef(1.70, 1.0, 1.40);      gluSphere(h, 1.0, 10, 10);     glPopMatrix();     //ear      glPushMatrix();     glTranslatef(2.0, -1.80, 0.70);     glPushMatrix();     glScalef(0.50, 1.30, 1.30);     gluSphere(h, 0.5, 10, 10);     glPopMatrix();      glTranslatef(0.0, 0.0, -1.40);      glPushMatrix();      glScalef(0.50, 1.30, 1.30);      gluSphere(h, 0.5, 10, 10);      glPopMatrix();     glPopMatrix();     //eye     glPushMatrix();      glColor3ub(0,0,0); //black      glTranslatef(3.10, -2.0, 0.50);      gluSphere(h, 0.2, 10, 10);      glTranslatef(0.0, 0.0, -1.0);      gluSphere(h, 0.2, 10, 10);      glColor3ub(139,90,43); //tan4      glPopMatrix();     glPopMatrix();     }     void left_upper_front(){     glPushMatrix();      glTranslatef(0.60, -2.40, 0.7);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(luf,UPPER_FRONT_RADIUS, 10, 10 );      gluCylinder(luf, UPPER_FRONT_RADIUS, UPPER_FRONT_RADIUS, UPPER_FRONT_HEIGHT, 10, 10);      glTranslatef(0.0, 0.0, UPPER_FRONT_HEIGHT);      gluSphere(luf,UPPER_FRONT_RADIUS, 10, 10 );      glPopMatrix();     }     void left_lower_front(){     glPushMatrix();     glTranslatef(0.60, -2.60, 0.7);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(llf,LOWER_FRONT_RADIUS, 10, 10 );     gluCylinder(llf, LOWER_FRONT_RADIUS, LOWER_FRONT_RADIUS, LOWER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, LOWER_FRONT_HEIGHT);     gluSphere(llf,LOWER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void right_upper_front(){     glPushMatrix();     glTranslatef(0.6, -2.50, -0.7);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(ruf,UPPER_FRONT_RADIUS, 10, 10 );     gluCylinder(ruf, UPPER_FRONT_RADIUS, UPPER_FRONT_RADIUS, UPPER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, UPPER_FRONT_HEIGHT);     gluSphere(ruf,UPPER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void right_lower_front(){     glPushMatrix();     glTranslatef(0.60, -2.50, -0.70);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(rlf,LOWER_FRONT_RADIUS, 10, 10 );     gluCylinder(rlf, LOWER_FRONT_RADIUS, LOWER_FRONT_RADIUS, LOWER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, LOWER_FRONT_HEIGHT);     gluSphere(rlf,LOWER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void left_upper_back(){     glPushMatrix();     glTranslatef(0.6, -2.60, 0.7);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(lub,UPPER_FRONT_RADIUS, 10, 10 );     gluCylinder(lub, UPPER_FRONT_RADIUS, UPPER_FRONT_RADIUS, UPPER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, UPPER_FRONT_HEIGHT);     gluSphere(lub,UPPER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void left_lower_back(){     glPushMatrix();     glTranslatef(4.50, -2.60, 0.70);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(llb,LOWER_FRONT_RADIUS, 10, 10 );     gluCylinder(llb, LOWER_FRONT_RADIUS, LOWER_FRONT_RADIUS, LOWER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, LOWER_FRONT_HEIGHT);     gluSphere(llb,LOWER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void right_upper_back(){     glPushMatrix();     glTranslatef(0.6, -2.60, -0.7);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(rub,UPPER_FRONT_RADIUS, 10, 10 );     gluCylinder(rub, UPPER_FRONT_RADIUS, UPPER_FRONT_RADIUS, UPPER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, UPPER_FRONT_HEIGHT);     gluSphere(rub,UPPER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void right_lower_back(){     glPushMatrix();     glTranslatef(4.50, -2.60, -0.70);     glRotatef(-90.0, 1.0, 0.0, 0.0);     gluSphere(rlb,LOWER_FRONT_RADIUS, 10, 10 );     gluCylinder(rlb, LOWER_FRONT_RADIUS, LOWER_FRONT_RADIUS, LOWER_FRONT_HEIGHT, 10, 10);     glTranslatef(0.0, 0.0, LOWER_FRONT_HEIGHT);     gluSphere(rlb,LOWER_FRONT_RADIUS, 10, 10 );     glPopMatrix();     }     void display(void){     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);     glLoadIdentity();     glPushMatrix();     glRotatef(xRot, 1.0, 0.0, 0.0);     glRotatef(yRot, 0.0, 1.0, 0.0);     traverse(&torso_node);     glPopMatrix();     //the move     //torso     glPushMatrix(); glRotatef(theta[0], 0.0, 1.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX,torso_node.m);     theta[0] += acc1;     glPopMatrix();     //head     glPushMatrix();     glRotatef(theta[1], 0.0, 1.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX,head_node.m);     if(theta[1] > 20 || theta[1] < -60)      acc = -acc;     theta[1] += acc;     glPopMatrix();     //luf     glPushMatrix(); glRotatef(theta[3], 0.0, 0.0, 1.0);     glGetFloatv(GL_MODELVIEW_MATRIX,luf_node.m);     if(theta[3] > 10 || theta[3] < -10)     acc1 = -acc1;     theta[3] += 2*acc1;     glPopMatrix();     //llf     glPushMatrix();     glRotatef(theta[4], 0.0, 1.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX,llf_node.m);     if(theta[4] > 0 || theta[4] < -10)     acc2 = -acc2;     theta[4] += acc2;     glPopMatrix();     //lub     glPushMatrix();     glTranslatef(-4.0, 0.0, 0.0);     glPushMatrix(); glRotatef(theta[7], 0.0, 0.0, 1.0);     glGetFloatv(GL_MODELVIEW_MATRIX,lub_node.m);     theta[7] += 2*acc1;     glPopMatrix();     glPopMatrix();     //llb     glPushMatrix();     glTranslatef(-4.0, 0.0, 0.0);     glPushMatrix(); glRotatef(theta[8], 0.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX,llb_node.m);     theta[8] += acc2;     glPopMatrix();     glPopMatrix();     //ruf     glPushMatrix(); glRotatef(theta[5], 0.0, 0.0, 1.0);     glGetFloatv(GL_MODELVIEW_MATRIX,ruf_node.m);     theta[5] += 2*-acc1;     glPopMatrix();     //rlf     glPushMatrix(); glRotatef(theta[6], 0.0, 1.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX,rlf_node.m);     theta[6] += -acc2;     glPopMatrix();     //rub     glPushMatrix();     glTranslatef(-4.0, 0.0, 0.0);     glPushMatrix(); glRotatef(theta[9], 0.0, 0.0, 1.0);     glGetFloatv(GL_MODELVIEW_MATRIX,rub_node.m);     theta[9] += 2*-acc1;     glPopMatrix();     glPopMatrix();     //rlb     glPushMatrix();     glTranslatef(-4.0, 0.0, 0.0);     glPushMatrix();     glRotatef(theta[10], 0.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX,rlb_node.m);     theta[10] += -acc2;     glPopMatrix();     glPopMatrix();     glutSwapBuffers();     }     void myReshape(int w, int h){     glViewport(0, 0, w, h);     glMatrixMode(GL_PROJECTION);     glLoadIdentity();   if(w<=h)     glOrtho(-10.0, 10.0, -10.0 * (GLfloat) h/ (GLfloat) w,10.0 * (GLfloat) w/ (GLfloat) h, -10.0, 10.0);    else     glOrtho(-10.0 *(GLfloat) w/ (GLfloat) h, 10.0 * (GLfloat) w/ (GLfloat) h,10.0*(GLfloat) w/ (GLfloat) h, 0.0, -10.0, 10.0);     glMatrixMode(GL_MODELVIEW);     glLoadIdentity();     }     void SetupRC(){     GLfloat mat_specular[]={1.0, 1.0, 1.0, 1.0};     GLfloat mat_diffuse[]={1.0, 1.0, 1.0, 1.0};     // Light values and coordinates GLfloat ambientLight[] = { 0.3f, 0.3f, 0.3f, 1.0f }; GLfloat diffuseLight[] = { 0.7f, 0.7f, 0.7f, 1.0f }; GLfloat specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat specref[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glEnable(GL_DEPTH_TEST); // Hidden surface removal glFrontFace(GL_CCW); // Counter clock-wise polygons face out glDisable(GL_CULL_FACE); // Do not calculate inside of jet // Enable lighting glEnable(GL_LIGHTING); // Setup and enable light 0 glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight); glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight); glLightfv(GL_LIGHT0,GL_SPECULAR, specular); glEnable(GL_LIGHT0); // Enable color tracking glEnable(GL_COLOR_MATERIAL); // Set Material properties to follow glColor values glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); // All materials hereafter have full specular reflectivity // with a high shine glMaterialfv(GL_FRONT, GL_SPECULAR, specref); glMateriali(GL_FRONT, GL_SHININESS, 128); // white background glClearColor(1.0f, 1.0f, 1.0f, 1.0f ); glEnable(GL_NORMALIZE);     h=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     t=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     luf=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     llf=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     ruf=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     rlf=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     lub=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     llb=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     rub=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     rlb=gluNewQuadric();     gluQuadricDrawStyle(h, GLU_FILL);     /*set up tree*/     glLoadIdentity();     glRotatef(theta[0], 0.0, 1.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, torso_node.m);     torso_node.f=torso;     torso_node.sibling = &head_node;     torso_node.child = NULL;     glLoadIdentity();     glRotatef(theta[1], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, head_node.m);     head_node.f = head;     head_node.sibling = &luf_node;     head_node.child = NULL;     glLoadIdentity();     glRotatef(theta[3], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, luf_node.m);     luf_node.f = left_upper_front;     luf_node.sibling = &ruf_node;     luf_node.child = &llf_node;     glLoadIdentity();     glRotatef(theta[5], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, ruf_node.m);     ruf_node.f = right_upper_front;     ruf_node.sibling = &lub_node;     ruf_node.child = &rlf_node;     glLoadIdentity();     glRotatef(theta[7], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, lub_node.m);     lub_node.f = left_upper_back;     lub_node.sibling = &rub_node;     lub_node.child = &llb_node;          glLoadIdentity();     glRotatef(theta[9], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, rub_node.m);     rub_node.f = right_upper_back;     rub_node.sibling = NULL;     rub_node.child = &rlb_node;     glLoadIdentity();     glRotatef(theta[4], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, llf_node.m);     llf_node.f = left_lower_front;     llf_node.sibling = NULL;     llf_node.child = NULL;     glLoadIdentity();     glRotatef(theta[6], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, rlf_node.m);     rlf_node.f = right_lower_front;     rlf_node.sibling = NULL;     rlf_node.child = NULL;     glLoadIdentity();     glRotatef(theta[8], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, llb_node.m);     llb_node.f = left_lower_back;     llb_node.sibling = NULL;     llb_node.child = NULL;     glLoadIdentity();     glRotatef(theta[10], 1.0, 0.0, 0.0);     glGetFloatv(GL_MODELVIEW_MATRIX, rlb_node.m);     rlb_node.f = right_lower_back;     rlb_node.sibling = NULL;     rlb_node.child = NULL;     }     // Handle arrow keys     void SpecialKeys(int key, int x, int y){     if(key == GLUT_KEY_UP)     xRot-= 5.0f;     if(key == GLUT_KEY_DOWN)     xRot += 5.0f;     if(key == GLUT_KEY_LEFT)     yRot -= 5.0f;     if(key == GLUT_KEY_RIGHT)     yRot += 5.0f;     if(key > 356.0f)     xRot = 0.0f;     if(key < -1.0f)     xRot = 355.0f;     if(key > 356.0f)     yRot = 0.0f;     if(key < -1.0f)     yRot = 355.0f;     // Refresh the Window     glutPostRedisplay();     }     int main(int argc, char* argv[]){     glutInit(&argc, argv);     glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);     glutInitWindowSize(500, 500);     glutInitWindowPosition(230, 170);     glutCreateWindow(".:OpenGL- Brown Eyed Dog:.");     glutTimerFunc(500, TimerFunc, 1);     SetupRC();     glutSpecialFunc(SpecialKeys);     glutReshapeFunc(myReshape);     glutDisplayFunc(display);     glutMainLoop();     }


setelah itu jalankan programnya dengan menekan f9. dan ini adalah hasilnya seperti gambar di bawah ini. jika tampilan dari hasil program tidak muncul maka sudah dipastika program yang anda buat salah. jadi carilah kesalahan errornya.


Projek Anjing berjalan dengan codeblock C++

demikian tutorialnya semoga bermanfaat buat yang sedang mengerjakan tugas ataupun projek kampus. jangan lupa like dan komen yang membangunnya ya sobat. terimakasih..

Reverensi

  1. https://primastutidewi.wordpress.com/2008/12/30/contoh-sederhana-opengl/

Berikut ini adalah kumpulan Projek OpenGL menggunakan codeblock C++. jika anda ingin mencoba programnya silahkan klik menu2 yang ada dibawah

Setting CodeBlock 

Didalam materi ini anda akan belajar mensetting codeblock dengan openGL C++. dilengkapi dengan tempat untuk mendonload untuk komponen yang dibutuhkan didalam code block untuk membuat projeknya


Dalam materi anda akan belajar cara menjalankan codeblock , dari membuat projeknya sampai projek opengl bisa dijalankan





Projek 3D OpenGL

Projek yang akan anda buat kali ini adalah membuat sebuah parkiran mobil dengan OpenGL CodeBlock C++. dalam projek ini anda akan berinteraksi dengan tampilan yaitu :

  1. menambahkan rumah untuk parkiran , 
  2. kemudian melihat view dari kiri ke kanan, 
  3. maju mundur view serta 
  4. anda juga dapat melihat posisi parkiran baik dari posisi atas maupun samping kanan dan kiri..

untuk lebih jelasnya silahkan klik menu dibawah ini

Projek Mini openGL kali ini anda akan membuat sebuah projek Rumah dengan segala aktifitasnya. misalnya :

  1. Membuka gerbang depan, 
  2. Membuka Gerbang samping, 
  3. Membuka pintu depan, 
  4. Membuka pintu atas, tengah dan 
  5. Menyalakan kipas angin. semua pengaturan semua berada di mouse untuk menjalankannya.

Untuk lebih jelasnya silahkan klik menu dibawah ini


Projek yang dibahas kali ini adalah animasi kotak berputar dengan berbagai warna dengan event mouse untuk merubah arah putaran pada animasi. projek ini dibuat dengan mendefinisikan ukuran dan warna dalam sebuah array supaya mudah dipanggil


projek OpenGL Pensil 3D


Dalam projek ini kita akan membuat pensil berwarna biru dengan layar berwarna hijau


projek 3d air hujan turun

Projek ini membuat sebuah animasi hujan turun dan ditampung didalam tempat penyimpanan. projek ini akan ada beberapa fungsi untuk menjalankannya diantaranya yaitu
S = untuk menampilkan rumah dan lain-lainnya
R = untuk menurunkan air hujannya
Q = untuk exit dari animasi tersebut.


teko teh 3D openGL projek

Pada projek kali ini kita akan membuat sebuah teko 3D dengan warna merah dan pencahayaan pada benda


membuat projek 3d mobil openGL


Didalam projek 3D yang akan kita buat ini nantinya akan banyak fitur yang digunakan diantaranya yaitu

  1. Y = putar arah y
  2. X = putar arah x
  3. Z = putar arah z
  4. A = tingkatkan ukuran mobil dalam arah x
  5. S = tingkatkan ukuran mobil dalam arah y
  6. tingkatkan ukuran mobil dalam arah z
  7. U = tampilan atas kamera
  8. F = tampilan samping kamera
  9. tombol arah kiri = gerakan mobil kearah depan
  10. tombol arah kanan =  gerakan mobil kearah belakang
  11. Esc = tombol keluar dari animasi
  12. spasi = masukan layar utama dari layar awal

Dalam Projek ini kita akan membuat projek membuat lampion dengan efek memutar, menjauhkan layar dengan tombol, mendekatkan dengan layar , merubah putaran ke arah sumbu x, y atau z.


Dalam projek ini anda akam belajar membuat animasi robot dengan openGL adapun nantinya diprojek ini akan melibatkan keyboard sebagai penggeraknya diantanya yaitu :
p = untuk menggerakan kepala naik turun k = memutar tangan kanan searah jarum jam
l = memutar tangan kanan berlawanan arah jarum jam
h= memutar tangan kiti searah jarum jam
Dan masih banyak yang lainya


Dalam projek 3D ini anda akan belajar membuat 3D animasi perahu layar. untuk lebih jelasnya silahkan pelajari projek dibawah ini


Dalam projek 3D ini anda akan belajar membuat 3D animasi bola memantul-mantul keatas kebawah. jika penasaran bagaimana cara membuat projek ini silahkan lihat dibawah ini


Dalam projek 3D ini anda akan belajar membuat sepeda 3D lengkap dengan roda dan rangkanya. jika penasaran bagaimana cara membuat projek ini silahkan klik tombol dibawah ini.


Dalam projek 3D ini anda akan belajar membuat projek bumi berotasi, projek ini nantinya akan dikandalikan dengan keyboard. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat projek bumi berotasi, projek ini nantinya akan dikandalikan dengan keyboard. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat projek pohon dan nantinya pohon ini bisa berotasi, projek ini nantinya akan dikandalikan dengan keyboard. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah boneka sawah dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat membuat boneka DanBo 3D dari awal. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah animasi berbentuk anjing dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah animasi berbentuk boneka dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah animasi berbentuk mobil dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah animasi berbentuk Kipas angin dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah animasi berbentuk Kipas angin dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini


Dalam projek 3D ini anda akan belajar membuat sebuah animasi berbentuk Sendok dari benar-benar nol. jika anda penasaran mengenai projeknya silahkan klik tombol dibawah ini





Terimaksih sudah berkunjung jangan lupa share ke teman-teman yang membutuhkan contoh projek OpenGL ini. 


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