х = г С05(2Я»), у- г Бт(2ям) соз(2лг),

2 = г ъ\п(2пи) зт(2яг).

9.2. Наложение проективных текстур

На рис. 9.8 показано, как использовать в качестве промежуточной поверхности куб. В этом случае текстура фактически проецируется на развертку куба, причем проективное наложение часто применяется в комбинации с наложением среды, которое будет описано в разделе 9.3.

Рис. 9.7. Отображение образца текстуры на цилиндрическую поверхность

Наложение образца текстуры на развертку куба

Рис. 9.8. Наложение образца текстуры на развертку куба Суть второго этапа - отображение промежуточной поверхности с уже наложенной текстурой на поверхность тонируемого объекта сцены. На рис. 9.9 схематически представлены три возможных варианта стратегии отображения. В первом варианте (рис. 9.9,а) значение интенсивности образца в точке промежуточной поверхности передается точке объекта, в которую "упирается" нормаль к промежуточной поверхности. Второй вариант реализует примерно такую же стратегию, но в обратном направлении - от объекта к промежуточной поверхности. Точке объекта передается значение интенсивности образца текстуры в той точке промежуточной поверхности, в которую "упирается" нормаль к поверхности объекта (рис. 9.9,6). Третий вариант реализует "центральную" стратегию. Если объект имеет такую форму, что к ней приложимо понятие центральной точки (например, уже упоминавшийся выше апельсин), то можно переносить на поверхность объекта значения интенсивности текстуры в точках промежуточной поверхности, лежащих на пересечении с исходящим из центра лучом (рис. 9.9,в). Внимательный читатель, несомненно, отметит, что математически первый и третий варианты должны дать один и тот же результат, если промежуточная поверхность имеет форму сферы, центр которой совпадает с центром тонируемого объекта сцены.

Глава 9. Операции с изображением на уровне растрового представления

382 Глава 9. Операции с изображением на уровне растрового представления

9.2.2. Проективное наложение текстуры в системе OpenGL

Графическая система поддерживает несколько вариантов реализации проективного наложения текстур. В первой версии OpenGL можно было накладывать одно- и двухмерные текстуры на одно-, двух-, трех- и четырехмерные графические объекты. В последней версии реализовано наложение трехмерных текстур, но эта функция поддерживается только аппаратными средствами профессиональных графических станций. Поскольку управление процессом требует настройки множества параметров, мы рассмотрим здесь только методику работы в OpenGL с двухмерными текстурами.


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