Цей розділ буде присвячений деяким з фізичних принципів, реалізація яких при комп'ютерному моделюванні навколишньої дійсності дозволить об'єктам виглядати саме так, як вони повинні виглядати. Ми так само поговоримо про деяких часто використовувану спрощеннях, що дозволяють збільшити швидкість прорахунку зображення.
Світло складається з дрібних згустків енергії (часток), називаних фотонами. Фотон, з одного боку, це частка, з іншого боку - хвиля, це означає, що він має властивості, властиві як хвилям, так і часткам. Ці енергетичні згустки відриваються від джерела енергії і прямолінійно поширюються в просторі, поки не відбудеться зіткнення з зовнішнім об'єктом у просторі[2].
При зіткненні фотона з зовнішніми об'єктами може відбутися:
У дійсності, фотонів дуже багато. Так багато, що ми можемо сказати - їх невиразно багато. Виходячи з цього, ми можемо зневажити фактом, що світло складається з одиничних фотонів і розглянути світло як безупинний потік енергії. У цьому випадку до світла можна застосувати статистичні закони, і отримані результати будуть досить акуратні саме завдяки величезній кількості задіяних фотонів. Таким чином, світло може бути (легко?) змодельований на комп'ютері[3].
Взаємодія світлового потоку з навколишніми предметами (об'єктами) дозволяє нам бачити їх. Світло виходить із джерела світлової енергії. Трильйони фотонів вириваються і з величезною швидкістю несуться від джерела, взаємодіючи з предметами, ударяючи кожну дрібну деталь навколишнього оточення. Невелика кількість з них попадає в маленьку темну пляму в середині нашого ока. Це зіниця. По дуже вагомій причині, суть якої буде пояснена нижче, наша зіниця чорний. Око улаштоване таким чином, що він трохи підправляє напрямок руху фотона перед тим, як він досягне задньої частини ока. Тут фотон поглинається світлочутливими рецепторами. Ці рецептори дають відповідні сигнали нашому мозку. Мозок інтерпретує послідовність сигналів, що надійшла, і постачає нас докладною інформацією про наше оточення. Зображення, що ми бачимо насправді, не є відповідним йому набором фізичних предметів. Усе, що ми одержуємо, насправді лише його енергетичний відбиток, що пройшов величезну кількість складних перетворень у нашому мозку. Синій об'єкт - не є в дійсності синій. Він вважається синім тому, що ми інтерпретуємо світло, що прийшло від нього, як синій.
Через досвід наш мозок учиться визначати і розпізнавати безліч образів і відбитків, що створює світло про навколишню нас дійсності. Дитина бере предмет, дивиться на нього мить, потім тягне в рот. Його мова - це прекрасний датчик, і може визначати форму і вид поверхні предмета практично так само, як і око, а іноді і краще. Дитина учиться асоціювати те, що він бачить з тією формою, що йому описав мову. Згодом дитина довідається, що той самий предмет може виглядати по-різному в залежності від того, як його тримати, хоча він як і раніше є тим же самим предметом. Це очевидно - подумаєте ви, але було виявлено, що сліпим з народження людям, яким медицина повернули зір, зрозуміти вищевикладене дуже складно. Їм також складно засвоїти зміст тіні і відображення, суть яких видючі люди пізнали ще від народження. І сам факт того, що ви можете бачити, ще не означає, що ви можете зрозуміти те, що бачите[4].
У цьому і полягає різниця між Даними (Data) і Інформацією (Information). Дані -і це світловий образ, що формується на сітківці ока. Інформація -і це інтерпретація цього образа нашим мозком[4].
Створюючи зображення будь-якого виду, ви намагаєтеся сформувати світловий образ на сітківці ока таким чином, щоб він інтерпретувався мозком як предмет, що відображає це зображення. Тренований мозок може витягти величезна кількість інформації з зображення. Завдяки цьому в голові ми можемо одержати повне тривимірне представлення сцени, зображеної на двомірній картинці. Щоб одержати це, наш мозок аналізує порядок взаємодії світла зі сценою (набором об'єктів зображених на картинці) і на основі такого аналізу даних видає нам кінцеве тривимірне представлення сцени.
Людський мозок може витягти й інтерпретувати 4 інформаційних ресурси з потоку видимих даних.
Форма
Це зовнішній вигляд об'єкта (предмета) у сцені, його видимі границі і краї. Ок людини має здатність поліпшувати чіткість сприйманого зображення, що дозволяє впевненіше розпізнавати краю предметів; (до місця сказати, що багато комп'ютерних програм для обробки зображень використовують алгоритми, що дозволяють одержувати поліпшення чіткості, подібні тим, які робить око людини.)
Відтінки
Відблиски і тіні. Тон і структура поверхонь.
Колір
Три кольори можуть бути виявлені людським оком -- червоний, зелений і синій.
Рух
Мозок людини особливо сприйнятливий до руху об'єктів. Прекрасно "камуфльована" тварина миттєво буде виявлена, якщо вона поворухнеться. Дуже часто, якщо ви втратили курсор на екрані монітора, кращий спосіб знайти його - рушити мишкою.
Спеціальні відділи головного мозку відповідають за обробку цих чотирьох інформаційних ресурсів. Це було неодноразово доведено у випадках аналізу черепно-мозкових травм, одержуваних людиною. Як тільки людина одержує травму і позбавляється відділу головного мозку, що відповідає за кожною з перерахованих вище ресурсів, то він відразу втрачає здатність до сприйняття цієї інформації. Наприклад, в одному випадку жінка втратила здатність відчувати рух. Вона могла бачити так само, як усі, за винятком здатності чуйно визначати рух об'єктів. Наприклад, вона могла бачити автомобілі на дорозі, але ніколи не могла сказати з першого погляду - рухаються вони чи ні.
Здатність до сприйняття приймається людиною як саме собою що розуміється. Прийнято вважати, якщо ви можете бачити, те, виходить, ви в стані визначити форму, відтінки, колір і рух. Але це не завжди так.
Не менш важливою є інформація, що мозок чи додає видаляє під час аналізу. Коли ми споглядаємо, ми маємо справу з гігантськими обсягами інформації. Було б просто неможливим проаналізувати і запам'ятати всі зведення до дрібних деталей. Так це і не потрібно. Велика частина зведень (даних), що надходять нам через зір, не мають яку-небудь цінність. Мозок автоматично робить фільтрацію цього "сміття", дозволяючи нам сконцентруватися на більш значимій інформації. Що ще більш важливо, мозок також додає відсутню інформацію. Людський зір має "мертві зони", але, проте, ми цього не зауважуємо, тому що пробіли будуть завжди заповнені придатною інформацією. Наш мозок багато прощає.
Для програміста це означає те, що йому зовсім не потрібно прорисовувати зображення з точністю до дрібних деталей. Більшість з цих деталей буде просто зігнороване і "заповнено" чим - те іншим. Ваша картина може бути значно спрощена. От, наприклад, у фільмі "Повернення Джедая" зі знаменитих "Зоряних Воєн" один з космічних кораблів у просторі - це звичайний черевик. Але ніхто цього не помітив, тому що очікували бачити космічний корабель, і в тім місці дійсно був об'єкт, що нагадує його своєю формою, тому всі і бачили саме космічний корабель.
Ви можете ще більш спростити своє кінцеве зображення, якщо сцена знаходиться в русі. Натисніть паузу на відеомагнітофоні і подивитеся на нерухоме зображення, воно виглядає нікуди негідним, але ми цього не зауважуємо, коли воно в русі.
Ціль програміста, що відповідає за висновок графіки в реальному часі, - забезпечити такі процедури апроксимації у візуалізуючих фрагментах коду, що поліпшують реалізм і точно передають атмосферу, дух створюваного вами світу. Інше нехай робить мозок. Ціль програміста фотореалістичної графіки - спробувати змоделювати взаємодія світла з об'єктами сцени настільки акуратно, щоб воно могло витримати скрупульозну перевірку людським мозком.
Світло
Як визначити яскравість світла?
Представте, що у вас є ідеальне джерело світла. Таке джерело не має обсягу і розмірів, а існує у виді крапки в просторі. Його можна включити і виключити, і це переключення відбувається миттєво, без утрат часу на перехідні процеси[2]. Це саме те джерело світла, з яким можливо працювати усередині віртуального світу комп'ютера. У реальному світі такі джерела неможливі. Надалі ми також побачимо, що і реальні джерела, у свою чергу, дуже складно створити у віртуальному світі.