簡體   English   中英

OpenGL:如何平滑繪制三角形或多邊形

[英]OpenGL: How to draw a triangle or polygon smoothly

我正在使用多邊形模式繪制一個三角形,如下所示:

drawScene(void)
{
    glPopMatrix();
    glEnable(GL_POLYGON_SMOOTH);
    glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glShadeModel(GL_POLYGON_SMOOTH);

    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

    glBegin(GL_POLYGON);
        glVertex3f(x,y,z);
        glVertex3f(x1,y1,z1);
        glVertex3f(x2,y2,z2);
    glEnd();
    glPopMatrix();
}

頂點(x,y,z,x1,y1,z1,x2,y2,z2)使用sin()和cos()以及im傳遞到drawScene()方法進行計算。 基於sin()和cos()值旋轉三角形。 我的問題是,繪制三角形時它不平滑。 也就是說,三角形的外部沒有平滑線。 在上面的代碼中,如果我使用GL_LINE而不是GL_FILL,則三角形看起來很平滑。 但是,我需要一個實心三角形。

根據圖形卡的不同,抗鋸齒功能可能不可用,可能被禁用或受應用程序控制。

例如,從圖形卡查看此配置頁:

英偉達CP

因此,在這種情況下,由於用戶選擇了,所以任何3D應用程序都將被別名,並且您不能/不應該選擇該選項。 檢查您的圖形卡控制面板/設置,以查看其是否具有此選項(根據其使用時間,它可能不支持抗鋸齒)。

此外,請花一些時間為您的問題寫一個描述性, 准確的標題,否則這里沒人會引起您的注意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM