continuar
Na seção anterior ensinei como desenhar triângulos e quadriláteros. Esta seção ensinará como adicionar 2 tipos diferentes de sombreamento a triângulos e quadriláteros. Use coloração plana para pintar o quadrilátero com uma cor fixa. Use a coloração Suave para misturar as diferentes cores dos três vértices do triângulo para criar uma bela mistura de cores.
Continue a modificar o glDraw na seção anterior.
Procedimento glDraw();
Começar
glClear(GL_COLOR_BUFFER_BIT Ou GL_DEPTH_BUFFER_BIT); // Limpa tela e buffer de profundidade;
glLoadIdentity(); //Redefinir a matriz de observação do modelo atual
glTranslatef(-1.5, 0.0, -6.0); // Move para a esquerda 1,5 unidades e para a tela 6.0);
glBegin(GL_TRIANGLES); // Desenha triângulos
//glColor3f(r,g,b). Os três parâmetros entre parênteses são os componentes das cores vermelho, verde e azul em ordem.
//O intervalo de valores pode ser de 0,0 a 1,0. Semelhante ao comando limpar plano de fundo da tela mencionado anteriormente.
//Definimos a cor para vermelho (vermelho puro, sem verde, sem azul).
//A próxima linha de código define o primeiro vértice do triângulo (o vértice superior do triângulo),
//E use a cor atual (vermelho) para desenhar. A partir de agora todos os objetos desenhados serão coloridos em vermelho,
//Até mudarmos de vermelho para outra coisa.
glColor3f(1.0, 0.0, 0.0); //Define a cor atual para vermelho
glVertex3f(0.0, 1.0, 0.0); // vértice superior
//O primeiro vértice vermelho foi definido.
//Em seguida definimos o segundo vértice verde. O vértice inferior esquerdo do triângulo é colorido em verde.
glColor3f(0.0, 1.0, 0.0); //Define a cor atual para verde
glVertex3f(-1.0, -1.0, 0.0); // canto inferior esquerdo
//O vértice inferior direito do triângulo. Definir cor para azul
//Depois que glEnd() aparecer, o triângulo será preenchido.
//Mas como cada vértice tem uma cor diferente, parece que a cor está esguichando de cada canto,
//E se encontram exatamente no centro do triângulo, as três cores se misturam. Este é um sombreamento suave.
glColor3f(0.0, 0.0, 1.0); //Define a cor atual para azul
glVertex3f(1.0, -1.0, 0.0); // Inferior direito
glEnd(); //Fim do desenho do triângulo
glTranslatef(3.0, 0.0, 0.0); // Desloca 3 unidades para a direita;
//Agora desenhamos um quadrado colorido monotonicamente - roxo.
//A coisa mais importante a lembrar é que tudo o que é desenhado após definir a cor atual é a cor atual.
//Todo projeto que você criar a partir de agora usará cores.
//Mesmo quando o mapeamento de textura é totalmente utilizado,
//glColor3f ainda pode ser usado para ajustar o tom da cor da textura.
//Espere..., vamos conversar sobre isso mais tarde.
//(Haha, o livro original é azul, mas eu gosto de roxo)
glBegin(GL_QUADS); // Desenha um quadrado
glColor3f(0.6, 0.2, 2.0); //Define a cor atual para roxo
glVertex3f(-1.0, 1.0, 0.0); // Canto superior esquerdo
glVertex3f(1.0, 1.0, 0.0); // Canto superior direito
glVertex3f(1.0, -1.0, 0.0); // canto inferior esquerdo
glVertex3f(-1.0, -1.0, 0.0); // Inferior direito
glEnd(); // Fim do desenho do quadrado
Fim;