8.5.5. Обоснование линейной интерполяции текстуры при отсечении При отсечении грани границами отображаемого объема часто создаются новые вершины. В этом случае мы должны приписать каждой из этих вершин текстурные координаты. Пусть на части / пути от вершины Л к вершине В на грани возникла новая вершина V. Предположим далее, что вершине А соответствуют текстурные координаты (sA, tA), а вершине В - (sB, tB). Докажите, что если текстура будет «наклеиваться» на плоскую грань, то вершине Уесть смысл приписать текстурные координаты (1еф(хд, sB,f), 1егр(гд, Сд,/)).

8.5.6. Затраты вычислительных ресурсов на гиперболическую интерполяцию Сравните объем вычислений, требующийся для гиперболической и линейной интерполяции текстурных координат. Считайте при этом, что умножение и деление требует в 10 раз больше времени, чем сложение и вычитание.

8.5.3. Что регулирует текстура?

Как величины текстурного отображения применяются при вычислении визуализации? Мы рассмотрим три типичных способа использования этих величин для достижения различных визуальных эффектов. Мы проделаем это для простого случая вычисления яркости серого цвета из равенства (8.5). Если же изображение цветное, то такие вычисления выполняются раздельно для красного, зеленого и синего компонентов.

8.5. Добавление текстуры к граням Создание светящегося объекта Этот метод наиболее прост с вычислительной точки зрения. Видимая интенсивность / устанавливается равной значению текстуры в каждой точке (с точностью до постоянного множителя):

I- texture (s, t).

В этом случае кажется, что объект испускает свет, или светится. Меньшие значения текстуры испускают меньше света, а большие - больше света. Никаких дополнительных вычислений освещения не требуется. Для цветного света компоненты красного, зеленого и синего цветов вычисляются отдельно; например, красный компонент Ir = texturer(s, t). Для текстурирования такого типа в OpenGL предусмотрена следующая команда1:

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE. GL_REPLACE);

⇐ Предыдущая| |Следующая ⇒