- •Розділ 1.Текстурування в задачах 3d візуалізації.
- •1.1.Загальна характеристика.
- •1.2 Зображення текстури.
- •1.3 Параметри текстури.
- •1.4. Застосування текстурувань.
- •Розділ 2. Текстурування в програмі SketchUp.
- •2.1. Основні методи текстурувань в програмі SketchUp.
- •2.2. Текстурування внутрішнього двору Замка Паланок в програмі SketchUp.
- •Список літератури
- •Висновки
Розділ 2. Текстурування в програмі SketchUp.
2.1. Основні методи текстурувань в програмі SketchUp.
Текстурування особливо актуальне для так званих фотореалістичних текстур, що імітують реальні матеріали . Причому на об'єктах складної, нерегулярної форми, для повноцінного вирішення проблеми текстурування просто не обійтися без спеціалізованих програм і професійних навичок роботи в них.
В програмі SketchUp можливості і засоби управління текстурними матеріалами гранично спрощені, а тому досить обмежені за можливостями, хоча під спеціалізацію SketchUp вони свої завдання цілком успішно вирішують[3].
Якщо в якості матеріалу використовується текстурна картинка то поверхня (полігони) об'єкта будуть обтягнуті їм по призначеним т.зв. UV-координатами. Для того щоб накласти двомірну картинку текстури на поверхні тривимірного об'єкту, необхідно призначити текстурні 2D-координати для вершин, що визначають геометрію поверхонь 3D-об'єкта, тобто розгортання тривимірної поверхні в плоску двомірну. Ця процедура називається створенням текстурної карти або за спеціальною термінологією - UV-mapping (UVs). Координати в 2D текстурному просторі прийнято позначати символами U (по вертикалі) і V (по горизонталі). На підставі цих UV-даних для поверхні спеціальними програмними алгоритмами розраховуються трансформації між площиною текстури і поверхнями.
Для імпорту в SketchUp використовуються команди меню File> Import . При цьому відкривається вікно провідника, в якому вибираємо файл потрібного формату і варіант його застосування в моделі. Вибираємо Use As Image далі, після натискання кнопки Open (відкрити) картинка поміщається в сцену в місці подвійного кліка курсором. В результаті отримуємо в сцені своєрідний об'єкт - ізольовану групу зі специфічними особливостями - наприклад, для неї недоступна можливість внутрішнього редагування, як у інших груп, хоча її можна, як будь-який інший об'єкт, переміщати, обертати, масштабувати[4].
Скориставшим типовим прийомом UV-редакторів - імпортуємо спеціальну текстуру (Рис.4), яка дуже ясно і наочно показує, що відбувається в цих опціях:
Рис.4.Спеціальна тестова текстура.
На (Рис.5) представлені два типи об'єктів: один простої форми (блок)- Faces плоскими поверхнями (що якраз і характерно для задач SketchUp) і другий (мишка) – Surfaces зі складними поверхнями. Мишку згрупуємо в єдиний об'єкт. Почнемо з того, що імпортуємо тестову текстуру і кладемо його на землю під наші об'єкти. І спробуємо призначити текстуру найшвидшим способом - захопимо її піпеткою (Alt + Paint Bucket) і заллємо на всю поверхню блоку і на групу мишка. В результаті отримаємо хаотичний результат на мишці. На блоці верхні (горизонтальні і під невеликим кутом до горизонту) поверхні текстуровані нормально, але на бічних (вертикальних) текстура абсолютно спотворилася, перетворившись просто в лінії.
Рис.5. Тип об’єкта блок і мишка. Рис.6.Опції текстурування.
Клікнемо ПКМ, наприклад, на верхній поверхні блоку, виберемо пункт контекстного меню Texture, через який і стають доступні всі подальші опції над текстурами на поверхнях, і в підменю звернемо увагу на включений пункт з галочкою - Projected (проектувати) (Рис.6). Фактично тут ми використовуємо один з двох доступних в SketchUp методів - накладення текстур методом паралельних проекцій. Суть його полягає в тому, що текстура стає ніби картинкою, вставленої в проектор, вісь об'єктива якого спрямована нормально площині текстури (вертикально). І далі зображення текстури проектується в цьому фіксованому напрямі на всі поверхні об'єктів, які потрапляють під його промінь. Можна зробити висновок, що в ідеалі площина проектування картинки та обраної для текстурування поверхні повинні бути паралельні, або хоча б кут між ними повинен бути не більше 30-45 град. Це видно на блоці (Рис.7) чим менший цей кут, тим менше спотворення проекції текстури на поверхню, а на бічних поверхнях з цієї причини він повністю деформувався. Проекційна площина - текстури зовсім не обов'язково повинна лежати строго горизонтально можемо, як будь-який інший об'єкт, орієнтувати її як завгодно в просторі а звідси випливає, що можна вирішити проблему спотворень на бічних поверхнях блоку, просто розгорнувши вертикально текстуру і виконати ті ж дії окремо для вертикальних площин об'єктів. Ну і аналогічно, ту ж методику можна використовувати і для інших, похилих поверхонь, розгортаючи на той же кут і текстуру і виставляючи в потрібне положення[7].
Рис.7. Накладення текстур методом паралельних проекцій.
Увійшовши в режим внутрішнього редагування цієї групи, бачимо, що в контекстному меню криволінійної поверхні пункт Texture відсутній, тобто ніякі опції над текстурами в цьому стані недоступні. Розриваємо групу мишка - Explode і заливаємо ту ж Projected текстуру (рис.8). Як бачимо, результат вже краще, проте в наявності ті ж самі, що і в блоці, спотворення від розбіжності площин текстури і поверхонь об'єкта.
Рис.8. Накладення текстур методом паралельних проекцій.
Рис.9. Роздільне текстурування по частинам.
Можемо поліпшити ситуацію за рахунок розділення єдиного об'єму (наприклад, в цьому випадку, розрізанням на частини по характерних лініях перелому характеру кривизни) і роздільним текстуруванням по частинах (рис.9).
Другий спосіб (не проекційна текстурування) заключається в тому що на текстурі на будь-якій поверхні блоку в контекстному меню Texture знімемо галочку у пункту Projected. Тим самим (хоча зовні нічого не змінилося), принципово міняємо властивості вихідної текстури - тепер її орієнтація в просторі ніяк не враховується, не береться до уваги а раз так, можемо спокійно видалити картинку зі сцени тим більше, що він вже присутній у списку матеріалів проекту In Model.
Головна відмінність не проекційної текстури від «проекційної» - вона відразу автоматично прагне повністю обернути» об'єкт. А точніше отримуємо планарне проектування, але одночасно на всій поверхні, з автоматичною орієнтаціїєю текстури в площині кожної поверхні. Цей механізм за замовчуванням і працює, коли користуємося бібліотечними текстурними матеріалами безпосередньо з вікна Materials. Однак, якщо просто вибрати об'єкт цілком (всі його поверхні), і залити текстуру, можемо спостерігати що механізм спрацював абсолютно стихійно - для кожної поверхні як би окремо, так що достовірного обертанням отримати не вдалося ( рис.10).
Рис.10. Не проекційна текстура.
Вирішити цю проблему, потрібно задати коректний порядок перетікання текстури через граничні ребра з однієї поверхні на іншу. Для цього знімаємо піпеткою текстуру з однією з поверхонь і потім послідовно заливаємо на кожну з сусідніх. Цей же прийом застосуємо для Surfaces мишки, однак оскільки опції контекстного меню Texture доступні тільки для плоских поверхонь, попередньо потрібно їх виявити. Для цього можна або зняти пом'якшення / згладжування ребер або, що через опцію View> Hidden Geometry отримати доступ до кожної з плоских поверхонь, що формують ці Surfaces. Далі робимо аналогічно ті ж самі маніпуляції з вказівкою перетікання текстури, що і для блоку(Рис.11).
Рис.11. Не проекційна текстура.
Є і ще один спосіб «заливки» текстури в аналогічній ситуації для Surfaces. Як і в наведеному вище варіанті, «знімаємо піпеткою» текстуру з однією з її плоских поверхонь, потім вимикаємо опцію View> Hidden Geometry після чого натискаємо в будь-якому її місці курсором Paint Bucket, натиснувши клавішу Ctrl, поміщаємо матеріал на всю послідовно суміжні поверхні об'єкту. Втім, при очевидній перевазі в швидкості виконання, цей спосіб не завжди спрацьовує передбачувано і коректно (залежить від конкретних ної геометрії об'єкта).
Коректне послідовне огортання текстури по поверхнях можливо тільки в одному напрямку прямування поверхонь а тому на якихось ребрах будуть утворюватися розрізи текстури. Насправді, навіть у професійних UV-редакторах це - одна з головних проблем, яку вирішують розміщенням швів на самих непомітних містах об'єктів.
Ще одна проблема, яку доводиться вирішувати при текстуруванні, виникає з прийнятого в SketchUp механізму автоматичного нескінченного повторення плиток текстур в двох взаємно перпендикулярних напрямках до заповнення поверхні в межах її ребер. При цьому, для отримання достовірного результату, майже завжди доводиться підлаштовувати розміри, пропорції і положення плиток текстури під конкретний об'єкт, тобто регулювати характер укладання текстурного іміджу по поверхнях.
Рис.12. Автоматично нескінчене повторення плиток текстур.
На (Рис.12.А) об'єкті текстура трави виглядає цілком вірогідно, а на (Рис.12.Б), при певному співвідношенні розмірів поверхні і плиток текстури, починають явно проявлятися межі кожної плитки, шви між ними, що звичайно, неприйнятно для якісного текстуруванню. Для вирішення цієї проблеми потрібно застосовувати тільки т.зв. безшовні текстури. Це спеціально підготовлені текстури (типово - природних матеріалів), у яких кордону при примиканні однієї плитки до іншої виглядають таким чином, що їх суцільна укладання створює повну ілюзію абсолютно однорідної поверхні. Головна перевага цих текстур є те що для них не існує описаних вище проблем UV-маппінга - просто заливаємо ними об'єкт будь-яким з доступних і зручних способів . І залишається тільки уточнити розмір плитки текстури під об'єкт.
Position (позиція текстури); Reset Position (скидання позиції) - відміняє до вихідного стану все опції редагування текстури на цій поверхні; Edit Texture Image - опція переходу до редагування текстури в сторонньому графічному редакторі.
Отже, пункт Position - опція управління характером текстурної поверхні за рахунок зміни її розмірів, положення та спотворення на будь-яку поверхоню. Опція Position доступна тільки на плоских поверхнях, тобто не можна напряму редагувати текстури, призначені криволінійним поверхням як одного цілого - при їх виборі опція буде просто неактивна. Тим не менш, можна редагувати текстури на окремих складових їх плоских поверхнях, використовуючи опцію View> Hidden Geometry (показати приховані побудови).
Після вибору Position над поверхнею з'являється напівпрозора матриця з плиток текстури і чотири (Pins) - штирі по кутах однієї плитки, з символами їх опцій чотирьох кольорів і курсор - рука.
Рис.13. Процес маніпулювання інструментами позиціонування.
Процес маніпулювання інструментами позиціонування показано на (Рис.13). вище.
Перша і найпростіша можливість редагування - зміщення текстури курсором (з натиснутою клавішею миші) ковзанням по поверхні.
Якщо на цій стадії зробити ще один контекстний клік, відкриється додаткове меню, через яке можна:
Done (готово) - завершити опцію (або, що аналогічно, можна просто клікнути зовні від текстури);
Reset (скидання) - повернутися до вихідного (до редагування) станом;
Flip (відбити дзеркально) - віддзеркалює на місці текстуру;
Left / Right, Up / Down (ліворуч-праворуч, зверху-вниз);
Rotate (обертати) - повернути на фіксований кут: 90, 180, 270 град .;
Undo (скасувати) - скасування останньої позиції текстури;
Redo (повторити) - скасування попередньої команди Undo.
Наступна, більш складна група можливостей редагування - маніпуляції зі штирями (Pins). Штирі можуть мати дві стани:
Fixed Pins - фіксоване (за замовчуванням - галочка на пункті меню) і вільне (галочка знята).
Можна також зняти фіксацію при приміщенні курсору на будь-який з штирь, натиснувши клавішу Shift, а при натиснутій клавіші CTRL відключається механізм прилипання - snapping. При приміщенні курсору на штирок поруч з'являється текстова підказка його дії.
Для призначенню об'єкту наш певний текстурний матеріал потрібно зробити через редагування тестового матеріалу (Materials> Select> In Model> Edit texture image), точніше - заміни його на інший, потрібний(Рис.14). Одна обов'язкова умова - зберегти ті ж пропорції картинки, інакше з'являться неминучі спотворення.
Тепер можемо скільки завгодно разів повторити такі заміни - будь-яка інша текстура так само точно так само коректно ляже на поверхні об'єкту, оскільки йому вже призначені текстурні координати власне в цьому і полягає сенс роботи з UV-маппінгом.
Рис.14.Заміна текстури.
Make unique texture (Створити унікальну текстуру).
Створимо поверхню будь-якої форми, заллємо на неї нашу тестову текстуру, і примінивши Make Unique Texture - бачимо, що в списку матеріалів проекту In Model з'явився додатковий матеріал. Його відмінність від вихідного очевидно - це знімок поверхні, на якій він створений (Рис.15.А):
Рис.15.А.Функція Make Unique Texture. Рис.15.Б.Опція призначення розмірів текстури.
Ця опція працює тільки на одній, одиничній поверхні.
Ця текстура все одно, завжди - прямокутник в якому зони зовні обрисів вихідної поверхні просто заливаються білим кольором.
Створення нового матеріалу можливо не тільки з растра, але і з матеріалу - фарби. В такому разі застосування вихідного матеріалу з групи Colors (кольори), з'являється ще віконце проміжної опції - призначення розмірів текстури (Рис.Б).
Combine Textures (комбіновані текстури).
Розділимо поверхню на частини(Рис.16). Потім призначимо кожної з частин різні матеріали, виберемо їх разом і застосуємо опцію:
Рис.16. Розділення поверхні на частини.
Як бачимо, опція дуже схожа за змістом на попередню - тут також створюється новий матеріал - єдина текстура, скомбінована з вихідних частин. Є можливість в віконці - видаляти внутрішні межі, що розділяють ребра, чи ні.
Add Photo Texture (призначити фототекстури) - хоча ця опція за назвою явно належить до текстурованню матеріалами, вона насправді є частиною іншої групи функцій - інструментів, сервісів Google. Цей пункт контекстного меню доступний для всіх плоских поверхонь і в будь-яких поєднаннях і одиночних, і при їх множині виборі, і для вже забарвлених, і з матеріалами за замовчуванням.
