Читайте также:
|
|
Текстурные координаты, ассоциированные с вершиной, могут быть получены из текущих текстурных координат или быть сгенерированными согласно функции, зависящей от координат вершины. Генерацией текстурных координат управляет команда:
void glTexGen{ifd}(GLenum coord, GLenum pname, TYPE param),
void glTexGen{ifd}v(GLenum coord, GLenum pname, TYPE * param),
где coord – текстурная координата; pname – имя параметра; param – значения параметра pname (невекторная или векторная форма).
Аргумент coord должен быть одним из констант GL_S, GL_T, GL_R или GL_Q, указывающих соответствие принадлежащим координатам s, t, r и q соответственно. В первой форме команды param является константой, определяющей одно значение параметра текстурной генерации; во второй форме param, указатель на массив значений параметров.
Имя параметра может принимать следующие значения: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE и GL_EYE_PLANE (два последних параметра только для векторной формы команды).
Для GL_TEXTURE_GEN_MODE параметр param может принимать следующие значения:
- GL_OBJECT_LINEAR – параметр устанавливает функцию генерации текстурных координат
,
где x 0, y 0, z 0 и w 0 – мировые координаты вершины; p 1, p 2, p 3 и p 4 – коэффициенты уравнения плоскости, которые указываются в param с помощью pname, равного GL_OBJECT_PLANE;
- GL_EYE_LINEAR – параметр устанавливает функцию генерации
,
где ; xe, ye, ze и we – видовые координаты вершины; M – матрица видового преобразования. Коэффициенты уравнения плоскости указываются в param с помощью pname, равного GL_EYE_PLANE;
- GL_SPHERE_MAP. Здесь текстурные координаты s или t генерируются следующим образом:
,
где u – вектор от начала видовых координат к вершине; nf – текущая нормаль после преобразования в видовые координаты; – результирующий вектор отражения, исходя из которого, определяется соответствующая координата:
, ,
где .
Функция glEnable с параметром GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R или GL_TEXTURE_GEN_Q включает генерацию соответствующей текстурной координаты, функция
glDisable с теми же параметрами – отключает.
По умолчанию значения коэффициентов уравнения плоскости устанавливаются следующим образом: все pi для координат s, t, r и q равны нулю, кроме p 1 для координаты s и p 2 для t, которые равны единице. Текстурная генерация координат по умолчанию выключена для всех координат.
Дата добавления: 2015-07-10; просмотров: 130 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Взаимодействие текстуры с объектом | | | Функции OpenGL для задания текстурного изображения |