void do_stuff() { float eyepoint[3], viewpoint[3]; int k; glEnable(GL_DEPTH_TEST); glClearColor(0.8, 0.6, 0.62, 1.0); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 1); glUseProgram(0); for (k=0; k<3; k++) { eyepoint[k] = light0_position[k]; viewpoint[k] = light0_direction[k] + light0_position[k]; } view_volume(eyepoint, viewpoint); drawquads(); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); save_matrix(eyepoint, viewpoint); glUseProgram(sprogram); set_uniform(sprogram); glActiveTexture(GL_TEXTURE7); glBindTexture(GL_TEXTURE_2D, 1); eyepoint[0] = 1.0; eyepoint[1] = 2.0; eyepoint[2] = 2.0; viewpoint[0] = 0.0; viewpoint[1] = 0.0; viewpoint[2] = 0.0; view_volume(eyepoint, viewpoint); drawquads(); glutSwapBuffers(); }
// Code taken from Dr. Geist's handout void do_stuff() { float eyepoint[3], viewpoint[3]; int k; glEnable(GL_DEPTH_TEST); glClearColor(0.8,0.6,0.62,1.0); glBindFramebufferEXT(GL_FRAMEBUFFER,1); glUseProgram(0); for(k=0;k<3;k++){ eyepoint[k] = light0_position[k]; viewpoint[k] = light0_direction[k]+light0_position[k]; } view_volume(eyepoint,viewpoint, 0); lights(); aa_display(eyepoint,viewpoint); glBindFramebufferEXT(GL_FRAMEBUFFER,0); save_matrix(eyepoint,viewpoint); glUseProgram(sprogram); glActiveTexture(GL_TEXTURE7); glBindTexture(GL_TEXTURE_2D,1); // Draw scene from the intended eye point, complete with shadows. eyepoint[0] = 1.0; eyepoint[1] = 2.0; eyepoint[2] = -5.0; viewpoint[0] = 0.0; viewpoint[1] = 0.0; viewpoint[2] = 0.0; view_volume(eyepoint,viewpoint, 0); lights(); aa_display(eyepoint,viewpoint); glutSwapBuffers(); }
void aa_display(float *ep, float *vp) { int view_pass; glClear(GL_ACCUM_BUFFER_BIT); for( view_pass=0; view_pass<VPASSES; view_pass++ ){ view_volume(ep, vp, 1); draw_array(); glAccum(GL_ACCUM,1.0/(float)(VPASSES)); } glAccum(GL_RETURN,1.0); glutSwapBuffers(); }
int main(int argc,char** argv) { int p; glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE|GLUT_DEPTH); glutInitWindowSize(500,500); glutInitWindowPosition(100,100); glutCreateWindow("phong shaded teapot"); glActiveTexture(GL_TEXTURE0); load_texture(argv[1],1); glActiveTexture(GL_TEXTURE1); load_texture(argv[2],2); glEnable(GL_DEPTH_TEST); view_volume(); set_light(); set_material(); p = set_shaders(); set_uniform(p); glutDisplayFunc(renderScene); //glutIdleFunc(renderScene); glutMainLoop(); return 0; }