• GL_FOG_MODE - определяет уравнение, используемое при вычислении тумана. Параметр может принимать следующие три значения: GL_LINEAR,GL_EXP,GL_EXP2;

• GL_FOG_DENSITY - определяет плотность тумана, принимающее неотрицательное значение. Значение по умолчанию 1.0;

• GL_FOG_START - определяет ближнюю дистанцию от экрана начала тумана. Значение по умолчанию 0.0;

• GL_FOG_END - определяет дальнюю дистанцию от экрана конца тумана. Значение по умолчанию 1.0;

• GL_FOG_INDEX - определяет индекс цвета тумана. По умолчанию равно 0;

• GL_FOG_COLOR - функции glFogfv и gIFogiv принимают это значение, чтобы установить цвет тумана. По умолчанию цвет (0,0,0,0);

• GL_FOG_COORDINATE_SOURCE - определяет, использовать ли при наложении тумана глубину фрагмента или указанные координаты тумана. Параметр может принимать значение GL FRAGMENT DEPTH или GL FOG COORDINATE.

С помощью функций glEnable и gIDisable с аргументом GL_FOG можно включить и отключить обработку тумана. Туман затрагивает отображаемую геометрию, битовые изображения и блоки пикселей. Туман вычисляется путем смешивания цвета тумана с каждым отображаемым цветом пикселя (после наложения текстуры) с использованием коэффициента f. Формула вычисления f зависит от типа тумана. Для GLJ-INEAR тумана формула имеет следующий вид:

f=(end-z)/(end-start), для GL_EXP тумана:

f_g(-density*z)

для GL_EXP2 тумана:

f=e(-densi1y*z?

Независимо от режима тумана, f сжимается к диапазону [0,1] после вычисления. Если используется RGBA режим, цвет компоненты вычисляется по следующей формуле:

Cnr=f*Cr+(1-f)*Cf.

В индексном режиме ir вычисляется по следующей формуле:

ln=l+(1-f)*ir

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

gIGet с аргументом GL_FOG_COLOR; gIGet с аргументом GL_FOG_INDEX; gIGet с аргументом GL_FOG_DENSITY; gIGet с аргументом GL_FOG_START; gIGet с аргументом GL_FOG_END; gIGet с аргументом GL_FOG_MODE; gllsEnabled с аргументом GL_FOG.

Смотри также: gIFogCoord.

gIFogCoord

Устанавливает текущую координату тумана для вершины.

void glFogCoordf

(

GLfloat z; // координата тумана ) ; Варианты: FogCoord{fd}, FogCoord{fd}v.

Смотри также: gIFog.

gIFogCoordPointer

Определяет массив координат тумана.

void gIFogCoordPointer (

GLenum type, // тип координат

GLsizei stride, // смещение

const GLvoid *pointer // указатель на массив

) ; Подробнее о параметрах, type

Тип координат в массиве pointer. Может принимать одно из следующих значений: GL_FLOAT или GL_DOUBLE. stride

Смещение в байтах между соседними координатами.

Дпя испопьзования массива нужно вызвать функцию

glEnableClientState с аргументом GL_FOG_COORDINATE_ARRAY. Когда массив опредепяется, то данные о массиве сохраняются на клиентской стороне, и поэтому эти значения непьзя сохранить и восстановить функциями gIPushAttrib и gIPopAttrib. Резупьтат вызова функции внутри пары glBegin/glEnd не опредепен.


⇐ вернуться назад | | далее ⇒