void czytajObraz(const char obrazchar[], GLuint &nazwaTekstury) { RGBpixmap pix; pix.readBMPFile(obrazchar, false); pix.setTexture(nazwaTekstury); return; }
void setTextures(int num) { RGBpixmap pix; for (int i = 0; i < num; i++) { pix.readBMPFile(to_string(i)+".bmp", false); pix.setTexture(textures[i]); } }
void setTexture() { glGenTextures(10, textureIndex); for(int i = 0; i < 11; i++){ string bmpPic; RGBpixmap bmpPicHandler; bmpPic = imagePath + "/" + matterNames[i]; bmpPicHandler.readBMPFile(bmpPic); bmpPicHandler.setTexture(textureIndex[i]); } quad = gluNewQuadric(); gluQuadricTexture(quad, GL_TRUE); glEnable(GL_TEXTURE_2D); }
void inicializacao() { // inicialização de apontador para quádricas glQ = gluNewQuadric(); glFrontFace(GL_CCW); // Front faces defined using a counterclockwise rotation glDepthFunc(GL_LEQUAL); // Por defeito e GL_LESS glEnable(GL_DEPTH_TEST); // Use a depth (z) buffer to draw only visible objects // Face Culling para aumentar a velocidade glEnable(GL_CULL_FACE); //glCullFace(GL_BACK); // GL_FRONT, GL_BACK, GL_FRONT_AND_BACK // Define que modelo de iluminacao utilizar; consultar o manual de referencia glLightModelfv(GL_LIGHT_MODEL_AMBIENT, light_ambient); // define luz ambiente glLightModelf (GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE); glLightModeli (GL_LIGHT_MODEL_LOCAL_VIEWER, 1); // por defeito a cor de fundo e o preto // glClearColor(1.0,1.0,1.0,1.0); // cor de fundo a branco // declaracoes para a fonte luz GL_LIGHT0 glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular); glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, light0_kc); glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, light0_kl); glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, light0_kq); // declaracoes para a fonte luz GL_LIGHT1 glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient); glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse); glLightfv(GL_LIGHT1, GL_SPECULAR, light1_specular); glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, light1_kc); glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, light1_kl); glLightf(GL_LIGHT1, GL_QUADRATIC_ATTENUATION, light1_kq); // Permitir calculos de iluminacao glEnable(GL_LIGHTING); // "Acender" a fonte de luz GL_LIGHT0 glEnable(GL_LIGHT0); glEnable(GL_LIGHT1); // Declaracoe para shading glShadeModel(GL_SMOOTH); // GL_FLAT / GL_SMOOTH glPolygonMode(GL_FRONT, GL_FILL); // preence a face da frente dos poligonos //glPolygonMode(GL_FRONT, GL_LINE); // desenha arestas dos poligonos pixmap.readBMPFile("newspaper.bmp"); pixmap.setTexture(TX_NEWSPAPER); pixmap.readBMPFile("paisagem.bmp"); pixmap.setTexture(TX_LANDSCAPE); pixmap.readBMPFile("metal.bmp"); pixmap.setTexture(TX_METAL); pixmap.readBMPFile("wood_machine.bmp"); pixmap.setTexture(TX_WOOD_MACHINE); pixmap.readBMPFile("wood.bmp"); pixmap.setTexture(TX_WOOD_BELT); pixmap.readBMPFile("belt.bmp"); pixmap.setTexture(TX_BELT); pixmap.readBMPFile("floor.bmp"); pixmap.setTexture(TX_FLOOR); pixmap.readBMPFile("guillotine.bmp"); pixmap.setTexture(TX_GUILLOTINE); pixmap.readBMPFile("wall.bmp"); pixmap.setTexture(TX_WALL); glNewList(DP_GEOMETRY,GL_COMPILE); impostors(); myRoom(roomX,roomY,roomZ,windowYi,windowYf,windowZi,windowZf,doorXi,doorXf,doorY,curvedXHeight,curvedNSlices,curvedYSlices); glEndList(); glNewList(DP_MACHINE,GL_COMPILE); printingMachine(printingMachineX,printingMachineZ); glEndList(); glNewList(DP_ROBOT,GL_COMPILE); robot(robotY); glEndList(); }