Параметры настройки Освещения

Хорошо, теперь у вас есть основные знания. Теперь мы можем поговорить об освещении. Мы будем работать на одном примере, более сложном чем 'сфера над плоскостью', посмотрим, чего мы можем достигнуть в реалистичном освещении, используя Blender.

Обратимся к сцене на Рис 25. Фигура в сцене это Корнелиус, младший братик Сюзанны. У него светло-коричневый блестящий материал (R=0.8, G=0.704, B=0.584, Ref=0.7 Spec=0.444, Hard=10 - Да, не совсем как у настоящей обезьянки, но мы говорим об освещении, а не о материалах!) и стоит он на синей плоскости (R=0.275,G=0.5,B=1.0, Ref=0.8, Spec=0.5, Hard=50). Сейчас он освещен единственным светом типа Spot (Energy=1.0, R=G=B=1.0, SpotSi=45.0, SpotBl=0.15 ClipSta=0.1,ClipEnd=100,Samples=3,Soft=3, Bias=1.0, ShadowBufferSize=512).

Рис 25. Настройка света.

Рендеринг Корнелиуса с этими настройками, с OSA=8 и включенной кнопкой Shadows выдаст результат как на Рис 26. Результат ужасный. Имеем очень черные, нереалистичные тени на Корнелиусе, а тень, созданная самим Корнелиусом - недопустима.

Рис 26. Простое освещение лампой Spot.

Вначале подстроим ClipStart и ClipEnd, если они откорректированы, так чтобы охватить сцену настолько, насколько возможно (ClipSta=5, ClipEnd=20) результаты будут определенно лучше, по крайней мере для проектируемой тени. Собственная тень Корнелиуса все еще слишком темная (Рис 27).

Рис 27. Настройка света Spot с соответствующими дистанциями.

Для установки правильных значения для ClipStart и ClipEnd, есть хороший прием: Любой объект в Blender'е, может действовать как камера в 3D-виде. Следовательно, вы можете выбрать лампу Spot и переключится на вид из неё, нажатием CTRL + NUM 0. То, что вы увидели бы в теневом режиме, показано на Рис 28.

Всё что ближе к Spot, чем к ClipSta и дальше от Spot чем от ClipEnd - вовсе не отображается. Следовательно, вы можете точно подстроить эти параметры, проверяя, чтобы была видна вся тень, отбрасываемая объектом.

Рис 28. Настройка света Spot с разными дистанциями. Слева: ClipSta слишком завышен; В центре: Хорошо; Справа: ClipEnd слишком низкий.

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

Эта диффузия света, правильно рассчитывается в Ray Tracer'е, и в Blender'е тоже, посредством движка Radiosity. Но есть настройки, которые могут моделировать это явление приемлемым способом.

Мы рассмотрим их, методом от простого к более сложному.

Освещение методом 'трёх точек'

Освещение методом трёх точек - это очень простая, классическая схема для получения обильного, мягкого освещения в сцене. Наша лампа Spot будет основная, или Ключевая, лампа в сцене которая создает тень. Мы добавим еще две лампы для эмуляции диффузии.

Следующая лампа, которая нам понадобится, называется 'Задний свет'. И расположим ее позади Корнелиуса (Рис 29). Это осветит скрытую часть нашего персонажа, и позволит нам отделить передний план нашей картинки от фона, а также даст ощущение глубины. Обычно, Задний свет, такой же силы как и Ключевой, если не сильнее. Здесь мы использовали свет типа Lamp с параметром Energy=1 (Рис 30).

Рис 29. Установка лампы 'Задний свет'.

Рис 30. Только Ключевой свет (слева), Только Задний свет (по центру) и оба (справа).

Результат уже намного лучше. Наконец, третья лампа это 'Заполняющая'. Цель Заполняющей лампы - это осветить тени на передней части Корнелиуса. Мы разместим Заполняющую лампу, точно там, где и камера, с параметром Energy ниже, чем самый низкий из параметров у Ключевой лампы и Заднего света (Рис 31). Для данного примера параметр Energy=0.75 (Рис 32).

Рис 31. Установка 'Заполняющей лампы'.

Рис 32. Только Ключевой и Задний свет(слева), Только Заполняющий свет (по центру) и оба (справа).

Заполняющий свет, делает видимыми те части модели, которые находятся в темноте при использовании только Ключевого и Заднего света.

Tip "Просачивание" цвета
 

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

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

Чтобы смоделировать этот эффект, мы размещаем вторую лампу Spot, относительно пола, точно в зеркальном отражении к Ключевой лампе. Это означает, что если пол горизонтален и z=0, как в нашем примере, а Ключевая лампа находится в точке (x = -5, y = -5, z= 10), тогда разбрасываемый полом свет, должен быть размещен в (x = -5, y = -5, z = -10), и направлен вверх (Рис 33).

Рис 33. Установка световой диффузии пола.

Энергия этой лампы должна быть меньше, чем у Ключевой (в этом случае 0.8) и её цвет, должен полностью совпадать с цветом пола (в этом примере R=0.25, G=0.5, B=1.0). Результат на Рис 34

Рис 34. Установка четвертой лампы.

Пожалуйста, обратите внимание, что мы использовали лампу Spot, а не простую Lamp, её свет будет полностью блокирован (затенен), если не будет выключена соответствующая кнопка Shadow.

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

Освещение методом 'трёх точек' - Снаружи

Использование лампы Spot как Ключевой свет, в первом примере, ее настройки строго привязаны для использования внутри помещения или, максимум, снаружи, но в ночное время. Это из-за того что Ключевой свет ограничен дистанцией, его лучи расходятся и пол неравномерно освещается.

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

Чтобы получить равномерное освещение по всему полу, свет Sun как раз подойдет. А если мы добавим свет Hemi для эмуляции света идущего со всех точек неба (как на Рис 8 в разделе Свет типа Hemi) мы получим отличное освещение... но, не будет теней!

Установки: Ключевой свет (свет Sun, R=1.0, G=0.95, B=0.9, Energy=1.0) и Заполняющий/Задний свет (Свет Hemi, R=0.8, G=0.9,B=1.0, Energy=0.6) показаны на Рис 35, а соответствующий отрендеренный Рис 36

Рис 35. Установка ламп Sun и Hemi для наружного освещения.

Рис 36. Лампы Sun и Hemi для наружного рендеринга.

Недостаток тени, делает Корнелиуса как бы плавающим в пространстве. Для того чтобы получить тень, давайте разместим лампу Spot, так, чтобы она совпадала с лампой Sun и имела такое же направление. А также сделаем Spot без тени (нажмите кнопку OnlyShadow). Снизим Energy на 0.9, а все остальные настройки оставим такими же как и в предыдущем примере (ShadowBufferSize=512, Samples=3 Soft=3 Bias=1 ClipSta=5, ClipEnd=20), результат на одном из Рис 37 (в центре).

Рис 37. Наружный рендеринг.

Тень слегка блокирована, потому, что Корнелиус имеет много четких мелких деталей, а значение ShadowBufferSize слишком маленькое, значение Samples также низкое, чтобы вычислить все эти детали. Если ShadowBufferSize повысить на 2560, а Samples на 6 и Bias на 3.0 то результат будет как на Рис 37 (справа). Более гладкая тень.

Пространственный свет

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

Это имеет пару интересных значений, главным образом для тени:

Первый из этих вопросов это приблизительные настройки 'Soft' для лампы Spot , но второй нет. Чтобы ясно понять этот пункт, вообразите себе высокий тонкий шест, по середине плоской поверхности, освещенной Солнцем.

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

Чтобы лучше понять эту концепцию, посмотрите на Рис 38. Солнце излучает свет, объект по середине перекрывает солнечные лучи только в темно-синей зоне. Для точки в светло-синей зоне, солнечный свет частично доступен, а это значит, что каждая из этих точек освещена.

Рис 38. Пространственный свет и его тень.

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

Рис 39. Пространственный свет и его тень 2

В Blender'е, если мы разместим одну лампу Spot на фиксированном расстоянии от первой плоскости, и посмотрим на тень упавшую на вторую плоскость и будем отдалять вторую плоскость дальше, мы заметим что тень становится больше, но не мягче (Рис 40).

Рис 40. Лампа Spot и её тень

Чтобы в Blender'е симулировать пространственный свет, нам нужно использовать несколько ламп Spot, как будто мы создаем область дающую свет из многих точек.

Для этого в Blender'e есть лампа типа Area, но этого можно добиться или разместив несколько ламп spot вручную или использовать инструмент Blender'а - DupliVert (создание дубликатов объекта на каждой вершине), который более эффективен.

Добавьте Меш-решетку 4x4, там где расположена лампа Spot, убедитесь, что нормали смотрят вниз (Рис 41). Привяжите лампу Spot к меш-решетке, способом "Родтель-ребенок" (CTRL+P), выберите решетку и в кнопках управления объектом (F7), на панели Anim settings, нажмите DupliVert и Rot. Кнопка Rot необязательна, но потом она поможет вам в позиционировании области света. У вас получится набор ламп Spot как на Рис 42.

Рис 41. Установка решетки

Рис 42. Свет Spot и его dupliverts (дубликат на каждой вершине)

Затем уменьшите значение Energy для Spot. Если для одной лампы Spot, вы использовали определенное количество энергии, теперь вам нужно разделить эту энергию на количество дубликатов ламп. У нас получилось 16 ламп Spot, значит каждая лампа должна иметь 1/16 от значения Energy основной лампы(то есть Energy=0.0625).

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

Рис 43. Эмуляция пространственного освещения большим количеством ламп Spot.

Намного лучший результат можно получить смягчив световое пятно лампы Spot, вот параметры для SpotBl=0.45, Sample=12, Soft=24 и Bias=1.5 (Рис 44)

Рис 44. Эмуляция пространственного освещения большим количеством ламп Spot, с установками размытия.

И наконец, Рис 45 показывает как выглядит Корнелиус, после замены Ключевого света на 65 дубликатов Spot с Energy=0.0154 и с кольцевым шаблоном. Пожалуйста, обратите внимание, как тень плавно переходит от точной к более мягкой и мягкой.

Рис 45. Корнелиус в пространственном освещении.

Глобальное освещение (и глобальные тени)

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

Единственные исключения - это наружный свет, где свет Hemi эмулирует свет идущий с неба и настройка пространственного света, где множество точек эмулируют источник света с ограниченным расширением.

Первые два очень хорошо подходят для наружного освещения, где не важно, что свет Hemi не отбрасывает теней , а следовательно, вы не получите реалистичный результат.

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

Этого можно добится используя туже методику, что и для пространственного света, но используя полу-сферу как родительский меш. Обычно это называется как " Глобальное Освещение ".

Вы можете использовать или UVsphere или IcoSphere, последняя имеет равномерно распределенные вершины, в то время как первая имеет большую концентрацию вершин на полюсах. Использование IcoSphere , даст больше "однородного" освещения, излучение всех точек неба имееют одинаковую интенсивность; UVsphere, дает больше света от полюсов. Лично я рекомендую IcoSphere.

Давайте все приготовим, возьмем плоскость и несколько примитивов, как на Рис 46. Мы будем использовать простые формы, чтобы легче было оценить результаты.

Рис 46. Сцена глобального освещения.

Переключитесь на вид сверху и добавьте IcoSphere, уровень подразделения 2 для IcoSphere обычно достаточный, а уровень 3 даст более мягкий результат. Увеличте IcoSphere так, чтобы она полностью свободно покрывала всю сцену. Переключитесь на вид спереди и в режиме редактирования удалите нижнюю часть IcoSphere (рис 47). Это будет наш "купол", где на каждой вершине мы разместим лампы типа Spot, при помощи инструмента DupliVert.

Рис 47. Купол.

Снова перейдите на вид сверху и добавьте свет Spot, привяжите его к половинке IcoSphere, способом parent и нажмите кнопки DupliVert и Rot также как и в предыдущем примере. Результат при виде спереди на Рис 48.

Рис 48. Купол с дубликатами ламп типа Spot.

Но это не то, что нам надо, все источники света направлены наружу и сцена не освещена. Это из-за того что нормали IcoSphere смотрят тоже наружу. Чтобы изменить направление нормалей, в режиме редактирования, выберите все вершины и в окне кнопок редактирования (панель Mesh Tools) нажмите кнопку "Flip Normals" (Рис 49).

Рис 49. Изменение направления нормалей.

Это приведет к результату как на Рис 50.

Рис 50. Правка купола и источников света.

Чтобы получить хороший результат, выберите основную лампу Spot и измените параметры следующим образом: SpotSi=70.0, SpotBl=0.5, ClipStart: в нашем случае 5 и ClipEnd: 30, повысьте значение Samples: на 6 и Soft:12. Уменьшите значение Energy на 0.1; таким образом, будут настроены все остальные дубликаты Spot. (Рис 51).

Рис 51. Настройка лампы Spot.

Теперь можно сделать рендеринг. Если добавлены какие-либо материалы и настроен World (окружающая среда), результат будет как на Рис 52. Обратите внимание на мягкие тени и 'всенаправленный' свет. Еще лучших результатов можно достигнуть, если использовать IcoSphere с уровнем подразделением 3.

Рис 52. Настройка лампы Spot.

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

Можно добавить направленный источник света, чтобы эмулировать Солнце, или с помощью одиночной лампы Spot или Area.

Альтернативный способ чтобы сделать IcoSphere более неравномерной, это подразделить одну из ее граней, как это сделано на Рис 53. Выберите одну грань и нажмите кнопку "Subdivide", затем, снимите выбор и снова выберите маленькую внутреннюю грань и подразделите ее и т.д.

Рис 53. Концентрация ламп spot, в определенном участке.

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

Рис 54. Анизотропный купол.