Future Vision BIE Future Vision BIE


ONE STOP FOR ALL STUDY MATERIALS & LAB PROGRAMS


E MENU Whatsapp Share Join Telegram, to get Instant Updates
× NOTE! Click on MENU to Browse between Subjects...

Advertisement

COMPUTER GRAPHICS LABORATORY WITH MINI PROJECT

[As per Choice Based Credit System (CBCS) scheme]

(Effective from the academic year 2017 - 2018)

SEMESTER - VI

Subject Code 17CSL68

IA Marks 40

Number of Lecture Hours/Week 01I + 02P

Exam Marks 60



17CSL68 - COMPUTER GRAPHICS LABORATORY WITH MINI PROJECT

PROGRAM - 6

To draw a simple shaded scene consisting of a tea pot on a table. Define suitably the position and properties of the light source along with the properties of the surfaces of the solid object used in the scene.

Code Credits Prof Shankar R, BMSIT

DESIGN Credits Mr K B Hemanth Raj - Admin


Advertisement


Advertisement

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
#include<GL/glut.h>
void teapot(GLfloat x,GLfloat y,GLfloat z)
{
    glPushMatrix();
    glTranslatef(x, y, z);
    glutSolidTeapot(0.1);
    glPopMatrix();
}
void tableTop(GLfloat x, GLfloat y, GLfloat z)
{
    glPushMatrix();
    glTranslatef(x, y, z);
    glScalef(0.6, 0.02, 0.5);
    glutSolidCube(1);
    glPopMatrix();
}
void tableLeg(GLfloat x, GLfloat y, GLfloat z)
{
    glPushMatrix();
    glTranslatef(x, y, z);
    glScalef(0.02, 0.3, 0.02);
    glutSolidCube(1);
    glPopMatrix();
}
void wall(GLfloat x, GLfloat y, GLfloat z)
{
    glPushMatrix();
    glTranslatef(x, y, z);
    glScalef(1, 1, 0.02);
    glutSolidCube(1);
    glPopMatrix();
}
void light()
{
    GLfloat mat_ambient[]  =  {1, 1, 1, 1};
    GLfloat mat_diffuse[]  =  {0.5, 0.5, 0.5, 1};
    GLfloat mat_specular[]  =  {1, 1, 1, 1};
    GLfloat mat_shininess[]  =  {50.0f};

    glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);

    GLfloat light_position[]  =  {2, 6, 3, 1};
    GLfloat light_intensity[]  =  {0.7, 0.7, 0.7, 1};
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light_intensity);
}
void display()
{
    GLfloat teapotP = -0.07, tabletopP = -0.15, tablelegP = 0.2, wallP = 0.5;
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();

    gluLookAt(-2, 2, 5, 0, 0, 0,  0, 1, 0);

    light(); //Adding light source to your project

    teapot(0, teapotP, 0); //Create teapot

    tableTop(0, tabletopP, 0); //Create table’s top

    tableLeg(tablelegP, -0.3, tablelegP); //Create 1st leg
    tableLeg(-tablelegP, -0.3, tablelegP); //Create 2nd leg
    tableLeg(-tablelegP, -0.3, -tablelegP); //Create 3rd leg
    tableLeg(tablelegP, -0.3, -tablelegP); //Create 4th leg

    wall(0, 0, -wallP); //Create 1st wall
    glRotatef(90, 1, 0, 0);

    wall(0, 0, wallP); //Create 2nd wall
    glRotatef(90, 0, 1, 0);

    wall(0, 0, wallP); //Create 3rd wall
    glFlush();
}
void myinit()
{
    glClearColor(0, 0, 0, 1);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-1, 1, -1, 1, -1, 10);
    glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(0, 0);
    glutCreateWindow("Teapot on a table");

    myinit();

    glutDisplayFunc(display);

    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);

    glShadeModel(GL_SMOOTH);

    glEnable(GL_NORMALIZE);
    glEnable(GL_DEPTH_TEST);

    glutMainLoop();
}

Advertisement

output
Fig 1.1: OUTPUT.

× Note Please Share the website link with Your Friends and known Students...

-ADMIN

× Note Page Number is specified to navigate between Pages...
T = Text book
QB = Question Bank
AS = Amswer Script


-ADMIN

Advertisement