使用opengl为通用多边形应用纹理的通用方法

时间:2014-01-16 01:03:47

标签: c++ opengl textures render polygon

有没有人知道将 glTexCoord2f 应用于通用多边形的通用方法? 对于圆形,三角形和四边形,它非常直观,但多边形是一团糟。

例如,我的等边三角形渲染是:

void Triangulo::RenderizaPontos(){
    glColor3f(red, green, blue);
    glLineWidth(grafite);

    glBegin(GL_TRIANGLES);
        glTexCoord2f(0.0f, 0.0f); glVertex2f(cantoesq.x, cantoesq.y);
        glTexCoord2f(0.5f, 1.0f); glVertex2f(cantoesq.x + base , altura + cantoesq.y);
        glTexCoord2f(1.0f, 0.0f); glVertex2f(cantoesq.x + 2*base, cantoesq.y);

    glEnd();
}

问题在于通用多边形。他的课程如下:

Poligno::Poligno(std::deque<Ponto> pontos):
ponto(pontos)
{
    prox = NULL;
    grafite = 1.0;
}

void Poligno::RenderizaPontos(){
    int tamanho, i;

    tamanho = ponto.size();

    glColor3f(red, green, blue);
    glLineWidth(grafite);

    glBegin(GL_POLYGON);
    for(i = 0; i < tamanho; i++)
        glVertex2f(ponto[i].x, ponto[i].y);  
    glEnd();
}

有什么想法吗?

0 个答案:

没有答案