Главная Партнеры Контакты  
Юридическая компания — «Основной закон», консультации и помощь в возвращении депозитов, защита по кредиту

ЮК
"ОСНОВНОЙ ЗАКОН"  

г. Киев, бул. Пушкина, 2а                
тел.: (044) 334-99-77                               
         (095) 407-407-3
         (096) 703-11-82

график работы: пн.- пт. с 9:00 до 18:00
          
                           

 












Рассматривается вопрос о предоставление нотариусам права выдачи извлечения из Реестра прав на недвижимое имущество.
Министерством юстиции был разработан проект Закона «О внесении изменений в некоторые Законы Украины относительно предоставления информации о государст...


Держреєстрація речових прав на нерухоме майно та їх обтяжень у 2014 році буде здійснюватись за новою - удосконаленою та спрощеною - процедурою.
Постанова Кабінету Міністрів "Про затвердження порядку державної реєстрації прав на нерухоме майно та їх обтяжень і Порядку надання інформації з Держа...




Система Orphus


Особливості моделювання світла: Ефект "розмиття" в русі (Motion Blur)

  1. Що таке Motion blur? Motion Blur в перекладі з англійської означає "ефект розмитості зображення при...
  2. Чому ми повинні це враховувати?
  3. Детальніше ...
  4. Імітація ефекту Motion Blur на зображеннях
  5. Motion blur або Temporal anti-aliasing (Перехідний згладжування)
  6. Особливості програмування motion blur
  7. Motion blur Demo
  8. Приклад анімації із застосуванням motion blur
  9. [Читайте на цю тему: прорахунок тіней ]

Що таке Motion blur?

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

Чому це відбувається?

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

Чому ми повинні це враховувати?

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

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

Погляньте на деякі комп'ютерні анімації, в яких не застосований ефект програмний або апаратний motion blur - рух в цьому випадку виглядає смикати і дуже нереалістичним. Ви також можете помітити цей ефект у випадку з телевізійним оглядом спортивних подій. Звичайна камера фіксує 25 кадрів в секунду. Спеціалізована, спортивна камера здатна фіксувати до 1000 кадрів в секунду. Проте при телемовленні в телесигнал вставляється тільки мала частина з цієї послідовності, ефект motion blur помітно зменшується, і при перегляді подібних роликів рухомих об'єктів мерехтить.

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

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

Більш того, зображення з ефектом motion blur несе в собі дещо більше потрібної для нашого мозку інформації. Порівняйте два малюнки:

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

Детальніше ...

Добре, тоді давайте для початку розглянемо, як працює кінокамера.

Основні елементи кінокамери це:

  • Об'єктив - містить лінзи, що забезпечують необхідне фокусна відстань.
  • Затвор - відкривається і закривається на дуже нетривалий час з частотою 25 разів на секунду.
  • Кіноплівка - має спеціальне світлочутливі покриття.

На малюнку праворуч ми бачимо схематичний малюнок процесу зняття на кіноплівку нерухомого червоної кульки. Кінокамера зображена у вигляді її основних частин: лінз, затвора і самої плівки.

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

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

А тепер зробимо зйомку того ж кульки, тільки тепер він буде швидко рухатися в напрямку стрілки.

Затвор відкривається, і плівка починає реєструвати світло від рухомого кульки. Процес дуже нагадує попередній, але тепер зображення кульки на плівці буде втрачати чіткість і виглядати розмитим. Це розмитість руху, або motion blur.

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

Імітація ефекту Motion Blur на зображеннях

1. Просторовий (spatial) anti-aliasing

У загальному сенсі аnti-aliasing - це спеціальна технологія по зниженню видимості побічних ефектів дискретного (цифрового) перетворення. Варіантів прояви цих побічних ефектів (aliasing) багато, наприклад: прояв ступенчатости на прямих, розташованих під кутами, відмінними від 90 градусів, призвести до появи надлишкового Муар на зображеннях формату JPEG і т.д. Всі ці прояви виникають в місцях різкої зміни інформаційного наповнення потоку даних (наприклад, різкі колірні і яскравість переходи) і пояснюються недостатньою частотою дискретизації.

Ймовірно, ви вже знайомі з одним їх варіантів реалізації anti-alising на зображеннях - це super sampling. Super sampling має на увазі собою рендеринг зображення в кілька разів більшого, ніж нам необхідно, а потім зменшення його до потрібного нам розміру при усередненні кольоровості груп прилеглих пікселів в один.

Ми розглянемо процес створення зображення з super sampling anti-aliasing, тому що процедура створення motion blur дуже його нагадує.

Для прикладу створимо зображення кільця розмірністю 50х50 пікселів.
Для прикладу створимо зображення кільця розмірністю 50х50 пікселів

Для початку нам необхідно зображення з більшою кількістю пікселів

Створимо зображення розмірністю 200 х 200 пікселів, що в 4 рази більше того, що ми хочемо отримати.
Створимо зображення розмірністю 200 х 200 пікселів, що в 4 рази більше того, що ми хочемо отримати

поділимо зображення

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

усереднення

Тепер для кожного маленького шматочка візьмемо середнє значення кольоровості знаходяться в ньому пікселів і заповнимо кожен шматочок відповідним середнім значенням.
Тепер для кожного маленького шматочка візьмемо середнє значення кольоровості знаходяться в ньому пікселів і заповнимо кожен шматочок відповідним середнім значенням

Зменшення розміру (Resize)

А тепер зменшимо отримане зображення до потрібних нам розмірів в 50 х 50 пікселів.

На отриманому зображенні (візуально) всі переходи плавні, і ми навряд чи зможемо помітити ступенчатость зображення.

Motion blur або Temporal anti-aliasing (Перехідний згладжування)

Для отримання motion blur потрібно виконати операції, подібні описаним вище. Метод для згладжування готових зображень називається spatial anti-aliasing, що означає згладжування всього зображення. А метод, застосовуваний для motion blur, називається temporal anti-aliasing, що означає згладжування перехідних процесів в часі.

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

a. Створюємо надмірна кількість кадрів

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

б. поділимо анімацію

Просто розділимо послідовну анімацію на групи по 4 кадри.

в. усереднення

Усередині кожної групи кадрів зробимо змішування кадрів в один.

м Складемо нову анімацію з цих кадрів

Все зроблено. У нас залишиться рівно 100 кадрів для 4 секунд перегляду. Якраз те, що нам потрібно, але тепер на кожному кадрі буде мати місце перехідний згладжування (motion blur).

Особливості програмування motion blur

Отже, ви готові використовувати motion blur в своєму проекті. Наскільки точно його моделювати? Відповідь - все залежить від поставлених завдань.

Здійснення повномасштабного motion blur в реальному часі - це дуже важке завдання. Ви повинні зуміти в кілька разів збільшити швидкість виведення на екран (framerate), і для переважної більшості додатків єдиний спосіб досягти цього - це істотне зниження деталізації. У багатьох випадках це просто неприйнятно.

У деяких комп'ютерних іграх motion blur реалізується шляхом з'єднання поточного кадру з попередніми таким чином, щоб попередні кадри залишалися видимими протягом деякого, короткого проміжку часу. Це не є motion blur в принципі, виглядає дуже незграбно і просто забирає дорогоцінний процесорний час.

Ймовірно, за рахунок зниження рівня деталізації, ви зможете досягти прийнятного motion blur, але частіше за все трохи motion blur ви все ж зможете додати без істотних жертв. Ви можете забезпечити ефектом motion blur тільки об'єкти з найбільшою швидкістю переміщення. Більш того, ви можете піти на деякі хитрощі, щоб зімітувати motion blur. Наприклад, розлітаються частинки розпеченого речовини в місці вибуху можна рендерить у вигляді коротких ліній, а не у вигляді точок. Це створить враження motion blur. Те ж саме можна віднести і до процесу візуалізації водоспадів і пострілів зі зброї. Часто, коли граєш в автосимулятори, можна на жаль помітити, що обертання коліс автомобіля виглядає дуже неприродно. Колеса автомобіля обертаються з такою шаленою швидкістю, що будь-які деталі обода і покришок просто не повинні бути помітні. (Погляньте на колеса мчаться автомобілів в NFS III або IV. Їх неприродне рух дуже псує вигляд. В цьому відношенні дуже реалістично виглядають моделі в авіасимулятор Viper Racing, наприклад) Дуже зручним рішенням в цьому випадку може бути попередня підготовка декількох текстур коліс, прорахованих з різним кількістю перехідного згладжування. І в міру все більш і більш швидкого обертання коліс використовувати все більш і більш "розмиті" текстури. Це не забере багато часу у процесора. Такий же підхід необхідний і до текстури дороги. Це значно додасть реалізму грі при невеликому впливі на продуктивність в цілому.

Якщо ж ви готуєте анімацію заздалегідь, і вона не буде прораховуватимуться в реальному ігровому часу, тоді вам дійсно варто витратити деякий час на реалізацію motion blur в своєму проекті. Це особливо важливо, якщо ви визуализируете швидко переміщаються об'єкти. Однак, знову ж таки, все залежить від тих цілей, яких ви хочете досягти. Наприклад, якщо вам життєво необхідно мати можливість робити чіткі стоп кадри з анімації, то вам, напевно, слід відмовитися від застосування motion blur; але в цьому випадку ви повинні уявляти, що сама анімація буде виглядати дещо нервово, і у глядача складеться враження мерехтіння.

Motion blur Demo

Ви можете завантажити собі на комп'ютер і переглянути програму демонстрації ефекту motion blur звідси: motion.zip .

Програма має наступні клавіші управління:

  • S: Toggle slow motion (повільний рух, вмикання / вимикання)
  • M: Toggle between correct and false motion blur (Неправильний motion blur, вмикання / вимикання)
  • 3: Toggle Red / Blue 3D mode (Червоний / Синій режим 3D, вмикання / вимикання)
  • up / down arrows: more / less motion blur accuracy (Точність реалізації motion blur)
  • left / right arrows: adjust background brightness (Яскравість фону)
  • ESC: quit (Вихід)

Приклад анімації із застосуванням motion blur

Кожен кадр цієї анімації був виготовлений за допомогою Terragen

Spatial і Temporal anti-aliasing (motion blur) накладено за допомогою Bitty

Остаточна анімація і об'єднання кадрів в послідовність були зроблені за допомогою Bink!

Вам необхідний Bink Player для перегляду цієї анімації.

  • Формат: Bink (* .BIK)
  • Дозвіл: 320 × 240 pix
  • Кількість кадрів: 160
  • Швидкість виведення (FPS): 25 кадрів / сек
  • Розмір файлу: +1379 кбайт

[Читайте на цю тему: прорахунок тіней ]


Матеріал для даної статті люб'язно надав Hugo Elias


Що таке Motion blur?
Чому ми повинні це враховувати?
Чому це відбувається?
Чому ми повинні це враховувати?
Наскільки точно його моделювати?
Главная Партнеры Контакты    
Cистема управления сайта от студии «АртДизайн»