Question: /* Copyright (c) Mark J. Kilgard, 1994. */ /* This program is freely distributable without licensing fees and is provided without guarantee or warrantee expressed

/* Copyright (c) Mark J. Kilgard, 1994. */ /* This program is freely distributable without licensing fees and is provided without guarantee or warrantee expressed or implied. This program is -not- in the public domain. */ /* blender renders two spinning icosahedrons (red and green). The blending factors for the two icosahedrons vary sinusoidally and slightly out of phase. blender also renders two lines of text in a stroke font: one line antialiased, the other not. */ #include #include #include GLfloat light0_ambient[] = {0.2, 0.2, 0.2, 1.0}; GLfloat light0_diffuse[] = {0.0, 0.0, 0.0, 1.0}; GLfloat light1_diffuse[] = {1.0, 0.0, 0.0, 1.0}; GLfloat light1_position[] = {1.0, 1.0, 1.0, 0.0}; GLfloat light2_diffuse[] = {0.0, 1.0, 0.0, 1.0}; GLfloat light2_position[] = {-1.0, -1.0, 1.0, 0.0}; float s = 0.0; GLfloat angle1 = 0.0, angle2 = 0.0; void output(GLfloat x, GLfloat y, char *text) { char *p; glPushMatrix(); glTranslatef(x, y, 0); for (p = text; *p; p++) glutStrokeCharacter(GLUT_STROKE_ROMAN, *p); glPopMatrix(); } void display(void) { static GLfloat amb[] = {0.4, 0.4, 0.4, 0.0}; static GLfloat dif[] = {1.0, 1.0, 1.0, 0.0}; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_LIGHT1); glDisable(GL_LIGHT2); amb[3] = dif[3] = cos(s) / 2.0 + 0.5; glMaterialfv(GL_FRONT, GL_AMBIENT, amb); glMaterialfv(GL_FRONT, GL_DIFFUSE, dif); glPushMatrix(); glTranslatef(-0.3, -0.3, 0.0); glRotatef(angle1, 1.0, 5.0, 0.0); glCallList(1); /* render ico display list */ glPopMatrix(); glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_LIGHT2); glDisable(GL_LIGHT1); amb[3] = dif[3] = 0.5 - cos(s * .95) / 2.0; glMaterialfv(GL_FRONT, GL_AMBIENT, amb); glMaterialfv(GL_FRONT, GL_DIFFUSE, dif); glPushMatrix(); glTranslatef(0.3, 0.3, 0.0); glRotatef(angle2, 1.0, 0.0, 5.0); glCallList(1); /* render ico display list */ glPopMatrix(); glPushAttrib(GL_ENABLE_BIT); glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); gluOrtho2D(0, 1500, 0, 1500); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); /* Rotate text slightly to help show jaggies. */ glRotatef(4, 0.0, 0.0, 1.0); output(200, 225, "This is antialiased."); glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); output(160, 100, "This text is not."); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glPopAttrib(); glMatrixMode(GL_MODELVIEW); glutSwapBuffers(); } void idle(void) { angle1 = (GLfloat) fmod(angle1 + 0.8, 360.0); angle2 = (GLfloat) fmod(angle2 + 1.1, 360.0); s += 0.05; glutPostRedisplay(); } void visible(int vis) { if (vis == GLUT_VISIBLE) glutIdleFunc(idle); else glutIdleFunc(NULL); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow("blender"); glutDisplayFunc(display); glutVisibilityFunc(visible); glNewList(1, GL_COMPILE); /* create ico display list */ glutSolidIcosahedron(); glEndList(); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse); glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse); glLightfv(GL_LIGHT1, GL_POSITION, light1_position); glLightfv(GL_LIGHT2, GL_DIFFUSE, light2_diffuse); glLightfv(GL_LIGHT2, GL_POSITION, light2_position); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_LINE_SMOOTH); glLineWidth(2.0); glMatrixMode(GL_PROJECTION); gluPerspective( /* field of view in degree */ 40.0, /* aspect ratio */ 1.0, /* Z near */ 1.0, /* Z far */ 10.0); glMatrixMode(GL_MODELVIEW); gluLookAt(0.0, 0.0, 5.0, /* eye is at (0,0,5) */ 0.0, 0.0, 0.0, /* center is at (0,0,0) */ 0.0, 1.0, 0.); /* up is in positive Y direction */ glTranslatef(0.0, 0.6, -1.0); glutMainLoop(); return 0; /* ANSI C requires main to return int. */ } 

we are meant to use this code using visual studio 2015, OpenGl. to code and make changes to the vertex, lighting, and material properties of the model. and please add a ReadMe.txt file to explain the code, and please add comments to the code. we are supposed to make changes to the code and at thesame time add comments. changes to the vertex, lighting, and material properties of the model

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!