- •Розділ 1.Текстурування в задачах 3d візуалізації.
- •1.1.Загальна характеристика.
- •1.2 Зображення текстури.
- •1.3 Параметри текстури.
- •1.4. Застосування текстурувань.
- •Розділ 2. Текстурування в програмі SketchUp.
- •2.1. Основні методи текстурувань в програмі SketchUp.
- •2.2. Текстурування внутрішнього двору Замка Паланок в програмі SketchUp.
- •Висновки
- •Список літератури
1.2 Зображення текстури.
Зображення текстури являє собою масив елементів - текселів, дуже схожих на звичайні пікселі і мають аналогічний зміст. Оскільки сама по собі текстура є зображенням, роздільність текстури і її формат відіграють велику роль, яка згодом позначається на загальному враженні від якості графіки у 3D-додатку. Цей масив може бути одно, дво або, в деяких системах, тривимірним. Тут, для визначеності, ми будемо говорити про двовимірному масиві текселів. Окремі елементи масиву адресуються текстурними координатами (s, t), які мають фіксований діапазон зміни [0., 1.]. Масив текселів оголошується зображенням текстури шляхом звернення до функції glTexImage. В якості параметрів, крім масиву текселів, задаються розміри масиву - його ширина і висота, а також формат текселів. Оскільки діапазон текстурних координат фіксований, розміри масиву визначають реальні розміри текселів в просторі вікна - подробиця текстури. Власне тексель являють собою упаковану сукупність компонентів RGBA або один компонент - які саме компоненти використовуються в даному масиві задається у форматі текселів. При накладенні текстури колір текселя змішується з кольором елементів поверхні.
Створення параметрів матеріалу здійснюється за допомогою використання карт (зображення) розташованих у відповідних каналах, або за допомогою процедурних карт, а також змішаного методу[8].
Карта текстури застосовується для утворення певного параметру візуального відображення на поверхні заданої форми. Цей процес нагадує застосування візерунчастого паперу на звичайній білій коробці. Кожній вершині в 3D моделі присвоюється координати текстури (яка у разі 2D відома, як UV координата). Місця відбору проб зображення згодом інтерполюється по поверхні моделі з отриманням візуального результату.
Найчастіше це файл растрового (рідше векторного) зображення з розширенням JPEG, PNG або PAT.
1.3 Параметри текстури.
З кожним зображенням текстури повинні бути пов'язані параметри текстури, що визначаються у функції TexParameter і задають спосіб відображення текселів на пікселі.
Перша група параметрів TEXTURE_WRAP визначає, що робити, якщо якась із координат текстури (s, t) виходить за діапазон [0., 1.]. Для кожної з координат можна задати свій спосіб дії. Можливі два варіанти - CLAMP або REPEAT.
У режимі CLAMP, якщо відповідна координата текстури виходить за одиничний діапазон, текстура не накладає. Цей режим застосовується, коли потрібно накласти зображення на об'єкт в єдиному екземплярі.
У другому з можливих режимів - REPEAT, використовується завжди тільки дрібна частина координати і тим самим може бути створена повторювана картина.
Друга група параметрів пов'язана з тією обставиною, що розміри пікселів і текселів не обов'язково збігаються. У процесі накладення текстури, виходячи з значень текстурних координат в вершинах полігону, шляхом інтерполяції обчислюються значення текстурних координат в центрі кожного пікселя полігону, отриманого в результаті растеризації, а також визначається область текстурного простору, на яку відображається даний піксель. Залежно від розміру області використовується один з двох алгоритмів фільтрації.
Якщо область більше, ніж один тексель (Рис.1.), текстура стискається так, щоб відповідати пікселю екрану, для чого застосовується фільтр стиснення.
Рис.1. Стиснення текстури.
В іншому випадку, коли область менше текселя, текстура розширюється і використовується фільтр розширення (Рис.2.).
Рис.2. Розширення текстури.
Можна визначити один з наступних фільтрів стиснення і розширення:
NEAREST - при стисненні / розширенні використовуватиметься значення елемента текстури, який є найближчим до центру пікселя, на який накладається текстура.
LINEAR - буде використовуватися зважене середнє 4 найближчих до пікселя елементів текстури.
Близькість визначається за координатами текстури, розрахованим для пікселя.
Крім того, для фільтрів стиснення можна використовувати MIPMAP, - сукупність масивів, які представляють одне зображення з послідовно зменшеним дозволом. Якщо розмір текстури 2n х 2m, то мається max (n, m) +1 MIPMAP. Перша карта - це вихідне зображення. Кожна наступна карта має розміри 2k-1 х 2l-1, де 2k * 2l - розміри попередньої карти[8].
Фільтри стиснення на основі MIPMAP різняться кількістю використовуваних в них MIPMAP і способом отримання значення текстури.
NEAREST_MIPMAP_NEAREST - вибирається MIPMAP, найближча до розміру пікселя текстурування, і у відповідність з режимом NEAREST вибирається значення текстури.
NEAREST_MIPMAP_LINEAR - обираються дві MIPMAP, які найбільш близькі за розмірами до пікселю текстурування. Використовується режим NEAREST для отримання значення текстури з кожної карти MIP. Остаточне значення текстури виходить, як зважене середнє цих двох значень.
У позначеннях двох інших фільтрів на першому місці стоїть LINEAR - це фільтри LINEAR_MIPMAP_NEAREST і LINEAR_MIPMAP_LINEAR. Від попередніх фільтрів вони відрізняються тим, що для вибірки значення текстури з MIPMAP використовується режим LINEAR.
