Sample Projek OpenGL Boneka 3D dengan pemrograman C++ dan C
OpenGL disini disediakan sample projeknya yang dapat secara langsung di copy paste sourcodenya ke dalam editornya untuk dicoba hasilnya. karena pengalaman pahit penulis mencari contoh sample sourcode yang sangat sulit untuk menyelesaikan tugas projek OpenGl dari ibu dosen yang cantik tapi judes. hehe..
hasil dari projek kita adalah seperti gambar diatas yang membunyai sedikit fitur untuk memutar-mutar saja.
hufh... mari kawan kita lanjutkan belajar projeknya... kali ini kita akan membuat sebuah boneka salju yang indah untuk pemrograman openGL. yuk mari kita mulai saja tutorialnya.
kemudian compile dengan meneken tombol f9 ... dan ini dia hasilnya...
taraaa.....
berikut ini adalah efek dari keyboarnya.
X memutar kepala.. y memutr searah jarum jam dan Z memutar berlawanan arah jarum jam.
semoga bermanfaat untuk menyelesaikan tugasnya yang rumit ini ya... jangan lupa kalau berhasil berkomentar dibawah ya.
hasil dari projek kita adalah seperti gambar diatas yang membunyai sedikit fitur untuk memutar-mutar saja.
hufh... mari kawan kita lanjutkan belajar projeknya... kali ini kita akan membuat sebuah boneka salju yang indah untuk pemrograman openGL. yuk mari kita mulai saja tutorialnya.
- setting dulu codeblocknya dengan glut .. caranya disini
- buat projek baru di code block. kalau belum tau caranya klik disni
- setelah codeblock terbuka masukan kode dibawah ini.
Reverensi
#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();
}
#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();
}
kemudian compile dengan meneken tombol f9 ... dan ini dia hasilnya...
taraaa.....
berikut ini adalah efek dari keyboarnya.
X memutar kepala.. y memutr searah jarum jam dan Z memutar berlawanan arah jarum jam.
semoga bermanfaat untuk menyelesaikan tugasnya yang rumit ini ya... jangan lupa kalau berhasil berkomentar dibawah ya.
Reverensi
Daftar Pustaka
- http://riasuciati.blogspot.co.id/2013/04/program-membuat-boneka-salju-dengan.html
Contoh Projek 3D lainnya.
Baca Juga Projek OpenGL dengan C++ Lainnya dibawah ini :
projek OpenGL 3D
- Membuat projek Parkiran Mobil
- Membuat Game Animasi Rumah
- Membuat Projek Kotak Berputar
- Membuat projek Pensil
- Membuat projek Hujan
- Membuat Animasi Teko
- Membuat Animasi Mobil
- Lampion Merah
- Membuat Animasi Robot
- Membuat Animasi Perahu Layar
- Membuat projek Bola Memantul
- Membuat Projek Sepeda
- Membuat Projek planet bumi berotasi
- Membuat Projek Tatasurya
- Membuat Projek Pohon
- Membuat Boneka Sawah
- Membuat Projek Anak Anjing berjalan
- Membuat Projek Boneka Dambo
- Membuat Projek Boneka
- Membuat Projek Mobil
- Membuat Projek Kipas Angin
- Membuat projek RUmah
- membuat Projek Sendok
0 Response to "Sample Projek OpenGL Boneka 3D dengan pemrograman C++ dan C"
Post a Comment