OpenGL градиент для прямоугольника не работает - PullRequest
0 голосов
/ 23 февраля 2012

Я создал приложение OpenGL с Qt для визуализации векторного поля магнитного поля. Векторное поле отображается стрелками с цветным кодом, указывающим их значение. Теперь проблема состоит в том, что я хочу создать ключ для карты векторного поля, указывающий, какое значение имеют значения самого высокого и самого низкого цветов, например, красный цвет равен 10 нТл, а зеленый - 0,1 нТл.

Масштабирование цветов выполнено (благодаря окраске HSV, благодаря Qt, стало проще), но мне все еще нужно создать прямоугольник в верхнем правом углу с градиентом, чтобы использовать его в качестве ключа для графика 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 Ответ

4 голосов
/ 23 февраля 2012

Попробуйте при настройке OpenGL:

glShadeModel(GL_SMOOTH)
...