Искажения образа текстуры позволяют добиться разнообразных эффектов
Искажения образа текстуры позволяют добиться разнообразных эффектов
Для движения узлов поверхности необходимо менять значения элементов массива контрольных точек, после чего вычислитель также необходимо "перезаряжать".
Для нанесения текстуры иа поверхность требуется вспомогательный массив с координатами текстуры, а также включение специального режима. В программе рисование объектов сводится к одной строке: glEvalMesh2 [GL_FILL, 0, 20, 0, 20); // вывод поверхности.
В обработчике таймера пересчитываются координаты опорных точек поверхности, а также меняются координаты текстуры (для искажения образа):
А := А + 0.5; // увеличиваем управляющую переменную lnit_surface; // пересчитываем координаты опорных точек // ! — зарядить вычислитель новыми данными
glMap2f [GL_MAP2_VERTEX_3, 0, 1, 3, 17, 0, 1, 51, 17, Sctrlpoints);
// двигаем точки координат текстуры
texpts [0)[0][0] :- texpts [0][0][0] - step;
texpts [0][0][1) := texpts [0)[0)[IJ - step;
// ограничиваем искажения некоторыми пределами
If (texpts (0) [0] [0] < -4.0) or (texpts [0] [0] [0] > 1.0)
then step :- — step; // принять во внимание измененные значения координат glMap2fIGL_MAP2_TEXTURE_CCX)RD_2, 0, 1, 2, 2, 0, 1, 4, 2, Gtexpts);
При инициализации должна присутствовать строка с включением режима использования текстуры для поверхностей:
glEnable IGL_MAP2_TEXTURE_COORD_2);
Опубликовал vovan666
September 13 2013 12:01:40 ·
0 Комментариев ·
3557 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.