void czytajObraz(const char obrazchar[], GLuint &nazwaTekstury)
{
	RGBpixmap pix;
	pix.readBMPFile(obrazchar, false);
	pix.setTexture(nazwaTekstury);
	return;
}
示例#2
0
void setTextures(int num)
{
    RGBpixmap pix;
    for (int i = 0; i < num; i++)
    {
        pix.readBMPFile(to_string(i)+".bmp", false);
        pix.setTexture(textures[i]);
    }
}
示例#3
0
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);
}
示例#4
0
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();
}