Как раскрасить квадроциклы в синий цвет без всякого смысла цвет в синем؟
Здравствуйте я использую glut и opengl с c++ , у меня есть дом я хочу нарисовать синие квадроциклы в нем моя проблема когда я рисую квадроциклы все смысловые цвета в синем цвете , так как я могу раскрасить только квадроциклы в синий цвет и мешает раскрасить все смысловые цвета в синий цвет что я делаю неправильно как удалить синий цвет из всех смысловых и цветовых только мой квадроцикл? мой попробовать:
void drawSquare1() { glBegin(GL_QUADS); glColor3d(1,0,0); glVertex3f(-0.5,-0.5,-0.5); glColor3d(1,1,0); glVertex3f(0.5,-0.5,-0.5); glColor3d(1,1,1); glVertex3f(0.5,0.5,-0.5); glColor3d(0,1,1); glVertex3f(-0.5,0.5,-0.5); glEnd(); } void render(void) // Our Rendering Is Done Here { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer glLoadIdentity(); // Reset The View GLfloat xtrans = -g_xpos; GLfloat ztrans = -g_zpos; GLfloat ytrans = -g_ypos; if(g_yrot > 360) g_yrot -= 360; else if(g_yrot < 0) g_yrot += 360; GLfloat sceneroty = (360.0f - g_yrot); int numpolygons; glRotatef(g_lookupdown,1.0f,0,0); glRotatef(sceneroty,0,1.0f,0); glTranslatef(xtrans, ytrans, ztrans); numpolygons = g_sector1.numpolygons; for (int loop_m = 0; loop_m < numpolygons; loop_m++) texture_object(loop_m); gluQuadricDrawStyle(my_shape[0],GLU_FILL); glBindTexture(GL_TEXTURE_2D, textures[1].texID); glScalef(0.1,0.1,0.1); glTranslatef(0.78,14.3,-4.2); gluSphere(my_shape[0], 1.0,50,50); gluQuadricDrawStyle(my_shape[1],GLU_FILL); glBindTexture(GL_TEXTURE_2D, textures[8].texID); glTranslatef(-20,0,0); gluSphere(my_shape[1], 1.0,50,50); gluQuadricDrawStyle(my_shape[2],GLU_FILL); glBindTexture(GL_TEXTURE_2D, textures[22].texID); glTranslatef(40,0,0); gluSphere(my_shape[2], 1.0,50,50); glMatrixMode(GL_PROJECTION); // Select The Projection Matrix glPushMatrix(); // Store The Projection Matrix glLoadIdentity(); // Reset The Projection Matrix glOrtho(-10,window_width,0,window_height,-10,10); // Set Up An Ortho Screen glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix drawSquare1(); glMatrixMode(GL_PROJECTION); // Select The Projection Matrix glPopMatrix(); // Restore The Old Projection Matrix //glPushMatrix(); drawSquare1(); //glPopMatrix(); glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix glutSwapBuffers ( ); } int main(int argc, char** argv) // Main Function For Bringing It All Together. { //cout << "Hello World!" << endl; //cin.get(); glutInit(&argc, argv); // GLUT Initializtion glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE); // (CHANGED) if (g_gamemode) { glutGameModeString("640x480:16"); // Select The 640x480 In 16bpp Mode if (glutGameModeGet(GLUT_GAME_MODE_POSSIBLE)) glutEnterGameMode(); // Enter Full Screen else g_gamemode = false; // Cannot Enter Game Mode, Switch To Windowed } screen_width = glutGet(GLUT_SCREEN_WIDTH); screen_height = glutGet(GLUT_SCREEN_HEIGHT); window_width = screen_width/1.4; window_height = screen_height/1.4; if (!g_gamemode) { glutInitWindowSize(window_width,window_height); // Window Size If We Start In Windowed Mode glutInitWindowPosition((screen_width-window_width)/2,(screen_height-window_height)/2); glutCreateWindow("Frank's 3-D House"); // Window Title } init(); glutIgnoreKeyRepeat(true); // Disable Auto Repeat (NEW) // glutKeyboardFunc(myKey); // register the key handler. glutDisplayFunc(render); // Register The Display Function glutReshapeFunc(reshape); // Register The Reshape Handler glutKeyboardFunc(keyboard); // Register The Keyboard Handler //glRasterPos2f(lineMargin, currentHight); // set the cursor to the initial position. glutSpecialFunc(special_keys); // Register Special Keys Handler glutSpecialUpFunc(special_keys_up); // Called When A Special Key Released (NEW) glutIdleFunc(game_function); // Process User Input And Does Rendering (CHANGED) glutMouseFunc(mouse) ; glutMainLoop(); // Go To GLUT Main Loop return 0;
Что я уже пробовал:
моя попытка выше, так что любое тело может помочь ?