矩形的OpenGL渐变不起作用

时间:2012-02-23 13:10:18

标签: c++ opengl colors key gradient

我用Qt创建了一个OpenGL应用程序来可视化磁场的矢量场。矢量场通过箭头可视化,颜色代码表示它们的值。现在的问题是我想为矢量场图制作一个键,指示最高和最低颜色值的值,例如,红色是10 nT,绿色是0.1 nT。

colurs的缩放完成(通过HSV着色,感谢Qt,让生活变得更轻松),但是我仍然需要在右上角创建一个带有渐变的reqtangle,以将其用作情节的关键字I'我正在做。

我使用了以下代码:

http://en.wikibooks.org/wiki/OpenGL_Programming/Basics/Color

如下:

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glBegin(GL_QUADS);
    glColor3d(simulationSettings->hotColour.redF(), simulationSettings->hotColour.greenF(), simulationSettings->hotColour.blueF());
    glVertex2d(-0.75, 0.75);
    glColor3d(simulationSettings->coldColour.redF(), simulationSettings->coldColour.greenF(), simulationSettings->coldColour.blueF());
    glVertex2d(-0.75, -0.75);
    glColor3d(simulationSettings->coldColour.redF(), simulationSettings->coldColour.greenF(), simulationSettings->coldColour.blueF());
    glVertex2d(0.75, -0.75);
    glColor3d(simulationSettings->hotColour.redF(), simulationSettings->hotColour.greenF(), simulationSettings->hotColour.blueF());
    glVertex2d(0.75, 0.75);
    glEnd();

但它不起作用。我甚至试图复制代码,我得到的只是屏幕中间的黄色方块。

我需要在OpenGL配置中更改什么才能启用颜色渐变?

1 个答案:

答案 0 :(得分:4)

设置OpenGL时尝试此操作:

glShadeModel(GL_SMOOTH)