Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Параметры наложения текстуры




Из параметров визуализации рассмотрим установку параметров окружения и фильтрации пикселов. Параметры окружения устанавливаются функцией glTexEnv[if]. Действие ее состоит в формировании функции преобразования цветов источника света, цвета образа текстуры, цвета вершин примитивов и цвета конфигурации текстуры для получения результирующего цвета поверхности с наложенной на нее текстурой. Функция существует в двух вариантах в зависимости от входных параметров. Рассмотрим описание для вещественных входов:

 

void glTexEnvfv(

GLenum target,

GLenum pname,

const GLfloat *params

);

 

Параметр target всегда принимает значение GL_TEXTURE_ENV. Параметр pname задает один из двух вариантов GL_TEXTURE_ENV_MODE или GL_TEXTURE_ENV_COLOR.

В случае когда pname= GL_TEXTURE_ENV_MODE доступны три варианта вызова функции:

glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL),

glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND),

glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE).

 

Когда pname=GL_TEXTURE_ENV_COLOR, то третий параметр представляет собой указатель на четырехкомпонентный массив цвета:

 

glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, @CColor),

 

где переменная описана как

 

var

CColor: array[1..4]of Glfloat;

 

По умолчанию для этих команд установлены значения: GL_MODULATE для режима GL_TEXTURE_ENV_MODE и цвет (0,0,0,0) для режима GL_TEXTURE_ENV_COLOR.

Далее в таблице, в соответствии с [15], приводятся варианты формирования результирующей функции преобразования с помощью команды glTexEnv.

Количество цветовых компонент GL_MODULATE GL_DECAL GL_BLEND
  Cv=LtCf нет Cv=(1-Lt)Cf+LtCc Av=Af
  Cv=LtCf Av=AfAt Нет Cv=(1-Lt)Cf+LtCc Av=AfAt
  Cv=CtCf A=A Cv=Ct Av=Af нет
  СvtСf Av=AfAt Cv=(1-At)Cf+AtCt Av=Af нет

 

Здесь A – значение альфа канала; L – яркость. Для двухкомпонентных изображений цвет состоит из компонент яркости L и альфа составляющей A. Трехкомпонентный цвет в качестве яркости использует три цветовые компоненты C, а четырехкомпонентный цвет использует C и A.

Индексы в формулах: f – фрагмент, на который накладывается текстура, t – образ текстуры, c – цвет конфигурации текстуры, v – результирующее значение.

Из практических экспериментов можно заметить, что для обычных матовых поверхностей хороший визуальный эффект получается использованием режима GL_MODULATE. Простой режим отображения текстуры с эффектом полупрозрачности можно получить в режиме GL_DECAL. В режиме GL_BLEND можно получить эффект негатива изображения.

Параметры масштабирования текстуры задаются функцией glTexParameter[if].

Самый простой и быстрый но не самый реалистичный способ отображения при масштабировании задается комбинацией параметров в режиме GL_NEAREST:

 

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) –

 

для масштабирования в сторону увеличения текстуры, и

 

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) -

 

для масштабирования в сторону уменьшения. Более приемлемые результаты с точки зрения сглаживания цветов соседних пикселов при масштабировании текстуры дает вариант линейного сглаживания:

 

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

и

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

 

В режиме GL_LINEAR цвет пиксела текстуры получается как среднее арифметическое четырех соседних пикселов. Также возможны режимы с использованием битовых карт уровней детализации текстуры, которые задаются функцией gluBuild2DMipmaps.


Список литературы

1. Аммерал Л. Машинная графика на языке С. В 4-х томах – М: Сол. Систем, 1992.

2. Боресков А.Б., Шикина Е.В., Шикина Г.Е., Компьютерная графика: первое знакомство. – М.: Финансы и статистика, 1996.

3. Вэн-Дэм А., Фоли Дж. Основы интерактивной машинной графики.Т.1-2 – М.: Мир, 1985.

4. Гилой, Интерактивная машинная графика. - М.: Мир, 1981.

5. Грайс Графические средства персональных компьютеров. – М.: Мир, 1980.

6. Жикин Е.В., Боресков А.В. Компьютерная графика. Динамика, реалистические изображения. – М.: Диалог-МИФИ, 1995, 1997.

7. Компьютер обретает разум. Пер. с англ. Под ред. В.Л.Стефанюка – М.: Мир, 1990.

8. Ласло М. Вычислительная геометрия и компьютерная графика на С++. М.: Бином, 1997.

9. М.Маров, 3D Studio MAX 2.5: справочник – СПб: «Питер», 1999. – 672 с.

10. А.Ла Мот, Д.Ратклифф и др. Секреты программирования игр/ Перев с англ. – СПб: Питер, 1995. – 720 с.

11. Ньюмен, Спрулл, Основы интерактивной машинной графики. - М.: Мир, 1976.

12. Ф. Препарата, М. Шеймос, Вычислительная геометрия: Введение. - М. Мир, 1989.

13. Роджерс Алгоритмические основы машинной графики. – М.: Мир, 1989.

14. Роджерс, Адамс, Математические основы машинной графики. - М. Машиностроение, 1985.

15. Ю.Тихомиров, Программирование трехмерной графики - С.-Пб.: БХВ‑Санкт-Петербург,1999.

16. Н. Томпсон, Секреты программирования трехмерной графики для Windows 95. Перев с англ. – СПб: Питер, 1997. – 352 с.

17. А.Фокс, М. Пратт, Вычислительная геометрия - М., Мир, 1982.

18. А.В.Фролов, Г.В.Фролов, Графический интерфейс GDI в MS WINDOWS – М.: Диалог-МИФИ, 1994.

19. Хонич А. Как самому создать трехмерную игру. – М.: МИКРОАРТ, 1996.

20. Энджел Й. Практическое введение в машинную графику. – М.: Радио и Связь, 1984.

21. А.Б.Боресков, Е.В.Шикина, Г.Е.Шикина, Компьютерная графика: первое знакомство, Под ред. Е.В.Шикина - М.: Финансы и статистика, 1996.

22. Краснов М, OpenGL. Программирование трехмерной графики на Delphi. – СПб.: БХВ – Петербург, 2000.

23. Краснов М., DirectX. Графика в проектах Delphi. – СПб.: БХВ – Петербург, 2001.

24. А.Ла Мот, Д.Ратклифф и др. Секреты программирования игр/ Перев с англ. – СПб: Питер, 1995. – 720 с.

25. М.Маров, 3D Studio MAX 2.5: справочник – СПб: «Питер», 1999. – 672 с.

26. Ю.Тихомиров, Программирование трехмерной графики. - С.-Пб.: БХВ‑Санкт-Петербург,1999.

27. Н. Томпсон, Секреты программирования трехмерной графики для Windows 95. Перев с англ. – СПб: Питер, 1997. – 352 с.

28. Стен Трухильо, Графика для Windows средствами Direct Draw. - С.-Пб: Питер Ком, 1998 – 320 с.

29. А.В.Фролов, Г.В.Фролов, Графический интерфейс GDI в MS WINDOWS, Москва, Изд-во Диалог-МИФИ, 1994Майкл Ласло, Вычислительная геометрия и компьютерная графика на С++, - М.: Бином, 1997.

30. А.Хонич, Как самому создать трехмерную игру. - М.: МИКРОАРТ, 1996.

31. Джим Адамс, DirectX: продвинутая анимация. – М.: КУДИЦ-ОБРАЗ, 2004.

32. Пол Стид, Анимация персонажей для игр в реальном времени. – М.: ДМК Пресс, М, 2004.


* В этом определении при замене, скажем, оси Oz на ось Ox остальные оси заменяются по правилу циклической перестановки, то есть Oy заменится на Oz, а Ox заменится на Oy. Всего здесь циклических перестановок может быть три: (x,y,z)®(y,z,x)®(z,x,y).

* Более строгое определение однородных координат дается в разделе линейной алгебры «Проективные пространства».





Поделиться с друзьями:


Дата добавления: 2016-10-30; Мы поможем в написании ваших работ!; просмотров: 442 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

2484 - | 2178 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.