glFog - вказує параметри димки.

C специфікація

void glFogf (GLenum pname,
             GLfloat param) ;
 
void glFogi (GLenum pname,
             GLint param) ;

void glFogfv (GLenum pname,
              const GLfloat * params) ;
 
void glFogiv (GLenum pname,
              const GLint * params) ;

Параметри

pname - вказує однозначний параметр димки. Приймаються наступні значення: GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX і GL_FOG_COORD_SRC. param - вказує значення, яке буде встановлено для параметра pname. params - вказує значення або значення які будуть встановленими для опції, яка вказана через параметр pname. GL_FOG_COLOR вимагає масив з чотирма значеннями. Усі параметри приймаються масив, який містить тільки одне значення.

Опис

За умовчанням димка являється вимкненою. Коли увімкнена, димка впливає на растеризовану геометрію, карти бітів і піксельні блоки, але не на операції очищення буферу. Для увімкнення чи вимкнення димки, використовуйте glEnable i glDisable з аргументом GL_FOG. Команда glFog присвоює значення або значення у параметра params для опцій димки вказаної через pname. Наступні значення приймаються для pname:
  • GL_FOG_MODE - параметр params являється одним цілим або дійсним числом, яке вказує рівняння, яке повинно бути використаним для обчислення коефіцієнт змішування димки, f. Приймаються три символічні константи: GL_LINEAR, GL_EXP і GL_EXP2. Обчислення відповідають до цих символічних констант визначені нижче. Значення за умовчанням для цього параметру являється GL_EXP.
  • GL_FOG_DENSITY - параметр params містить одне ціле або дійсне число, яке вказує густину. Густина димки використовується у обох експоненціальних обчисленнях. Приймаються тільки позитивні значення. Значення за умовчанням 1.
  • GL_FOG_START - параметр params являється одним цілим або дійсним значенням, яке визначає початок - найближчу позицію, яка використовується у лінійному обчисленні димки. Значення за умовчанням 1.
  • GL_FOG_INDEX - параметр params являється одним цілим або дійсним числом, яке визначає if - індекс кольору димки. Значення за умовчанням 0.
  • GL_FOG_COLOR - параметр params містить чотири цілих або дійсних значень, які визначають Cf - колір димки. Цілі значення лінійно перетворюються так, що найбільше позитивне значення відповідає 1.0, і найбільш негативне значення перетворююється на -1.0. Дійсні значення беруться безпосередньо. Після перетворення, усі компоненти кольору обрізаються до проміжку [0, 1]. Значення кольору димки за умовчанням являється (0, 0, 0, 0).
  • GL_FOG_COORD_SRC - параметр params містить одне з наступних символічних констант: GL_FOG_COORD або GL_FRAGMENT_DEPTH. GL_FOG_COORD вказує, що поточна координата димки повинна використовуватися у якості значення відстані у обчисленні кольору димки. GL_FRAGMENT_DEPTH вказує, що поточна глибина фрагменту повинна використовуватися у якості значення відстані у обчисленні димки.
Димка змішує колір димки з кожним рестеризованим пост-текстурним фрагментом пікселя, використовуючи коефіцієнт змішування f. Коефіцієнт f обчислюється у один з трьох шляхів, в залежності від режиму димки. Нехай c буде або відстанню у координатах від оригіналу (у випадку коли GL_FOG_COORD_SRC являється GL_FRAGMENT_DEPTH) або поточна координата димки (у випадку GL_FOG_COORD_SRC являється GL_FOG_COORD). Обчислення для GL_LINEAR являється f = end - c end - strart Обчислення для GL_EXP димки являється f = e - density * c Рівняння для GL_EXP2 димки являється f = e - density * c 2 Не зважаючи на режим димки, f обрізається у проміжок [0, 1] після її обчислення. Тоді, якщо OpenGL міститься у режимі RGBA, компоненти кольору фрагменту червоний, зелений і синій, представлені за допомогою Cr, замінюються на Cr`` = f * Cr + 1 - f *Сf Димка не впливає на компонент прозорості фрагмента. У індекс-колірному режимі, індекс кольору фрагмента ir замінюється на ir`` = ir + 1 - f * if

Нотатки

GL_FOG_COORD_SRC доступний тільки якщо версія OpenGL є 1.4 або вище.

Помилки

GL_INVALID_ENUM генерується якщо параметр pname не містить допустимого значення, або якщо pname містить GL_FOG_MODE і параметр params не містить допустимого значення. GL_INVALID_VALUE генерується якщо параметр pname являється GL_FOG_DENSITY і параметр params містить негативне значення. GL_INVALID_OPERATION генерується якщо glFog викликається між викликами glBegin і відповідного glEnd.

Пов'язані параметри

glIsEnabled з аргументом GL_FOG glGet з аргументом GL_FOG_COLOR glGet з аргументом GL_FOG_INDEX glGet з аргументом GL_FOG_DENSITY glGet з аргументом GL_FOG_START glGet з аргументом GL_FOG_END glGet з аргументом GL_FOG_MODE

Перегляньте також

glEnable, glFogCoord Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glFog.xml