Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > перекрытие затекстурированного объекта


Автор: shtuceron 25.6.2011, 20:09
Вечер добрый, подскажите, почему в данном коде происходит цветовое перекрытие затекстурированного объекта цветом обводки его линиями...
Код

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glEnable(GL_TEXTURE_2D);
    
    glBegin(GL_QUADS);    
        glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f);
        glTexCoord2f(0.0f,-1.0f); glVertex3f(0.0f, texture->height, 0.0f);
        glTexCoord2f(1.0f,-1.0f); glVertex3f(texture->width, texture->height, 0.0f);
        glTexCoord2f(1.0f, 0.0f); glVertex3f(texture->width, 0.0f, 0.0f);
    glEnd();
    
        glDisable(GL_TEXTURE_2D);
    
    glColor3f(1.0f, 0.0f, 0.0f);  // Этим цветом перекрывается текстура.
    
    glLineWidth(2.0f);
    
    glBegin(GL_LINE_LOOP);
    glVertex3f(0.0f, 0.0f, 0.0f);
    glVertex3f(0.0f, texture->height, 0.0f);
    glVertex3f(texture->width, texture->height, 0.0f);
    glVertex3f(texture->width, 0.0f, 0.0f);
    glEnd();
    
    glFlush();


Автор: Rickert 27.6.2011, 08:56
Перед выводом объекта на экран, необходимо выставлять цвет в (1.0; 1.0; 1.0). А то получается что вы первый раз вывели его белым цветом, потом цвет поменяли для линий, и опять выводите объект, но уже, естественно, красным цветом.

Автор: shtuceron 27.6.2011, 21:09
Спасибо, все заработало)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)