Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Розробка методів І засобів текстурування для покращення

Розробка методів І засобів текстурування для покращення




Сторінка3/9
Дата конвертації09.04.2017
Розмір0.84 Mb.
1   2   3   4   5   6   7   8   9

1 АНАЛІЗ ЛІТЕРАТУРИ




1.1 Загальні відомості


При побудові високореалістичних зображень використовують текстури[1], які накладають на графічні об’єкти. Текстурування дозволяє успішно вирішувати задачі, які надзвичайно трудомістко розв’язати прямими методами [2], дозволяє суттєво зменшити обчислювальні витрати та зробити можливим інтерактивний режим візуалізації [2,3].

Текстура — це спосіб надання поверхні 3D деталі — полігону: кольору, фактури, блиску, матовості та інших фізичних властивостей (для імітації природного матеріалу, наприклад: паперу, дерева, каменю, металу тощо).

Техноло́гія (від грец. τεχνολογια, що походить від грец. τεχνολογος; грец. τεχνη - майстерність, техніка; грец. λογος - (тут) передавати) - наука («корпус знань») про способи (набір і послідовність операцій, їх режими) забезпечення потреб людства за допомогою (шляхом застосування) технічних засобів (знарядь праці).

Фіз́ичні власт́ивості - властивості будь якої речовини, які вона проявляє поза хімічною взаємодією: температура плавлення, температура кипіння, в'язкість, густина, розчинність, діелектрична проникність, теплоємність, теплопровідність, електропровідність, абсорбція, колір, концентрація, емісія, текучість, індуктивність, радіоактивність, гідрофільність і гідрофобність, теплота змочування та ін.

Поняття «текстура» є важливим елементом 3D-моделювання, оскільки дозволяє відтворити також малі об'єкти поверхні, створення яких полігонами виявилося б надмірно ресурсомістким. Наприклад, шрами на шкірі, складки на одязі, дрібні камені, предмети на поверхні стін і ґрунту та багато іншого [4]. Отже, текстура використовується для заповнення поверхонь об'єктів і в якості шару для додання певного ефекту або зміни геометрії всьому зображенню або його частини (рис. 1).

7.png

Рисунок 1.1 – 3D-модель без текстур (1) та з текстурами (2)

Існує кілька способів створення текстур:


  • фотографування об'єкта, що містить текстуру, на цифрову фотокамеру, з опціональною пост-обробкою в графічному редакторі;

    Фотокамера - прилад для фіксації зображень матеріальних об'єктів за допомогою світла на спеціальному носії (зазвичай фотоплівці або у формі комп'ютерного файлу на електронній карті пам'яті).

    Графічний редактор - прикладна програма (або пакет програм), що дозволяє її користувачеві створювати і редагувати зображення на екрані комп'ютера і зберігати їх в графічних форматах файлів, наприклад, JPEG, PNG, GIF, TIFF.



  • сканування об'єкту, що містить текстуру. Недолік цього способу в тому, що, при превалюючій поширеності сканерів планшетного типу, об'ємні елементи (наприклад, габаритний дерев'яний щит) відсканувати важко або зовсім неможливо;

    Сканер (англ. scanner) - пристрій, призначений для створення зображень певних об'єктів шляхом обробки променів, які відбиваються від поверхні об'єкта або проходять крізь об'єкт. В більш вузькому значенні - пристрій для отримання комп'ютерного цифрового зображення.



  • створення текстури в графічному редакторі. Таким чином створюються, як правило, абстрактні текстури, яким немає аналогу в навколишньому світі.

    Абстра́кція (лат. abstractio - відвернення, відволікання) - одна з основних операцій мислення, а також метод наукового дослідження, що полягає в тому, що суб'єкт, відокремлюючи які-небудь ознаки об'єкту, що вивчається, відволікається від інших, не враховуються його неістотні сторони і ознаки.



Текстури можна умовно поділити на такі типи:

  • За ефектом при заміщенні: звичайні (або шовні) і безшовні текстури (англ. Seamless patterns). Безшовні текстури при зчленуванні не утворюють видимого шва, тобто порушення текстурного малюнка, тому ними можна безболісно замостити полотно як завгодно великого розміру. Безшовні текстури також називають патернами, що є калькою з англ. pattern – візерунок.

  • За типом зображуваної текстури:

  1. текстури природних об'єктів (деревна кора, листя, небо і т.д.);

  2. текстури поверхонь з різних матеріалів (дерев'яні, металеві, кам'яні, паперові поверхні і т.д.);

  3. текстури шуму, подряпин, вищербленого, інших пошкоджень;

  4. абстрактні текстури, на яких не зображені об'єкти, але присутній деякий однорідний фон [5].

Якість поверхні текстури визначається текселями — кількістю пікселів на мінімальну одиницю текстури. Оскільки сама по собі текстура є зображенням, роздільність текстури і її формат відіграють велику роль, яка згодом позначається на загальному враженні від якості графіки у 3D-додатку [4].

Застосовувані в тривимірній графіці методи накладення текстур, використовуються для візуалізації тривимірних сцен з високим ступенем деталізації. Генерація текстури полягає в проектуванні зображення на тривимірну поверхню, таким чином, забезпечується додаткова деталізація об'єкта без ускладнення його геометрії (рис. 2). При цьому може з'являєтися велика кількість різноманітних помилок візуалізації, званих артефактами [1]. Було розроблено безліч різних методів, які зменшують кількість подібних артефактів візуалізації. Для імітації реалістичних сцен необхідно використовувати велику кількість деталізованих текстур.

Реалі́зм (від лат. realis - «суттєвий», «дійсний») - стиль і напрям у літературі та мистецтві, які ставили метою правдиве відтворення дійсності в її типових рисах. Панування реалізму слідувало за добою романтизму і передувало символізму.



9.png

Рисунок 1.2 – Зменшення кількості полігонів за рахунок текстурування



1.2 Методи текстурування




1.2.1 Точкова вибірка

Точкова вибірка (Point Sampling) – це найпростіший метод визначення кольору пікселя на основі текстурного зображення [6, 7]. Із текселів, що визначають колір конкретного пікселя, обирають один, що геометрично знаходиться найближче до центру фігури, утвореної даними текселями. Координати необхідного текселя в текстурній площині визначать за формулою:


,
де , - відносні координати пікселя в екранній площині; , - ширина та висота, проекції полігону на екранну площину; , - ширина та висота полігону в текстурній площині.

Оскільки колір пікселя визначають декілька текселей, а обирається тільки один, то має місце похибка у визначенні інтенсивності кольору.

Ко́лір (також ба́рва у контексті теми) - суб'єктивна характеристика сприйняття світлової хвилі, яка ґрунтується на здатності людського зору розрізняти електромагнітне випромінювання з довжиною хвиль в області видимого діапазону (видимий діапазон - довжини хвиль від 380 до 760 нм).

Головний перевага такого методу фільтрації – низькі вимоги до апаратного забезпечення, так як для визначення кольору пікселя потрібно вибрати всього лише один тексель з текстурної пам'яті.

При наближенні полігону до екрану має місце збільшення кількості пікселів по відношенню до кількості текселей, що призведе до артефакту – блочності зображення.




1.2.2 Білінійна фільтрація

Цей недолік поточкової вибірки можна усунути шляхом використання білінійної фільтрації. У цьому випадку для визначення інтенсивності кольору використовується коло, яке апроксимується 4 текселями. Значення кольору пікселя обраховується шляхом білінійної інтерполяції кольорів цих текелів [8]. Тобто шляхом інтерполяції як вздовж осі ОХ, так і вздовж осі ОУ, за формулою:



2.gif
де Ci - колір в i-тій точці, Cl- колір у початковій, а Cn - в кінцевій точці, l – довжина ділянки, на якій проводиться інтерполяція (причому i ).

3.gif

Рисунок 1.3 – Інтерполяція вздовж однієї осі


Цей метод фільтрації є істотно кращим, ніж point sampling, так як частково приймається до уваги колір одразу кількох текселів і використовується інтерполяція.
1.jpg

Рисунок 1.4 – Відмінність точкової вибірки та білінійної фільтрації


Якщо полігон знаходиться занадто близько до точки спостереження, то для інтерполяції потрібно більше текселей, ніж насправді доступно. У результаті при відображенні зображення розпливається.

Головний недолік білінійної фільтрації полягає в тому, що апроксимація виконується коректно тільки для полігонів, які розташовані перпендикулярно до вектора спостереження.

Перпендикуля́рність - бінарне відношення між різними об'єктами (векторами, прямими, підпросторами тощо) в евклідовому просторі. Окремий випадок ортогональності.

Це пояснюється тим, що при розміщені полігона під кутом необхідно використовувати для апроксимації не коло, а еліпс.

При білінійної фільтрації потрібно зчитувати по 4 текселя з текстурної пам'яті для визначення кольору кожного виведеного на екран пікселя, що призводить до збільшення навантаження на апаратне забезпечення у чотири рази порівняно з Point Sampling.

1.2.3 Трилінійна фільтрація


Трилінійна фільтрація – метод текстурування, що базується на поєднанні mip-текстурування та білінійної фільтрації [7, 8].

MIP-текстурування (англ. MIP mapping) - метод текстурування, що використовує кілька копій однієї текстури з різною деталізацією. Назва походить від лат. multum in parvo - «багато в одному».

Зображення найкраще виглядає, коли деталізація текстури близька до роздільності екрана. Якщо вона дуже низька (текстура занадто маленька/об'єкт дуже близько), виходить розмите зображення. Якщо роздільність текстури дуже висока (текстура занадто велика/об'єкт дуже далеко), відбувеється втрата дрібних деталей, мерехтіння і великий відсоток промахів в кеш. Отже, краще мати декілька текстур різної деталізації і накладати на об'єкт ту, яка найбільш підходить в даній ситуації. Для цього Створюється MIP-піраміда — послідовність текстур з роздільною здатністю від максимальнї до 1 × 1.

Послідо́вність - функція визначена на множині натуральних чисел яка набуває значення на об'єктах довільної природи. f : N → X \,\rightarrow \,\!X} .

Кожна з цих текстур називається MIP-рівнем (англ. MIP level) або рівнем деталізації (англ. level of detail). Mip-рівні являють собою заздалегідь розраховані версії вихідної текстури різного розміру. Таким чином досягається вищий рівень точності апроксимації текселів, що визначають колір пікселя. На всіх цих структурах знаходиться одне і те ж зображення.

5.jpg

Рисунок 1.5 – Зображення текстури на різних МІР-рівнях

MIP-рівні створюються не в режимі реального часу, а до початку процессу рендерингу сцени.

Структу́ра (лат. structūra, англ. structure, рос. структура, нім. Struktur) - це характеристика складу та просторова картина складу об'єкта, речовини (ізотропна, анізотропна, кристалічна, аморфна, гомогенний чи колоїдний розчин, фазові суміші) взаєморозміщення формацій, частин, деталей, елементів, певний функціональний взаємозв'язок складових частин об'єкта, внутрішня будова.

Реальний час - режим роботи автоматизованої системи обробки інформації і керування, при якому враховуються обмеження на часові характеристики функціювання.

Тобто, вони безперервно знаходяться у відеопам'яті разом із самою текстурою. Але MIP-текстурування збільшує витрату відеопам'яті лише на третину, адже кожен наступний рівень у 4 рази менше попереднього. Отже, вони утворюють спадну геометричну прогресію:

3.png

При накладенні текстур обчислюється відстань до об'єкта, відповідно знаходиться номер текстури за формулою:



4.png

де resolution — роздільність віртуальної камери (кількість пікселів, яке буде в об'єкті розміром в 1 од.

Resolution - сьомий студійний альбом американської групи Lamb of God, який був випущений 24 січня 2012 року.

Геометрична прогресія - послідовність чисел, перший член якої не дорівнює нулю, а відношення будь-якого елемента послідовності до попереднього є сталим числом, що називається знаменником прогресії. Знаменник прогресії не дорівнює 1 (одиниці) Якщо модуль знаменника прогресії більше одиниці - прогресія зростаюча, якщо він менше одиниці - прогресія спадна.

, розташованому в 1 од. від камери), texelsize — розмір текселя в одиницях тривимірного світу, dist — відстань до об'єкта в тих же одиницях, mip bias — число, що дозволяє вибирати більш-менш детальну текстуру, ніж дає формула. Ця цифра округляється до цілого, і текстура з відповідним номером (нульова — найдетальніша, перша — вдвічі менша і т. д.) накладається на об'єкт.



6.jpg

Рисунок 1.6 – Відмінність трилінійної фільтрації від білінійної


Трилінійну фільтрацію реалізують шляхом виконання білінійної фільтрації на двох mip-рівнях і в результаті отримують 2 текселя – по одному для кожного mip-рівня. Колір пікселя, який повинен бути виведений на екран, визначають в результаті інтерполяції кольорів двох mip-текстур.

Метод забезпечує вищий рівень реалістичності вихідного зображення порівняно з білінійною інтерполяцією, проте вимоги до апаратного забезпечення подвоюються порівняно з білінійною фільтрацією, так як необхідно зчитувати 8 текселів з текстурної пам'яті. Крім того трилінійна фільтрація не враховує кут нахилу полігону відносно площини відображення, а тому є некоректною для полігонів непаралельних екранній площині.


1.2.4 Анізотропна фільтрація

Описані методи текстурування дозволяють відносно коректно розраховувати колір тільки для тих пікселів, відповідні текселі яких знаходяться в текстурній площині, яка паралельна екрану. Таке обмеження викликане тим, що вибірка груп з чотирьох текселей при білінійної фільтрації відбувається по строго заданому закону.

Текселі завжди апроксимують коло, що і є проекцією екранного пікселя на площину текстури. Чим більше поверхня текстури відхиляються від паралелі екрану, тим більша буде значення похибки при визначенні кольору пікселя. У результаті чого, текстури, розташовані під гострими кутами, сильно розмиваються [2].

Кут плоский (площинний) - геометрична фігура, утворена двома променями (сторонами кута), які виходять з однієї точки, що називається вершиною кута.

Тому сьогодні при текстуруванні широко використовується анізотропна фільтрація, яка дозволяє більш точно визначати кольори пікселів, які відповідають елементам текстури, що розташовані не паралельно екрану. Це найбільш якісний метод текстурування. На відміну від ізотропних видів фільтрації (білінійна та трилінійна) використовується проекція пікселя на текстурну поверхню [2].

Ізотропі́я, Ізотро́пність (рос. изотропия, изотропность; англ. isotropy, isotropism; нім. Isotropie f) -

Анізотропна фільтрація (Anisotropic filtering) — метод для поліпшення якості текстур в тривимірній комп'ютерній графіці, використовуваний спеціально для об'єктів, сильно нахилених щодо камери. Анізотропна трилінійна фільтрація дозволяє усувати аліасинг на різних поверхнях, при цьому вносить менше розмиття і тому дозволяє зберегти більшу детальність зображення. Щоб отримати зображення із високим ступенем реалістичності, важливо враховувати усі текселі, що визначають колір пікселя. Форма фігури, утвореної цими текселями, змінюється разом зі зміною положення полігону відносно точки спостереження.

Координати (рос. координаты, англ. coordinates; нім. Koordinaten f pl) - числа, величини, що визначають положення точки у просторі.

Використання лише 4 текселів замість усіх необхідних призводить до спотворення результату, коли полігон розташований під різними кутами до точки спостереження і вибірки обмеженої кількості текселів. Для формування високореалістичного зображення важливо використовувати всі текселі, що визначають колір пікселя та усереднювати їх значення. Однак, це істотно підвищує вимоги до апаратного забезпечення.

При анізотропної фільтрації проекція пікселя на поверхню текстури розглядається не як коло, а як витягнутий еліпс (рис. 1.6), що дозволяє точніше визначати кольори пікселів [3].


10.jpg11.jpg

12.jpg

Рисунок 1.7 – Форми проекції пікселя на текстурну площину


Можна використовувати різноманітні фільтри для апроксимації форми фігури, утвореної текселями, що відповідають конкретному пікселю. Як правило, це еліпс, форма якого змінюється залежно від кута, який задає положення полігону щодо точки зору.

Аспект (лат. aspectus - вигляд, погляд) - поняття філософії (онтології, теорії пізнання). У філософії аспект розглядається

Існують техніки анізотропної фільтрації, які використовують від 16 до 32 текселів з текстури для визначення кольору пікселя. Використання подібної техніки фільтрації значно підвищує вимоги до апаратного забезпечення.

У системах візуалізації, що використовують тайли, істотно економляться ресурси щодо смуги пропускання пам'яті, що спрощує реалізацію з використанням анізотропної фільтрації.

Смуга пропускання частот (англ. Bandwith) - діапазон частот, у межах якого амплітудно-частотна характеристика (АЧХ) акустичного, радіотехнічного або оптичного пристрою є досить рівномірною для того, щоб забезпечити передачу сигналу без суттєвого викривлення його форми.

Tile (тайл) – фрагмент зображення, зазвичай, з розміром 32 на 32 пікселя.


ani.jpgtri.jpg

Рисунок 1.8 – Відмінність анізотропної фільтраціїї (1) фільтрації від трилінійної фільтраціїї (2)


Візуалізація із застосуванням анізотропної фільтрації забезпечує сьогодні найвищий рівень реалістичності зображення за рахунок підвищення глибини деталізації та більш точного накладення текстур на полігони, які розташовані під довільним кутом до екрану.

1.3. Методи визначення координат пікселя в текстурній площині

Використання текстур для імітації нерівностей на поверхні передбачає встановлення співвідношення між екранними координатами об’єкта та координатами текстури. Розрізняють афінне [21, 22, 26] та перспективно-коректне накладання текстур [22, 25].

При афінному текстуруванні [23] текстурні координати лінійно інтерполюються вздовж рядка растеризації, що призводить до появи артефактів та недостовірного відтворення перспективи об’єкта.

При перспективно-коректному текстуруванні використовують нелінійні функції, розрахунок яких передбачає попіксельне виконання трудомістких операцій.

Ліні́йна фу́нкція - в математиці, позначає два споріднені поняття: Лінійну функцію в елементарній математиці, Лінійне відображення у вищій математиці.

Перспективно-коректне текстурування у переважній більшості випадків реалізують за методом Хекберта [38]



, , (1.1)

де і – текстурні координати, і – екранні координати об’єкта, коефіцієнти полігона, який текстурується.

Як видно з формули (1.1), знаходження текстурних координат є трудомісткою процедурою, оскільки для кожного пікселя зображення потрібно виконати дві операції ділення, що суттєво позначається на швидкодії формування графічних сцен.

Коефіціє́нт - характеристика процесу, явища, речовини або поля, яка має відносно сталий характер.

Граф сцени - загальна структура даних, що зазвичай використовується в застосуваннях для роботи з векторною графікою і в сучасних комп'ютерних іграх, яка впорядковує логічне і часто (але не обов'язково) просторове представлення графічної сцени.

З метою спрощення обчислювального процесу доцільно вилучити трудомісткі операції ділення з процесу перспективно-коректного текстурування.

Широко поширеною є квадратична апроксимація [31, 33, 35], яка для розрахунку текстурних координат використовує рівняння


(1.2)

де А13, В13коефіцієнти апроксимації, які є сталими для кожного РР, , тобто є має нормалізоване значення, , – значення -координати відповідно у початковій та кінцевій точках РР.

Формули для розрахунку коефіцієнтів - мають вигляд [29, 31]

, (1.3)

де , і – значення текстурної координати у початковій, середній та кінцевій точках РР відповідно. Аналогічний вигляд мають формули і для розрахунку коефіцієнтів -, однак замість значень координати використовуються відповідні значення координати .

Анало́гія - (грец. αναλογια - «відповідність») - подібність, схожість у цілому відмінних предметів, явищ за певними властивостями, ознаками або відношеннями.

Застосування квадратичної апроксимації дає досить реалістичне відтворення перспективи при порівняно нескладних обчисленнях.

Обчи́слення - є гілкою математики, зосередженою на функціях, похідних, інтегралах, і нескінченному ряду чисел. Цей предмет являє собою важливу частину сучасної математичної освіти. Воно складається з двох основних галузей - диференціального і інтегрального численнь, які пов'язують основні теореми обчислення.

Недоліком формул (1.3) є те, що вони можуть бути використані тільки у випадку нормалізованих значень екранних координат. Процедура нормалізації вимагає операції ділення, що суттєво впливає на обчислювальну складність.

Кубічна апроксимація [37] використовує залежність



де С14, D1-D4 – коефіцієнти апроксимації, які розраховуються для кожного РР, значення координати також нормалізовані. Для розрахунку коефіцієнтів апроксимації необхідно знайти точні значення текстурних координат у чотирьох опорних точках: початковій, кінцевій та двох внутрішніх точок, які розбивають РР на три рівні відрізки. Кубічна апроксимація забезпечує більш реалістичне відтворення перспективи, ніж квадратична, але обчислювальна складність суттєво зростає, що обмежує застосування даного виду апроксимації у системах комп’ютерної графіки, які працюють у режимі реального часу.

При бі-квадратичній [24, 35] апроксимації використовуються рівняння

де А16, В16 – коефіцієнти апроксимації.

Для розрахунку 12 коефіцієнтів бі-квадратичної апроксимації потрібно знати точні значення пари текстурних координат у шести точках: у вершинах трикутного полігона та у середніх точках його ребер.

Бі-кубічна апроксимація [26, 30] використовує рівняння

де А110, В110 – коефіцієнти апроксимації.

Бі-кубічна апроксимація вимагає точних значень пари текстурних координат у 10 контрольних точках та розрахунку 20 коефіцієнтів апроксимації. Отриманий результат виглядає досить реалістично, але обчислювальні витрати дуже великі, тому цей вид апроксимації має обмежене використання.

У роботі [35] для визначення коефіцієнтів квадратичної, кубічної, бі-квадратичної та бі-кубіної апроксимацій пропонується використовувати поліноми Чебишова другої та третьої степені.

Поліноми Чебишева - дві послідовності поліномів n = 0 ∞ (x)\}_^} і n = 0 ∞ (x)\}_^} , названі на честь Пафнутія Чебишова.

Хоча при такому підході точність визначення текстурних координат підвищується, але розрахунок коефіцієнтів апроксимації вимагає великої кількості обчислень, що обмежує використання запропонованого методу.

Інші підходи до апроксимації полягають у розбитті РР на декілька відрізків [41, 43] та використання лінійної, квадратичної чи кубічної інтерполяції для розрахунку текстурних координат у межах отриманих відрізків. У цьому випадку потрібно розраховувати точні значення текстурних координат у точках, між якими проводиться інтерполяція, а також необхідно визначати додаткові коефіцієнти апроксимації.

Таким чином, аналіз відомих методів перспективно-коректного текстурування показав, що існує потреба у розробці нових методів, які б мали більш просту реалізацію та забезпечували вищу точність, порівняно з відомими.


1.3 Висновки


Застосовувані в тривимірній графіці методи накладення текстур, використовуються для візуалізації тривимірних сцен з високим ступенем деталізації. Таким чином, забезпечується додаткова деталізація об'єкта без ускладнення його геометрії.

Ізотропні методи текстурування характеризуються високою продуктивністю та низькою реалістичністю вихідного зображення. Тому сьогодні при текстуруванні широко використовується анізотропна фільтрація, яка дозволяє більш точно визначати кольори пікселів, які відповідають елементам текстури, що розташовані не паралельно екрану. Але використання подібної техніки фільтрації значно підвищує вимоги до апаратного забезпечення.

Отже, аналіз відомих методів текстурування показав, що існує потреба у розробці нових методів, які б мали більш просту реалізацію та забезпечували вищу реалістичніть, порівняно з існуючими.

1   2   3   4   5   6   7   8   9



  • 1.2 Методи текстурування
  • 1.2.2 Білінійна фільтрація
  • 1.2.3 Трилінійна фільтрація
  • 1.2.4 Анізотропна фільтрація
  • 1.3. Методи визначення координат пікселя в текстурній площині
  • 1.3 Висновки