Rabu, 10 Juli 2013
Tugas Grafika Komputer 6 : Kubus Dev C++

Kubus dengan Kabut

Source Code :


#include 
#include 
#include 
#include 
static GLint fogMode;
/* inisialisasi kedalaman buffer, fog, sumber cahaya, sifat]sifat bahan dan model pencahayaan */
static void init(void)
{
GLfloat mat_specular3[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess3[] = { 10.0 };
GLfloat light_position3[] = { -0.1, 0.0, 0.0,0.0 };
GLfloat white_light3[] = {0.0,1.0,5.0,1.0};
GLfloat lmodel_ambient3[]={0.1,0.1,0.1,0.1};

glLightfv(GL_LIGHT7, GL_POSITION, light_position3);
glLightfv(GL_LIGHT7, GL_DIFFUSE, white_light3);
glLightfv(GL_LIGHT7, GL_SPECULAR, white_light3);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient3);

GLfloat position[]={-9.5,0.5,3.0,0.0}; //mengatur arah cahaya

glEnable(GL_DEPTH_TEST);

glLightfv(GL_LIGHT0,GL_POSITION,position);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
{
GLfloat mat[3]={0.1745,0.01175,0.01175};//pantulan cahaya
glMaterialfv(GL_FRONT,GL_AMBIENT,mat);
mat[0]=0.61424;mat[1]=0.04136;mat[2]=0.04136;
glMaterialfv(GL_FRONT,GL_DIFFUSE,mat);
mat[0]=0.727811;mat[1]=0.626959;mat[2]=0.626959;
glMaterialfv(GL_FRONT,GL_SPECULAR,mat);
glMaterialf(GL_FRONT,GL_SHININESS,0.6*128.0);
}

glEnable(GL_FOG);//pengaturan kabut
{
GLfloat fogColor[4]={1.0,1.0,1.0,1.0};//pengaturan warna kabut

fogMode=GL_EXP;
glFogi(GL_FOG_MODE,fogMode);
glFogfv(GL_FOG_COLOR,fogColor);
glFogf(GL_FOG_DENSITY,0.5);
glHint(GL_FOG_HINT,GL_DONT_CARE);
glFogf(GL_FOG_START,4.0);
glFogf(GL_FOG_END,7.0);
}
glClearColor(0.5, 0.5, 0.5, 1.0); /* memberi warna kabut */
}
static void renderCube(GLfloat x,GLfloat y,GLfloat z)//mengatur bentuk objek
{
glPushMatrix();
glRotated(30,1,0,1);//memutar searah sumbu x 30 drajat
glRotated(45,0,1,0);//memutar searah sumbu y 45 drajat
glutSolidCube(2.0f);//bentuk objek kubus
glPopMatrix();
}
/* display() untuk menampilkan gambar kubus pada posisi z yang berbeda. */
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTorus(0.3,0.5,50,50);
renderCube (1., -0.5, -5.0);
glFlush();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h) glOrtho (-2.5, 2.5, -2.5*(GLfloat)h/(GLfloat)w, 2.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0); else glOrtho (-2.5*(GLfloat)w/(GLfloat)h, 2.5*(GLfloat)w/(GLfloat)h, -2.5, 2.5, -10.0, 10.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity (); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 'f': case 'F': if (fogMode == GL_EXP) { fogMode = GL_EXP2; printf ("Kabut dalam mode GL_EXP2\n"); } else if (fogMode == GL_EXP2) { fogMode = GL_LINEAR; printf ("Kabut dalam mode GL_LINEAR\n"); } else if (fogMode == GL_LINEAR) { fogMode = GL_EXP; printf ("Kabut dalam mode GL_EXP\n"); } glFogi (GL_FOG_MODE, fogMode); glutPostRedisplay(); break; case 27: exit(0); break; default: break; } } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(500, 500); glutCreateWindow("11520241015"); init(); glutReshapeFunc (reshape); glutKeyboardFunc (keyboard); glutDisplayFunc (display); glutMainLoop(); return 0; }

Fauziah Husnaa

Masih perlu banyak belajar. Belajar apa saja. Hampir selesai KKN-PPL dan sedang akan mengajukan judul skripsi. Sangat suka dengan desain dan kartun... Masih aktif sebagai mahasiswi Universitas Negeri Yogyakarta.

0 terbaik

Thanks For Reading and visiting....
Please Leave Your Comment ^____^