Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Пример. glTexCoord2s(0.5, 1.0) – точка с координатами s = 0.5, t = 1.0, r = 0, q = 1;

Читайте также:
  1. Второй пример.
  2. Другой пример.
  3. Еще пример.
  4. Клинический пример.
  5. Клинический пример.
  6. Образовательные технологии, используемые в системе дополнительного образования детей. Их характеристика. Пример.
  7. Объясните детям -- ОПАСНОСТЬ наркотиков, ВРЕД -- пьянства и курения, ВРЕД сквернословия и сами -- не подавайте такой пример.

glTexCoord2s(0.5, 1.0) – точка с координатами s = 0.5, t = 1.0, r = 0, q = 1;

glTexCoord3d(0.0, 0.0, 2.0) – точка с координатами s = 0.0, t = 0.0, r = 2.0, q = 1.0;

glTexCoord4f(0.0, 1.0, 0.5, 2.0) – точка с координатами s = 0.0, t = 1.0, r = 0.5, q = 2.0;

GLdouble dvect[3]={0.0, 2.0, 1.0};

glTexCoord3dv(dvect) – точка с координатами s = 0.0, t = 2.0, r = 1.0, q = 1.0.

 

Функция glTexCoord2*(s, t) присваивает текущим текстурным координатам значение (s, t), и они привязываются к последовательно определяемым вершинам. Обычно каждому вызову glVertex*() предшествует вызов функции glTexCoord2*() – каждая вершина получает новую пару текстурных координат. Например, для того, чтобы определить треугольную грань и наложить на нее текстуру, как на рис. 11.3, посылаем в OpenGL три текстурные координаты и три трехмерные точки:

glBegin(GL_TRIANGLES);

glTexCoord2f(0, 1); glVertex3f(1, 1, 1);

glTexCoord2f(0, 0); glVertex3f(0, 0, 0);

glTexCoord2f(1, 0); glVertex3f(1, 1, 0);

glEnd();

 

Привязывание к каждой эквивалентно описанию в текстурном пространстве треугольника P с тем же числом вершин, что имеет F. Обычно треугольник P имеет ту же форму, что и F; тогда часть текстуры, лежащая внутри треугольника P, без искажений накладывается на весь треугольник F. В тех случаях, когда треугольники P и F имеют одну и ту же форму, преобразование, несомненно, является аффинным: это масштабирование, сопровождающееся, возможно, поворотом и смещением.

На рис. 11.4 показан общий случай, когда четыре угла текстурного квадрата связываются с четырьмя углами прямоугольника. (На 3 D -грани отмечены текстурные координаты (s, t), связанные с каждым углом.) В данном примере текстура является растровым изображением размером 512/256 пикселей, и она накладывается на прямоугольник с форматным соотношением 512/256, вследствие чего рисунок не искажается. (Отметим, что текстурные координаты s и t по-прежнему изменяются от 0 до 1.)

На рис. 11.5 показано использование текстурных координат, при котором из текстуры делается мозаика – путем повторения этой текстуры. Для этого используются текстурные координаты, лежащие вне интервала [0,1]. Когда в подпрограмме визуализации встречаются значения s и t, лежащие вне единичного квадрата, например s = 2,5, то подпрограмма игнорирует целую часть и использует только дробную часть: 0,5.

По умолчанию OpenGL именно так выкладывает мозаику из текстуры; однако при необходимости вместо этого можно «зафиксировать» данные текстуры.

Таким образом, пара координат (s, t) посылается в графический конвейер вместе с каждой вершиной грани.

 


Дата добавления: 2015-07-10; просмотров: 102 | Нарушение авторских прав


Читайте в этой же книге: Взаимодействие текстуры с объектом | Генерация текстурных координат | Функции OpenGL для задания текстурного изображения | Функции OpenGL для установки параметров текстуры | Пример программы с применением текстурирования |
<== предыдущая страница | следующая страница ==>
Наложение текстуры на грань| Визуализация текстуры

mybiblioteka.su - 2015-2024 год. (0.006 сек.)