Градиент в OpenGL

Всем-всем, добрый день!!!

Есть у меня одна простая задача, которая не решается почти год (не могу сказать, что я этим горжусь

:)

Нужно нарисовать КРУГ так, чтобы центр был светлым, а ближе к краям цвет плавно изменялся вплоть до черного (Рис.1)

Рис.1 Окружность залитая монохромным градиентом

И все хорошо если круг такого же размера как и на Рис.1, но как только размер увеличивается или же уменьшается контраст между центром и краями, то выплывают самые некрасивые вещи…

Во-первых появляются концентрические окружности (Рис.2).

Рис.2 Проявление концентрических окружностей

Во-вторых этот эффект ни чем не получается устранить: ни увеличением промежутков цветовой составляющей, ни изменением альфа-канала.

При тех же значениях - тот же эффект! Грустно

:(

Многие подумают что это похоже на 8 битное изображение. Тогда вопрос, как проверить какой режим OpenGL выбирает для рисования?

Заранее оговорюсь никаких шейдеров, текстур и тому подобного я не использую. Сейчас все рисуется так:

  1. Круг рисуется, как набор из GL_TRIANGLE_FAN;

  2. Центр окружности (вершина А треугольника АБЦ) имеет цвет glColor4fv(HI_color) - светлая середина;

  3. Вершины Б и Ц - точки на окружности, имеют цвет glColor4fv(LOW_color) - темные края;

  4. Градиент OpenGl рисует сам, как в Уроке 5.3 про треугольник со спектральным разложением.

Дело, мне кажется в том, что Джель “не понимает” цвета меньше значения 1/(byte)255 = (float)0.0039

ВОПРОС

Какой предел имеют параметры цвета в модели RGBA (сотые, тысячные, десятитысячные (.00, .000, .0000))? До какой степени можно дробить эти параметры, чтобы была видна разница в цвете?

И как можно обойти подобные ограничения по выводу цвета на экран?

ДЛЯ ЧЕГО ЭТО ВСЕ НУЖНО

Нужно изменяя либо цвет, либо прозрачность (альфа-канал) добиться плавного растворения фигуры в цвете фона сцены так, чтобы четкие переходы не были видны.