Список разделов » 3D Уроки

Наука создания фотореалистичного 3D

» Сообщения

Наука создания фотореалистичного 3D







Работа Mountain trail созданная китайским автором Tu Yun (Maya, Photoshop)





Автор: yuriki



Источник: www.3dyuriki.com





Читать обязательно ВСЕМ (неважно, профессионал вы или новичок – полезное для себя найдут все), кто хоть как-то связан с компьютерной графикой (КГ, computer graphics (CG)).





Этот цикл статей о том, как избежать самых распространенных ошибок всех новичков и поднять уровень своего кун-фу… тьфу, не то… уровень своего 3D до новых фотореалистичных высот.





Введение в физику компьютерной графики.





Признак опытного CG-специалиста – это использование физически корректного процесса работы. Если вы будете работать в соответствии с физическими законами (или так близко к ним, как позволяет ваше знание физики и математики), то вы получите более предсказуемый результат.





Накладывая одну техническую уловку (чаще всего в настройках материала и/или света) поверх другой, вы быстро создаете такую структуру сцены, которую сложно изменять и управлять ей. Более того, если такие материалы осветить не так, как изначально задумывал дизайнер шейдеров (shaders - материалы), то в лучшем случае результат будет странным, в худшем – придется все переделывать наново.







Это особенно важно, если вы работаете в команде, где ваша работа передается дальше по цепочке. И с вашей сценой потом будет работать другой человек, который будет настраивать другой ракурс и ставить другое освещение.





Старайтесь сохранить физическую правильность как можно дольше и используйте свое «право на вольность художника», только если это абсолютно необходимо.





Поэтому имеет смысл изучать искусство фотографии и способы традиционного освещения, чтобы знать, как обойти законы физики без их нарушения.





Лучшие способы получить худшую 3D-картинку.





- Не используйте глобальное освещение (Global illumination - GI) – оставляйте 100% черные тени. Также можно просто чрезмерно засветить картинку.





- Использовать только процедурные шейдеры и ни в коем случае не прибегать к вручную нарисованным текстурам. Можно также использовать элементарные повторяющиеся (тайленые - tiled) текстуры.





- В текстурах максимально использовать: 100% белый, 100% черный и чрезвычайно насыщенные цвета.



Не используйте отражательную способность материалов и тем более не делайте текстур для передачи свойств отражения.





- Если вы (по какой-то ненормальной причине) решили использовать отражения, то используйте только зеркальное отражение и ни в коем случае не размывайте его.





- Под любым поводом игнорируйте такую вещь как френелевское затухание (Fresnel falloff).





- Не обращайте внимания на бамп (bump) и дисплейсмент (displacement). Старательно притворяйтесь, что простая и абсолютно гладкая поверхность, которую вы создали, действительно существует в реальности.





- Активируйте устарелую симуляцию "Освещение окружения" (Ambient Lighting) и не используйте свойство света затухать обратно пропорционально квадрату расстояния. Исключение составляют только солнце и луна – им нужно включить эту возможность. Игнорируйте масштаб сцены.





- Всегда используйте жесткие (по краям, неразмытые) тени.





- Не используйте опции камеры из реального мира. Игнорируйте экспозицию (exposure), глубину резкости (depth of field) и ни за что не делайте движущиеся объекты размытыми (motion blur).





Использование этих инструкций гарантирует достижение вами невыразительной компьютерной графики.





Это самые распространенные ошибки новичков. Но это не значит, что этих правил всегда нужно избегать. Вообще-то, все их можно в полной мере использовать по определенным эстетическим или техническим соображениям, но с осторожностью.





Все современные системы рендеринга, основанные на построении траектории луча света, используют физически-корректные расчеты (т. е. основанные на физических законах реального мира, но не физически точные, конечно). Поэтому так важно понимать принципы работы реальных материалов и реальных фото- и видеокамер, чтобы изучать освещение и материалы в КГ.





Создавая фотореалистичную картинку, мы делаем ее именно ФОТОреалистичной. Это означает, что когда мы рендерим сцену, то мы имитируем ФОТО и ВИДЕОизображение реального мира, а не то как МЫ ВИДИМ реальный мир.





Реальные объекты и их имитация с помощью 3d-геометрии.





Геометрия большинства компьютерных (CG) моделей не может сравниться с геометрией и микроструктурой объектов из реального мира.





Моделирование всех деталей не имеет смысла, поскольку такую модель будет сложно привязывать (rig) и текстурить (map). Также будет накладно вращать такую модель в окнах проекций 3d-редактора, поэтому мы используем карты дисплейсмента, бампа или нормалей (normal maps).





Совет: для достижения реалистичного результата - ВСЕГДА используйте бамп, а лучше дисплейсмент на ЛЮБОЙ поверхности.





К примеру, в любом фильме с применением КГ используют как МИНИМУМ цвет, бамп (и/или дисплейсмент) и карту зеркальности (specular) для КАЖДОЙ поверхности. Это в дополнение к тому, что для всех этих параметров создается вручную нарисованная текстура, а не просто выставляется числовое значение.





Грязь (Dirt).





Конечно, в архитектурной визуализации не делают грязные и старые дома (если сам клиент этого не захочет). Но грязь помогает «выдать» картинку за реалистичную.





Даже идеальное здание – никогда не идеально.





Грязь – это прекрасно, грязь – это детали, грязь – это масштаб. Запомните: чем мельче детали грязи, тем массивнее кажется объект.





Масштаб грязи говорит о масштабе объекта.





Моделируйте только то, что вы видите (используйте референсы (references) – примеры из реальной жизни, фото и видео справочную информацию).





По возможности моделируйте с точностью до пикселя, а не до 1/8 сантиметра. Используйте масштаб из реального мира. Измеряйте вашу модель если возможно.





Вы должны стараться сопроводить любую вашу модель текстурами большого разрешения и, конечно же, делайте развертку (unwrap) всех объектов.









Скругление углов, фаска.





Есть одна вещь, которая касается моделирования, но относится к освещению – это скругление граней (fillet - фаска). Фаску делают ради игры света на ней. Световые блики на фаске особым образом подчеркивает форму объекта со скругленными углами.









Но нужно тщательно продумывать размер скругления. Не нужно делать десятиметровые скругления на отдаленных зданиях для миленьких бликов, сделайте фаску реалистичных размеров.





Кстати, очень часто, начинающие тридешники интенсивно используют операции Boolean. Никогда этого не делайте. Лучше с детства приучится к хорошим манерам и использовать Boolean только в крайних случаях. Даже самую изощренную фаску можно сделать не прибегая к булевым операциям.

Дата сообщения: 24.09.2010 21:46 [#] [@]

Часть 2. Наука освещения в 3D





Работа Galapagos Giant Tortoise (Галапагосская гигантская черепаха) сделана австралийцем Eoin Cannon в 3ds Max, ZBrush и Photoshop





Вторая часть статьи о науке создания фотореалистичной картинки посвящена принципам освещения в компьютерной графике. Эти, на первый взгляд, простые принципы освещения, позволят вам визуализировать ТАКУЮ картинку, которая не будет вас раздражать своей "компьютерностью".





Закон сохранения энергии.





Закон сохранения энергии гласит: любое отраженное значение не может быть больше, чем в начале (своего пути). Поэтому отражения объектов должны быть более тусклыми, чем сами отраженные объекты. Это обусловлено обратноквадратичным затуханием (читайте о нем ниже).





Тем не мене, лучшее серебряное зеркало отражает 99% света. Поэтому, никогда не отражайте больше света, чем излучили.





Яркость (brightness) также не должна принимать значения 0% или 100%, поскольку также должен выполняться закон сохранения энергии. Обычно нужно выставлять значение яркости для цвета (diffuse) около 20-80% для диэлектриков, но 0% для металлов (почему так, объясню позже).







Значение насыщенности цвета (saturation) тоже не должно быть 100%, держите его на уровне 80%, поскольку материал не может стопроцентно отражать (или поглощать) весь свет.













Свет.





Существует прямой и непрямой свет. Прямое освещение – это случай когда луч попадает на поверхность и… там же останавливается. В этом случае свет не отбивается от поверхности. В реальном мире такое никогда не случается.









Конечно, по своим эстетическим причинам вы можете сделать тени абсолютно черными, но это здесь обсуждаться не будет.







Обратноквадратичное затухание света (Inverse-square Light Falloff) означает, что с увеличением в два раза расстояния от источника света до объекта, яркость света уменьшается в 4 раза.





Световая перспектива (Light Perspective): чем дальше источник света (ИС), тем более однородным будет освещение.





Если вы отодвинете источник света в два раза дальше и увеличите яркость источника в 4 раза, то получите ту же саму интенсивность освещения, но радиус затухания будет больше.



Именно по этой причине для солнца, которое находится так далеко и имеет такие огромные размеры, не имеет смысла использовать обратноквадратичное затухание. Поэтому мы игнорируем это затухание в КГ и не используем его для солнца, луны и света от звезд.





Поэтому так важно запомнить одну штуку: очень важен реалистичный размер сцены, поскольку реалистичное затухание света неразрывно связано с размером сцены и яркостью источника.









Обратноквадратичное затухание отраженного света.





Если вы пододвинете источник света ближе к его зеркальному (не глянцевому) отражению, то размер его отражения увеличится, но не станет ярче. Чтобы это стало понятно, рассмотрим пример. Вы пододвинули источник света в 2 раза ближе к его зеркальному отражению. Как следствие, в 4 раза увеличилась яркость отраженного источника, НО ведь и площадь отраженного источника увеличилось в 4 раза. Поэтому суммарная яркость отражения не меняется.





Также, глянцевое отражение источника света может казаться ярче, чем зеркальное отражение. Но это за счет того, что площадь блика у глянцевого отражения больше (при других равных условиях). И хотя маленькое концентрированное зеркальное отражение на самом деле ярче, но мы этого не видим из-за ограниченного динамического диапазона.









Угол падения равен углу отражения.





Этот закон можно использовать для выставления камеры относительно зеркального объекта, который вам нужно осветить. Вы можете на глаз оценить, где нужно поместить источник, чтобы он отражался и попадал в камеру.





В 3ds Max есть инструмент выравнивания блика - «Place Highlight», с помощью которого можно поместить блик на объекте в нужное место.





Рассеивание света.





В реальном мире свет постоянно рассеивается. Очень редко можно встретить четкую тень или четкое пятно света от прожектора. Но при создании прожектора (spotlight) в 3d-редакторе вы получаете источник света без затухания по краям, что неправильно. Края должны быть размыты. Сравните, к примеру, с неточечным источником (area light – можно встретить разные варианты перевода этого термина: объемный ИС, рассеивающий ИС), который представляет собой отличный пример реалистичного источника света.





Дата сообщения: 25.09.2010 23:08 [#] [@]

Часть 3. Тень, каустика, засветка изображения и др. в компьютерной графике





Работа Body Builder сделана китайским автором Jian Xu в 3ds Max, ZBrush, Photoshop (рендер в Mental Ray)





Тень в компьютерной графике.





Тень может быть как четкой, так и рассеянной в зависимости от размера источника света. Если не уверены - используйте мягкую тень вместо четкой.





Мы слишком часто видим визуализаию машины на зеркальной поверхности с крайне резкими тенями. В реальной жизни как первое, так и второе - редкость.









Если вы хотите добиться фотореалистичности, то нужно также помнить о воздушной перспективе. Этот эффект обязательно должен присутствовать на ваших экстерьерах (а часто и в интерьерах).





Проблема засветки изображения.





На очень светлых (overexposed - передержанных) участках рендера картинка может выглядеть слишком насыщенной, что, конечно же, неверно. Этот дефект должен быть исправлен при постобработке или в Photoshop’е, или в программе для композитинга (compositing).





Вы должны отметить, что на фотографиях тень может быть насыщенной, но чем больше света в кадре, тем менее насыщены цвета (хотя и не всегда, руководствуйтесь своими эстетическими соображениями).









Свойства света в 3D.





Когда фотон (photon - элементарная частица света, квант света) сталкивается с поверхностью происходит одно из трех явлений (по крайней мере, именно эти три случая имитируют в КГ):





- Отражение.



- Прохождение (прозрачность, полупрозрачность, а также подповерхностное рассеивание).



- Поглощение.





Объект также может испускать свет – это называется излучение.









Типы материалов.





В реальном мире существует два типа материала (вообще-то три, но для КГ третий тип – полупроводники, не имеет ценности):





- Проводники (металлы).



- Диэлектрики (все остальные материалы).



В результате отражения света или его прохождения сквозь объект имеют место следующие эффекты:





- Окрашивание (color-bleeding – колор блидинг, линька, перепечатывание цвета), если свет отражаясь рассеивающей поверхностью (diffuse surface) окрашивает близлежащие поверхности.



- Отраженная каустика (reflection caustics - отраженные блики) если свет отражается зеркальной поверхностью.



- Преломленная каустика (refracted caustics - преломленные блики) если свет проходит сквозь преломляющую поверхность.



- Подповерхностное рассеивание (subsurface scattering) если свет частично поглощается поверхностью, а частично выходит с той же стороны.











- Каустика – происходит из-за фокусировки света. Каустика может порождаться отражающими или преломляющими поверхностями.





Ну что ж, мы подбираемся к самой интересной части статьи – Виды отражений в компьютерной графике.

Дата сообщения: 26.09.2010 01:55 [#] [@]

Часть 4. Виды отражений в компьютерной графике







О видах отражений





В зависимости от качества поверхности, отражения делят на:





- Зеркальные отражения (Specular reflections) характерны для отполированных, очень гладких поверхностей. Это – поверхностный эффект. Specular это корень греческого слова "зеркало".



- Диффузные (рассеянные, размытые) отражения (Diffuse reflections) характерны для шершавых поверхностей. Это – подповерхностный эффект.



- Глянцевые отражения (Glossy reflections) - это что-то среднее между зеркальными и диффузными отражениями.









Есть определенные зеркальные отражения, которые характерны только для металлов – окрашенные отражения.





Проводники (металлы) не имеют подповерхностных отражений, а только поверхностные (зависящие от состояния (степени полировки) поверхности - зеркальные или матовые).









Диффузные отражения характерны для диэлектриков, именно поэтому их поверхность имеет диффузную составляющую цвета поверхности.









1. Отражения.



Отражение – это случай, когда фотоны отскакивают от поверхности. И это не благодаря микроструктуре поверхности, это благодаря ее атомному строению.





Диэлектрики всегда отражают точно такой по цвету свет, как и тот, что на них светит. Т.е. их отражения всегда "белые", бесцветные, чистые.





Проводники же окрашивают свои отражения.





Но есть редкие исключения, к примеру, атлас.





Тот цвет, в который окрашивают проводники свои отражения, зависит как от типа проводника, так и от угла под которым свет отражается от поверхности. К примеру, свет, падающий на золотую поверхность под большИм углом (скользя по поверхности), окрашивается в желтый не так сильно, как свет, падающий на золотую поверхность перпендикулярно (в лоб).





Зеркальные отражения могут быть:





- Изотропными (isotropic).



- Анизотропными (anisotropic).





Анизотропные отражения вытянуты в направлении перпендикулярно углублению в отличие от равномерных невытянутых изотропных отражений. Вытянуты не только световые блики, но также и отражения окружающих объектов.













Основной вклад в цвет отраженного света (в диффузную часть) вносят подповерхностные эффекты. А поверхностные эффекты зависят от степени шероховатости поверхности: начиная зеркальными и заканчивая диффузными (Lambert - Ламберт) отражениями.







BRDF





Bidirectional reflectance distribution function (BRDF) - двунаправленная функция распределения отражений (поверхностных отражений) описывает, как свет отражается или поглощается поверхностью в зависимости от разных углов падения.





Существует три вида BRDF:





- Упрощенная BRDF (без учета трассировки лучей (raytracing – построение хода луча)).



- Гибридная BRDF (упрощенная + raytracing).



- Измеренная BRDF (комплексная, основанная на реальных измерениях).



На момент написания статьи, наиболее популярной была гибридная BRDF, а измеренная BRDF еще не была доступна (простому пользователю). И, несмотря на то, что разработчики рендерера VRay уже создали рабочий прототип измеренной BRDF, но библиотек измеренных данных пока не существует.





Гибридная BRDF обеспечивает более реалистичный результат, чем упрощенная, ну а измеренная BRDF дает еще более реалистичную картинку.





Это видео 2007-го года:













На данный момент похожие технологии нашли применение почти во всех современных фильмах со спецэффектами: последние части Спайдермена, Кинг Конг, Супермен возвращается, Хэнкок, Загадочная история Бенджамина Баттона и, конечно же, Аватар. Во всех этих фильмах использовались разные версии оборудования и программного обеспечения Light Stage.





Упрощенная BRDF.



Упрощенная BRDF основана на цвете (diffuse) и отражениях.





На ранних стадиях развития КГ трассировки лучей еще не было, а соответственно и не было возможности настройки трассируемых отражений. Вот так возникла идея создания зеркальных световых бликов - фальшивых бликов. Сейчас все больше и больше людей стремятся использовать трассируемые отражения вместо фальшивых CG-бликов, которые понемногу устаревают.





Эта ситуация отлично отражена в 3D-редакторах: каждый современный рендерер обычно комплектуется объемным источником света (area light), который имеет реальное свое отражение (поскольку рендерер действительно может визуализировать трассируемое отражение) и при этом старые источники света не имеют реальных отражений, а только фальшивый зеркальный блик. Но, тем не менее, фальшивые блики все еще полезны.









Lambert и Oren-Nayar (Орен-Найар) – это наиболее распространенные упрощенные модели BRDF для цвета (diffuse).





Ламберт (просто цвет).









Ламберт – по-простонародному это обычный диффузный (рассеянный) свет, а если по-научному – подповерхностное рассеивание. Другие модели работают в основном с фальшивыми зеркальными бликами (Blinn (Блин), Phong (Фонг)), которые обычно добавляются поверх Ламберта.





BRDF по Ламберту симулирует подповерхностное рассеивание таким образом: свет входит в материал равномерно рассеивается и выходя наружу попадает в объектив камеры. Но вы должны понимать, что свет, который попадает внутрь материала (при этом он там многократно отражается от атомов) и выходит наружу не может вести себя точно также как свет, который зеркально отражается от поверхности. Поэтому данная модель BRDF по Ламберту не отражает картину окружения.





С другой стороны, поверхностное отражение, никогда не будет таким однородным как подповерхностное, поэтому поверхностное отражение всегда будет концентрировать больше света в участках блика на объекте, что будет походить на источник света. Попросту, поверхностное отражение это прямое отражение источников света, и оно будет четче, чем подповерхностное отражение, которое очень сильно рассеяно (размыто).





Орен-Найар (цвет шершавых поверхностей).









Существует также "шершавая" функция для "цвета" (подповерхностного отражения). Называется она модель BRDF Орена-Найара. Эта модель имеет параметр для контроля шершавости поверхности. Этот параметр определяет, сколько света отразится назад в направлении источника света, что является характеристикой "шершавой" (запыленной) поверхности. Чем более шершавая поверхность, тем менее отчетливым является диффузное отражение.





Шершавость не значит реально шершавый (как наждачная бумага, к примеру). Речь скорее идет о малюсеньких выступах (микроструктуре) на поверхности. Поэтому шершавой считается поверхность кожи и бархата из-за наличия очень мелких деталей, таких как поры кожи и волокна бархата.





К примеру, поверхность пластика не такая шершавая. А резина, камень, ржавчина значительно грубее (шершавее) кожи или бархата.





Шершавя поверхность рассеивает свет во всех направлениях, но абсолютно неравномерно. Поэтому Орен-Найар – это упрощенное представление реальности.





Blinn, Phong и Ward (Уорд) - это наиболее распространенные упрощенные модели BRDF для бликов (specular). Наиболее удачным будет материал, построенный на Ламберте + блик по модели Блинна или Фонга.





Blinn (световой блик с малыми искажениями если свет падает под скользящим углом).









Blinn – это улучшенная версия Фонга. Блики по модели Блинна в сравнении с моделью Фонга лучше держат форму при разных углах падения света.





Phong (световой блик).









Модель Фонга генерирует более растянутые блики под скользящими углами падения света, в то время как по модели Блинна форма бликов не меняется.





Ward-anisotropic (или просто Ward – анизотропные световые блики)









Уорд – это основная модель для зеркальных бликов на поверхностях с микрогранями (также как и модель Cook-Torrance), которая позволяет вам определить разную шершавость в разных направлениях, отсюда и анизотропия. Уорд – это в честь изобретателя анизотропной BRDF.





Cook-Torrance (металлы).





Модель Кука-Торенса – отличная модель для зеркальных бликов на поверхностях с микрогранями. Вы можете использовать различные функции распределения для получения различных форм бликов, включая анизотропные.





Lafortune – это многослойная модель (т. е. это как три Фонга вместе), которая позволяет индивидуально "задавать" позицию блика на каждом слое, а также шероховатость каждого слоя. Подставляя математически совпадающие данные измеренной BRDF, вы сможете создавать страшно реалистичные изображения реальных материалов.





Существуют и другие типы BRDF, но они не так распространены. Поэтому для получения сведений используйте руководства к вашему рендереру.





Но будьте осторожны: каждый рендерер имеет свои определения вышеперечисленных типов затенения. К примеру, в 3ds Max есть Oren-Nayar-Blinn – это не что иное, как шейдер Oren-Nayar + блик по модели Блинна. А Lambert – это обычно тот же Блинн, но без блика. Так что все это сильно зависит от 3D приложения.





Очень важно перестать полагать, что трассируемые отражения в корне отличаются от модели BRDF бликов по Фонгу или Блинну. Оба эти метода имитируют один и тот же процесс – зеркальное отражение от поверхности – они просто вычисляются разными методами. Но все-таки трассируемые отражения будут отличаться, если вы переключитесь на BRDF по Фонгу или Блинну.





Использование принципа "что лучше смотрится" – это конечно правильно. Но понимание принципа работы той или иной BRDF, а также ее назначения очень важно хотя бы по той причине, что вы должны знать, от чего следует отталкиваться, чтобы получить такой материал как вы задумали.





С возрастанием мощи компьютеров будет возрастать и преобладание физически корректных визуализаций. А понимание принципов создания материалов (shading) поможет вам сделать изображения реалистичными.







Измеренная BRDF





В реальном мире микроструктура поверхности очень сложна, а модели, которые используются для описания отражений, очень просты и, к тому же, не точные. В реальной жизни каждая поверхность имеет свою уникальную микроструктуру (хотя некоторые рендереры, к примеру, VRay, уже добавляют возможность вводить данные BRDF).





Что происходит на микроструктурном уровне в реальной жизни.





Подумайте о микроструктуре поверхности как о горном массиве, смоделированном с помощью карты шумов (как например, в программах Bryce, Terragen и др.). С увеличением параметра шероховатости BRDF, увеличивается "высота" этих горных вершин. Теперь представим, что горный массив смоделирован из параллелепипедов, которые являются идеальными зеркалами. Солнце светит, а мы летим на самолете и смотрим вниз на один квадратный километр таких вот гор через объектив нашей камеры. Так вот, модель отражений BRDF, главным образом просчитывает, как много таких вот зеркал-граней отражают солнечный свет в нашу камеру.









Если поразмышлять на эту тему, то можно заметить, что некоторые зеркала будут затенены другими вершинами и, поэтому, не будут отражать свет. Аналогичным образом другие зеркала будут скрыты от нас за другими вершинами. Эти эффекты известны в литературе как затенение (shadowing) и экранирование (masking).





Даже измеренная BRDF еще не учитывает переотражения – это когда луч сначала отражается от одной грани, потом сталкивается с другой и только потом попадает в объектив камеры.





Затенение и экранирование – это два эффекта, которые есть в арсенале таких BRDF для поверхности с микрогранями как Cook-Torrance, Ward и A&S. Они моделируют эффекты от вершин на микроструктуре поверхности: затенение света другими микрогранями и блокирование объектива определенными микрогранями, соответственно. Измеренная BRDF также учитывает эти эффекты, но только как часть измеренных данных, а не как точные параметры модели.





Измеренная BRDF получается всего лишь с помощью измерения отражающей способности поверхности в зависимости от всевозможных комбинаций положений камеры и источника света. При этом используется инструмент Gonioreflectometer (Гониорефлектометр) или световая студия (Light Stage). Свойств поверхности на самом деле никто не исследует, они просто измеряют количество света, попадающего в камеру для определенного направления падающего на поверхность света.





Сама BRDF не может описать подповерхностные эффекты из-за своей сущности. Поскольку BRDF описывает суммарные данные только для одной точки поверхности. Подповерхностные же эффекты зависят от света попадающего на всю поверхность. Вот почему для функции подповерхностного рассеивания дали другое название – BSSRDF.

Дата сообщения: 26.09.2010 02:29 [#] [@]

Часть 5. Прозрачность, преломление, подповерхностное рассеивание, дисперсия







Для начала немножко закрепим пройденный материал об отражениях.





Отражения и преломления перебивают диффузный цвет.





Это означает, что если у вас есть сильно отражающий материал, металл, к примеру, то диффузный цвет вообще не будет виден. Поэтому 100% отражений = 0% диффузного цвета. 100% прозрачность – означает, что отражения могут иметь место, но полностью исключает диффузный цвет. Проводники (металлы) не имеют диффузной составляющей, поэтому для металлов вы ставите diffuse на 0% (черный цвет).









ЛЮБАЯ поверхность отражает.





Существующий на Земле реальный материал с наименьшей отражающей способностью отражает 0.045 % падающего на него света. Таким образом, даже "абсолютно черная" поверхность все равно отражает какую-то долю света. Что уж говорить об обычных материалах, существующих в реальной жизни, а не созданных в лабораторных условиях.





Большинство поверхностей имеют глянцевые отражения. Поверхности с чисто зеркальными отражениями встречаются очень редко.





Самый отражающий материал – Spectralon. Он отражает приблизительно 99% падающего света. Похож по виду на материал с BRDF по Ламберту, но точно им не является.





Лист белой бумаги отражает приблизительно 80% света.





Поэтому, если хотите добиться реалистичного результата, следует добавлять текстуру отражения ко всем без исключения материалам.





Отражения, наверное, второй по значимости для фотореализма фактор после глобального освещения (технически говоря, талант и опыт тоже все еще в ходу).





Ниже представлено изображение, визуализированное с и без отражений. Посмотрите, на сколько богаче смотрится картинка с отражениями.









А вот то, что архитектурные визуализаторы используют постоянно – френелевские (Fresnel) отражения. Поскольку отражения в реальном мире в большинстве своем размытые, а не зеркальные.









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





Самый темный материал, который более-менее доступен обычному человеку, отражает минимум 3% света. Конечно, вы можете создать материал, который будет отражать только 1% света, но в реальной жизни такой материал можно будет встретить разве что в лаборатории.





Идея такова: реальные материалы отражают довольно много. Но отражения у диэлектриков должны иметь френелевское затухание (Fresnel falloff), поговорим о нем немножко позже.





2. Пропускание (Transmission).





Прозрачность на уровне микроструктуры означает, что световая энергия не трансформируется в тепловую (последнее характерно для черных или темных материалов) и материал пропускает свет полностью.





Если прозрачный или полупрозрачный материал окрашен в некоторый цвет, то он поглощает определенные длины волн света, а этот некоторый цвет проходит без каких либо препятствий. При этом другие цвета вовсе не проходят сквозь такой материал.









Проходит ли свет сквозь поверхность или отражается от нее, зависит от угла падения света на поверхность и коэффициента преломления материала. Мы моделируем это, используя уравнения Френеля. Вообще-то, свет, который падает перпендикулярно поверхности диэлектрика почти полностью проходит внутрь, а свет, который падает под скользящим углом – почти полностью отражается.





Только одно из вышеописанных событий может случиться с определенным фотоном: он может либо проникнуть в объем материала, либо отразится поверхностью. Но мы моделируем общий результат для бесконечного количества фотонов. Поэтому, моделируя случай для конкретной поверхности, мы имеем дело с процентным соотношением фотонов, претерпевающих то или иное взаимодействие.





Таким образом, металл отражает 50% фотонов попадающих на него и поглощает оставшиеся 50%. Если нужно смоделировать стекло, то мы скажем, что оно пропускает 90% фотонов падающих на него перпендикулярно, 5% отражает и оставшиеся 5% поглощает.





Преломление (Refraction).



Этот эффект связан с пропусканием.





Преломление – это искривление лучей света (изменение их направления движения) при прохождении границы раздела двух сред (материалов). Различная среда преломляет по-разному, это называется коэффициент преломления - IOR (Index of refraction).





Нулевой IOR означает, что прозрачный объект невидим (нет искривления лучей, обе среды имеют одинаковую плотность). К примеру, стекло вы видите только благодаря преломлению лучей света и частичному их поглощению. Причина преломления – различная плотность сред. Свет движется медленнее, когда проходит сквозь более плотную среду.





Представьте камень, брошенный в воду под прямым углом – он не изменит своего направления, просто замедлит ход. Но если бросить камень под острым углом к поверхности воды, то, войдя в воду, он изменит свое направление полета из-за большой плотности воды по сравнению с плотностью воздуха.





Именно поэтому когда вы смотрите на стеклянную бутылку, вы почти не видите ее переднюю сторону, а видите только преломленные силуэт.









Также существуют коэффициенты отраженных преломлений и преломленных отражений, которые почти всегда равны (т.е. значение отраженного преломления всегда равно преломленному отражению).





IOR зависит как от коэффициента преломления, так и от коэффициента отражения, поскольку и один параметр, и второй описывают отклонение фотонов при прохождение сквозь материал. IOR также зависит и от энергии света, т.е. показывает как эта энергия перестает поглощаться материалом и начинает отражаться от него. Поэтому все материалы (не только прозрачные) имеют свое значение IOR, который влияет не все типы поведения света: все виды отражений и преломления.





Если вы хотите быть научно подкованы в этом вопросе, то должны также знать, что значения отражения и преломления равны. Конкретные цифры вы найдете в соответствующих таблицах.





Рендерер Mental Ray позволяет контролировать эти оба значения посредством одного параметра – IOR (отражения по Френелю), а вот VRay, использует два раздельных параметра – IOR в свитке Reflection и Fresnel IOR в свитке Refraction.





На какой бы материал не попал свет, происходит его поглощение. Величина поглощения зависит от конкретного материала, а точнее от того как свет рассеивается внутри материала. Например, внутри стекла свет двигается прямо сквозь всю его толщу и не рассеивает при прохождении сквозь него. Именно поэтому стекло предстает перед нами прозрачным, а не полупрозрачным. Конечно же, поглощение происходит, но очень небольшое. Именно поэтому, изображения, которые вы видите сквозь стекло, кажутся совсем немножко затененными (не такими яркими, как без стекла).





Дисперсия (Dispersion).





Существует также такой эффект как дисперсия, когда падающий на материал свет расщепляется. Дисперсия происходит из-за свойства материала преломлять электромагнитные (световые) волны разной длины под разными углами. Дисперсия является причиной появления таких цветовых явлений как радуга.





Это достаточно распространенный эффект. Вы постоянно наблюдаете дисперсионную каустику от воды или алмазов. К пример, Ньютон успешно использовал для демонстрации расщепления света стеклянную призму.









Дисперсия является причиной дисперсионных отражений (на счет этого определения я не особо уверен). Выглядит это как окрашенные отражения и как результат окрашенная каустика.





Так что знайте, что цветные переливы на жемчужинах и на бензине никак не связаны с поверхностными отражениями. Эти цветные разводы мы видим благодаря тонкопленочным эффектам.





Происходит это из-за дисперсии в тонких слоях (толщиной не больше длины световой волны) пропускающего материала (диэлектрика), который покрывает поверхность. Сложные цветные узоры и разводы зависят от количества слоев и их толщины.





К примеру, когда тонкая пленка бензина находится на поверхности воды или когда тонкий слой "глазури" покрывает жемчужину или когда мыльный пузырь состоит из сверхтонкой пленки мыльного вещества, которая колеблется в воздухе, а от этого изменяется толщина пленки и мы видим динамические цветовые разводы. По своей природе это тот же самый эффект, что приводит к появлению радуги, только происходит внутри очень тонкого слоя прозрачного материала.





Полупрозрачность (Translucency).



Полупрозрачность – это частный случай прозрачности.





Микрогеометрия поверхности приводит к тому, что свет рассеивается в разных направлениях. Этот эффект качественно одинаков для диффузных и глянцевых отражений. Это и провоцирует такой эффект как пропускание света сквозь матовое стекло.





Вы должны понять, что прохождение зависит от величины подповерхностной шероховатости. В то время как зеркальные и диффузные отражения – это результат поверхностной шероховатости. Поэтому молочное стекло имеет более шероховатую подповерхностную структуру, нежели обычное чистое стекло. Ко всему этому нужно еще прибавить параметр, который описывает, как глубоко сможет проникнуть свет в материал, поскольку я не уверен, сможет ли подповерхностная шероховатость сама по себе остановить проникновение света внутрь.





На микроструктурном уровне: полупрозрачность – это подповерхностный эффект. Я не уверен, есть ли официальная терминология для того, что я опишу ниже, но лично я использую термин "подповерхностное отражение" для эффекта, когда свет входит в материал, рассеивается и, отражаясь там внутри, выходит там же, где попал внутрь. А также понятие "подповерхностное прохождение" для эффекта, когда свет входит в материал с одной стороны, рассеивается и отражается там внутри, а выходит с противоположной стороны объекта.





То, что происходит внутри – это чрезвычайно сложный процесс. Обычно это моделируют как случайное блуждание – т.е. фотон пролетает очень короткое расстояние внутри материала до столкновения с атомом, теряет часть своей энергии во время этого столкновения (поглощение), отскакивает от этого атома в другом направлении и все повторяется сначала много-много раз.





Подповерхностное рассеивание это частный случай прохождения и происходит это так: свет входит в материал, многократно отражается от атомов внутри и выходит наружу не в том же месте, где вошел.





Взаимодействие внутри материала между светом и атомами приводит к тому, что часть энергии поглощается. Обычно для разных длин волн величина поглощения разная. Поэтому, когда свет выходит обратно из материала, то он немножко тусклее и другого оттенка.





Подповерхностное рассеивание происходит только у диэлектриков. Именно поэтому неметаллические материалы имеют свой определенный цвет (а вот блики у диэлектриков всегда белого цвета). Т.е. каждый раз, когда вы видите цветной объект, знайте, это не металл, поскольку свет входит в материал, скачет там внутри, немножко "подкрашиваясь" в процессе, а потом покидает материал из другой точки.





Благодаря тому, что большинство материалов чрезвычайно тверды, координаты точки входа света в материал и точки выхода почти не отличаются и потому, мы визуально видим, что материал твердый.





Измеренную BSSRDF можно использовать для материалов с большим внутренним рассеиванием, таких как органические материалы, к примеру, для кожа.





Вы не сможете симулировать процесс большого внутреннего рассеивания с помощью BRDF, поскольку BRDF, по определению, принимает в расчет, что свет входит в материал и выходит из одной и той же точки (это справедливое допущение для большинства материалов).





Такие трассировщики (вид реалистичных рендереров) как Maxwell вообще не используют BSSRDF, но вместо этого они напрямую симулирует случайное блуждание для расчета подповерхностного рассеивания.





Отличие между свойствами шейдера Diffuse и SSS/Translucency состоит в (подповерхностном) распространении света. Или, другими словами, как далеко от точки вхождения фотона в материал, будет находится точка выхода этого же фотона (луча) наружу. Таким образом, свет, попадающий на твердую каменную стену, выйдет из ее подповерхностного слоя так близко к точке вхождения, что шейдер считает эту величину равной нулю. Но свет, попадающий на кожу, обычно выходит на заметном удалении от точки вхождения. Поэтому это нельзя игнорировать, иначе кожа будет выглядеть мертвой. Отсюда и необходимость в шейдере подповерхностного рассеивания (SSS).





3. Поглощение (Absorption).





Энергия электромагнитной (световой) волны преобразуется в тепловую энергию и "пропадает". Конечно же, пропадает она не по настоящему, но когда мы визуализируем картинку, мы концентрируемся на свете, а не на тепле. На практике это означает, что никакой материал никогда не должен отражать 100% падающего на него света, если вы хотите, чтобы он смотрелся реалистично.





Если поверхность белая, значит, она отражает все длины волн, если она окрашена – значит, отражает только определенные световые волны, которые вы видите. Для вас это должно значить одно, некоторые цветные поверхности могут взаимодействовать с цветным освещением совсем не так как вы того ожидаете.





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





Когда свет поглощается поверхностью, то мы видим ее темной (поэтому темные одежки всегда теплее, чем белые).





Итак, 100% черный означает 0% отражений, а этого никогда не происходит в реальной жизни. ВСЕ материалы ВСЕГДА отражают в какой-то степени.





Цвет – это результат выборочного поглощения и выборочного отражения.





Поверхности предстают нам окрашенными поскольку они поглощают некоторые волны (тот цвет, что вы не видите), а некоторые волны отражают (тот цвет, что мы видим). Таким образом, 0% диффузной составляющей (черный) означает, что никакой свет не будет отражаться, с какой бы интенсивностью он не светил бы, поскольку вы сказали материалу полностью поглощать свет. Именно поэтому, вы никогда не должны выставлять 0% для диффуза (черный цвет в слоте Diffuse), даже если создаете очень темный материал.





Выводы.





Свет, если не отражается, то проходит сквозь поверхность, а если не проходит, то преобразуется в тепло (поглощается), как результат мы видим темный материал (видимая световая информация отсутствует). Если свет не проходит полностью сквозь материал (пропускание), то выходит из той же точки, что и вошел (подповерхностное отражение). Цвет - это всегда случай поглощения, будь то в прозрачном или непрозрачном материале, т.е. избирательное поглощение определенной длины волны. Черный – значит все волны поглощаются, белый – отражаются.





P.S. Работа из заглавия статьи, с изображением экзотической птицы (Тукан - Toucan), выполнена британским автором в 3ds Max и Mudbox (небольшая детализация клюва), а визуализирована с помощью VRay. Мех и перья сделаны с помощью плоскостей с прозрачностью. Плоскости для перьев были неможко изогнуты, чтобы на них получился красивый блик. Свет устроен так: низкий уровень GI (глобального освещения) и куча объемных (area) источников света с разной интенсивностью и цветом. Один из источников имел проекционную карту, чтобы получить эффект просветов между листьями.





Автор статьи: yuriki





P. P. S. Статья написана по материалам ветки форума The Science For CG. Спасибо авторам оригинальной статьи: Саша Александров, Rens Heeren, playmesumch00ns.

Дата сообщения: 26.09.2010 02:40 [#] [@]

жесть, спасибо, очень много нужных моментов.

Дата сообщения: 28.10.2010 06:31 [#] [@]

Очуметь, длинная и очень полезная статья!



Были некоторые связующие моменты без которых не складывалась общая картинка, но после прочтения данной статьи все сложилось. И то что знал (на уровне так надо и все тут) и то в чем сомневался...



Спасибо smile

Дата сообщения: 17.12.2011 22:22 [#] [@]

Круто, что все вместе собрали =) Но шестую часть забыли =)





"Наука создания фотореалистичного 3D (часть6). Реалистичные металлы, диэлектрики. Отражения по Френелю"

Дата сообщения: 18.12.2011 01:24 [#] [@]

Количество просмотров у этой темы: 37796.

← Предыдущая тема: Texture Tips for Production перевод урока от Bradford Smith

Случайные работы 3D

Space Battle
Мужской портрет
радуга
Палмер
демоны закачать
Evil Spirit

Случайные работы 2D

Лев
ЛСД
Bluelight
загадка
book
Хвосторога
Наверх