Cinema 4d global illumination настройка
Overview
One of the most realistic ways to present a model in Cinema 4D is through the use of global illumination. Cinema 4D uses the term Global Illumination to describe their Radiosity solution. Radiosity takes into account direct illumination of each surface, and adds to that secondary illumination — light bounced off other nearby surfaces. The result can be spectacularly realistic, but incredibly time consuming. In this tutorial, I am using the term Global Illumination to describe a method of illuminating an object with a soft, generally directionless light. This allows shadows to pool naturally and highlights the object's surface structure and detail in an ideal way. This is Radiosity without the bounced light. The problem is that there are a lot of parameters to consider when setting up a global illumination render. Sometimes the results you get from changing a parameter can be counter-intuitive. And test renders can take a really long time when you are tweaking parameters you only half understand.
In this tutorial I will explain all of the control parameters in the Global Illumination tab in Cinema 4D's Render Settings Control panel and how they affect image quality and rendering time.
This image represents our goal in this tutorial. High settings were used in the Global Illumination parameters to create this image, free of artifacts and rendering errors, but at a cost of long render times. This image took 1hr 16min to render. I've removed the surface textures from the object so that we can concentrate our attention on the way the light interacts with the surfaces and detail.
Lets look at the Global Illumination settings one by one to discover what effect they have on image quality, and rendering time, and to see if we can find that sweet spot between the two.
Default Settings
As a starting point, lets try the default global illumination settings in Cinema 4D. Here I have changed the Diffuse Depth value to 1 from the default of 3. This prevents Cinema 4D from calculating the light as it bounces from surface to surface. The results are typical — little artifacts cluster around areas of high detail transition, as can be seen clearly in the enlarged portion of the image. The good news is that the rendering time on this image is only 6min 6sec.
Below the image you can see three roll-over areas. Roll over the point distribution to see how poorly the default settings have placed illumination points on the object in the prepass. This poor coverage is part of the reason for the artifacts in the image. Roll over the results to see the rendered image without the settings and enlargement graphics.
Increase Min. and Max. Resolution
Here I have changed the default values for Min. Resolution and Max. Resolution to 20 and 200 respectively. Min. Resolution controls how densely Cinema 4D places illumination points in flat, undetailed areas of the scene. Max. Resolution controls how densely Cinema 4D places illumination points in curved or detailed areas of the scene. As we can see in the expanded view, this has actually made the artifacts worse. On the other hand, rendering time is actually slightly better than the defaults — 6min.
So what is happening here? We made the rendering worse by increasing parameters that should make it better, and we got a slightly better rendering time even though Cinema 4D had to plot more illumination points? Seems very counter-intuitive, doesn't it? Its results like these that can make Cinema 4D artists tear their hair out in frustration. Read on and I will explain.
How Global Illumination Works
In the pre-pass part of a global illumination render, Cinema 4D looks through the scene and finds areas of low detail, and high detail. It assigns illumination points to these areas based on a combination of three settings in the global illumination parameters - Accuracy (which we have not modified yet), Min. Resolution, and Max. Resolution. These three parameters influence how close together the illumination points are. These illumination points define an illumination mesh which Cinema 4D uses to determine how to light each point of each surface in the scene. The finer this mesh of light, the more accurate the results will be.
Each illumination point sends out rays that test what that it can "see" in the scene. Some rays will hit nearby surfaces, and some rays will reach a source of light — a light object, a luminous texture, or the sky. These rays are called Stochastic Samples in the global illumination parameters. All of the rays from a particular illumination point are averaged together to determine how much light is arriving, and what color the light is, at that point. These rays are sent out in a random pattern - each illumination point sees a different set of samples from the scene, even if they are close together. If the number of samples is low, random chance will cause fluctuations in brightness from point to point. For example, 30% of Point A's random samples manage to directly hit a source of illumination. Point B, right next to Point A, might only manage to have 10% of its random samples hit a source of illumination. The result is that Point B will appear to be darker than Point A, even though in reality they would be receiving the same amount of light. Increasing the number of Stochastic Samples evens out these discrepancies by increasing the odds that adjacent illumination points will see roughly the same proportion of light and dark areas.
More Points Equals More Artifacts?
In the example above, we saw that increasing the Min. Resolution and Max. Resolution values increased the density of the illumination mesh, but the results still had artifacts. The answer to this riddle is that the quantity of illumination points increased when we did this, but the quality of them did not. The artifacts are the results of poor point sampling, not poor point distribution. Making the points closer together also increases the odds that some adjacent points will have lighting discrepancies, resulting in artifacts. We need to increase the number of stochastic samples per point, not necessarily increase the number of points overall.
More Points Equals Less Rendering Time?
Everything has a cost in terms of time. It takes time to calculate the stochastic samples for each illumination point. You can save some of that time by reducing the number of points in a scene. Balanced against this is a different time cost — interpolation time, which increases as you decrease the point sample calculations.
In the second pass of the global illumination render, Cinema 4D interpolates the illumination values between the illumination points, and renders the final image based on this averaged illumination mesh. This interpolation takes time to calculate. There is a point where decreasing the number of illumination points costs you more in interpolation calculations than it saves in illumination point calculations. Everything is a trade off. If you increased the Min. Resolution and Max. Resolution values beyond those listed here, all other parameters staying the same, it would end up taking longer to render again, as the time cost for calculating illumination points would be higher than the time costs for interpolating the illumination. Somewhere in between is the sweet spot, where you have all of the illumination points you need in the scene, no more, and no less, which takes the minimum amount of calculation time possible.
The Correct Answer - Increase Accuracy
The one Global Illumination parameter we have not discussed is the Accuracy setting. This defaults to 70% when setting up a new global illumination render. Think of this value as a multiplier for Stochastic Samples, Min. Resolution and Max. Resolution. For example, when you set your Stochastic Samples to 300, at an accuracy of 70%, you are not really getting 300 samples per illumination point. I do not know the exact formula used, but its helpful to think that you are getting something like 200 samples per point. And at a Min. Resolution value of 70, you are really getting something like 50, and so on. Its not this simple, but its a way of thinking about. So, increasing the Accuracy setting will raise ALL settings simulaneously. In this example, I have lowered the samples back to 300, the Min. Resolution down to 20, and the Max. Resolution to 150. But I have raised the Accuracy to 90%. Voila — the artifacts are now banished, and the render time is an easy-to-swallow 23mins.
Compare the point distribution on this final image with the one above it. You'll see that with a higher accuracy setting, the distribution of the points is smoother, with less abrupt transitions from less detailed to more detailed areas. This also results in fewer artifacts and smoother gradations of shading.
Вопрос студийного рендера встает практически перед любым, кто занимается 3д графикой. Для пользователей Cinema 4d давно сделаны различные наборы, которые призваны облегчить настройку света для достижения более качественного рендера. Но, что если они вам надоели? Вы хотите сделать что-то своё? С чего начать? Как сделать хороший рендер?
С чего начать?
Cinema 4d позволяет использовать такой трюк: берете любую реальную фотостудию, и копируете все один в один – расположение фона, форму светильников, их расстановку, и вы получаете схожий результат. Итак начнем и возьмем фотографию студии.
Простая студия, которую можно и дома собрать (взято отсюда). Сверху софтбокс, и еще один чуть впереди слева, позади бежевые стены. Необходимо повторить максимально похоже в Cinema 4d.
Процесс
Итак, кружки поставлены, нажимаем рендер и видим не очень интересную картинку.
Воссоздаем студийную обстановку:
Сделали задник, поставили две стены, установили свет, выставили камеру. Нюанс: у всех источников света надо поставить visible in reflection (уверен вы найдете эту галочку самостоятельно). Без включенного света, рендер выглядит вот так:
Первое, что бросается в глаза: появились отражения по краям, которые дают некую живость картинки. Не супер результат, но уже что-то. Светильники (area lights, area shadows) добавлены, включаем их, добавляем Ambient Occlusion и смотрим:
Можно аплодировать себе! Вы сделали свою студию, используя стандартные инструменты Cinema 4d, без плагинов. Преимущества таких студий очевидно:
- Заменяете объект, получаете «вкусный рендер»;
- Уникальность – ваши настройки, ваши отражения, а не из шаблонов.
- Сделав пару студий, вы поймете как добиваться хорошего освещения в других ситуациях.
Если рендер кажется темным, то надо всего-лишь усилить светимость источников света, или использовать инструменты levels/curves в Photoshop.
Бонусы
Играя с настройками материалов для задних фонов вы можете получать различные результаты.
Хотел начать пост со слов «в последнее время, стало очень много сцен, где неоправданно применяют GI», потом подумал, что это было всегда. Дизайнеры по незнанию, по непониманию, «ребята во дворе показали», включают Global Illumination, выбирают прессеты medium или high и идут спать, пока дорендерится их картинка. С развитием ГПУ и скорости просчета проблема стала менее актуальна, но она есть. Тратится драгоценное время на эффект, который в некоторых ситуациях не приносит никакого результата, или так мало, что можно было бы сэкономить 30-50% времени просчета.
Бонус: Урок по созданию сексуального освещения в Cinema 4D
Источник: CG Gate
Несмотря на то, что концепция Глобального освещения (GI) очень проста, правильное освещение сцен с использованием этого алгоритма вызывает некоторые трудности.
Выполняться будет в 3ds Max 2009.
В уроке я использую сокращения:
GI – Global Illumination - глобальное освещение
FG - Final Gather – финальная сборка (алгоритм непрямого освещения – подробнее Погружение в ментал (Освещение часть 1 - FG))
Во второй части я показываю решение некоторых проблем, но не претендую на 100% правильности методов, все они следуют из индивидуальной практики.
Итак, приступим:
1. Выбор Типа света
Чтобы создать определенную атмосферу, нужно правильно подобрать свет. Это очень важно.
Если вам нужно пламя свечи или ламповое освещение, то подойдет omni(всенаправленный) или point light (точечный свет), чтобы свет распространялся во всех направлениях сцены.
Для уличного освещения, возможно, подойдет пресет Light Dome (Световой купол) или GI/Global Illumination (Глобальное освещение) для рассеянного, общего света, затем дополните его Area (Поверхностным) или infinite(Бесконечным) светом для sunlight (солнечного света).
В 90% случаев я использую Area lights, если это только не какой-то определенный эффект. Возможно, infinite light больше подходит для солнечного света, но солнце само по себе огромный источник Area lights. Мы можем создать его, используя Area lights, располагая его дальше и уменьшая его размер. Мы можем контролировать Shadow Falloff (спад тени) и добиться иллюзии параллельных теней.
Вот пример рендера сцен с Default light (Стандартным освещением), Area light , Area light and Area Shadow (поверхностная тень).
Ситуация 2: Светящийся материал*
*не рассматриваю методику mesh light в данном посте
Следующий пример касается светящихся материалов, если стоит задача, чтобы они участвовали в освещении сцены, то необходимо включать глобальное освещение.
Светящийся материал, без Глобального освещения Светящийся материал, Глобальное освещение, 1 отскок Светящийся материал, Глобальное освещение, 2 отскока
Вывод: при задаче, когда у нас есть светящийся объект, который должен влиять на освещение сцены использование Глобального освещения поможет легко решить эту задачу, при том, количество отскоков будет качественно влиять на результат картинки, однако стоит провести тесты перед финальным рендером, не исключено, что разница между 2 и 4 отскоками, про 8 я даже не говорю, будет минимальна, при сильном увеличении времени.
5. Используйте ослабление света
В 3D пространстве освещение бесконечно, что отличается от света в реальном мире. Освещение уменьшается по мере отдаления от источника света.
Если вы включите Falloff (Спад) в закладке Details вы получите более реалистичный результат, так как интенсивность света уменьшится по мере отдаления от источника света. Лучше выбрать Inverse Square (Обратное пропорционально квадрату) в качестве типа спада, так как это наиболее правильная кривая спада.
В Cinema 4D есть вторая Physically Inaccurate (физически неточная) опция, называемая Inverse Square Clamped, здесь используется функция Inverse square, но с фиксированной яркостью, чтобы избежать облучения.
3. Различные источники света
С одним источником света очень сложно добиться нужного результата, так как в сцене все равно останутся неосвещенные области.
Традиционно используют three point lighting (трехточечную схему освещения): Key light (главный свет (ключевой)) в качестве основного освещения, Fill Light (заполняющий свет) , чтобы заполнить темные участки, и Backlight (фоновый свет), расположенный позади объекта, который отделяет объект от фона.
Существует много различных способов освещения сцены или персонажа, и трехточечное освещение это самая основа, но, тем не менее, это все равно отличная техника и знать ее просто необходимо, для того, чтобы получить классные шоты.
Соотношение ключевого и заполняющего источников света – это баланс между интенсивностью различных видов света, которые формируют общий контраст. Если ключевой свет яркий, а заполняющий тусклый и слабый, в результате получится слишком большой контраст, и мы получим эффект полуденного дневного света. Если уровень освещения всех источников света более менее одинаковый, результат будет обратным и сцена будет выглядеть более плоской, как в облачный день.
Хороший прием добавить Split Light (рассеянный свет) вашей сцене, этот свет ставится там же, где и ключевой свет, однако рассеянный свет будет намного мягче и захватит больше участков, комбинация ключевого и рассеянного источников света дает более естественный вид, нежели просто один ключевой свет.
В данном примере только два света, ключевой и заполняющий, слева направо, ключевой становится ярче, а рассеянный темнее и это сказывается на контрасте сцены.
Обычный прием – послойное освещение, когда идет переход от темного к светлому и обратно от темного к светлому. Это отделяет ключевые элементы от фона, но также позволяет видеть детали вдалеке. На следующем рендере видно как добавочный фоновый свет отделяет передний план от фона. На рендере справа включены тени для фонового света, так как это убирает неестественный ободок на носу и других участках, которые должны быть скрыты.
Ситуация 1: Открытая сцена с множеством деталей
Как мы видим, есть глубокие черные тени, это связанно с направлением источника света, банально «лучи» туда не проходят. В таких случаях можно поставить большое количество дополнительных источников света, которые высветлили бы все эти затемнения, а можно включить Глобальное oсвещение (Global illumination или GI).
Глобальное освещение, если очень просто, заставит луч, который идет от источника света отразиться от поверхности и полететь до следующего препятствия. Тем самым мы получаем более светлую картинку, свет попадает в те места, куда при его прямолинейном распространении он не мог «залететь».
Уже при одном отскоке картинка становится намного живее, за счет более мягких теней и отсутствия черных провалов.
Глобальное освещение, 1 отскок Глобальное освещение, 2 отскока
Чем больше количество отскоков, тем свет дольше «гуляет» по сцене и попадает в «труднодоступные места».
Солнечный свет, без Глобального освещения Солнечный свет, Глобальное освещение, 1 отскок Солнечный свет, Глобальное освещение, 2 отскока
Вывод: использование одного отскока вполне решает проблему освещения, дальнейшее увеличение не всегда даёт качественного изменения картины, но будет больше требовать ресурсов для просчета, а следовательно время рендера может сильно увеличиться.
Часть первая – теория
Глобальное освещение (далее GI) это алгоритм непрямого освещения, основан на генерировании источником света (далее ИС) GI-фотонов, которые встречаясь с объектом изменяются с учетом его материала и отразившись освещают рядом стоящие объекты. Наглядно я этот эффект изобразил на простом рисунке:
там, где включен GI, свет отобразился от сферы, принял ее красный цвет и осветил коробку изнутри.
Применение GI выводит освещение сцен на более совершенный уровень, тем более что в mental ray есть источники света, которые не генерируют прямое освещение, а только фотоны GI.
Включается алгоритм GI для всей сцены в настройках рендера (Render Setup ) закладка Indirect Illumination (непрямое освещение) – галка Enable (включить):
Настройки GI:
Multiplier – общий множитель яркости эффекта и цвет фильтра.
Maximum Num Photons per Sample – качественная характеристика - количество фотонов для подсчета в семпле – уменьшение ведет к появлению шума.
Maximum Sampling Radius – радиус площадки сбора фотонов , очень часто путают с радиусом фотона – в mental ray фотоны не имеют радиуса, параметр от которого напрямую зависит качество освещение, изменение настройки только этого показателя, как правило не приводит к прямому улучшению качества (подробности в практической части)
Merge Nearby Photons - качественная характеристика – алгоритм объединения фотонов – задается расстояние, на котором происходит объединение нескольких фотонов в один – включение параметра может привести к ухудшению качества, но экономии памяти – актуально включать, когда мы увеличением количества фотонов пытаемся поднять качество картинки в одной проблемной области, а при этом остальные области не нуждаются в таком количестве.
Optimize for Final Gather – при использовании GI совместно с Final Gather (далее FG) оптимизирует вычисление совместно освещенных участков. Работает как дополнительный алгоритм и занимает немного больше времени при рендере.
Поле – Light Properties:
Average GI Photon per Light – количество фотонов, излучаемое источником света. Как правило, изменение этого параметра без изменения радиуса семпла к ощутимым положительным результатам не приводит (подробности в практической части).
Decay - параметр затухания фотонов, физически корректное значение = 2 (согласно квадрату расстояния) если вы используете физически корректное освещение, не меняйте значение, для художественных целей интересно уменьшать значение совместно с уменьшением энергии ИС.
Параметры в Trace Depth указывают количество отражений и преломлении, которые произойдут с фотоном, прежде чем он пропадет, желательно максимальную глубину установить на 5, а не 10 по умолчанию – это сэкономит время, а результат практически не измениться.
Итак, это все что нам надо знать по теоретической части по GI.
Давайте смоделируем помещение и будем настраивать (а иногда и бороться) с глобальным освещением.
9. Линейное цветовое пространство (Linear workflow)
Эта опция включена по умолчанию в ваших настройках проекта для того, чтобы рендер происходил в линейном цветовом пространстве. Простыми словами, монитор на котором мы работаем имеет гамму 2.2, чтобы изображение было приятным глазу. Когда вы включаете Линейное цветовое пространство (Linear Workflow), все элементы конвертируются в линейное цветовое пространство, изображения обрабатываются в линейном цветовом пространстве и потом обратно в выбранное цветовое пространство/гамму монитора.
Это означает, что ваши изображения будут более сбалансированными и приятными глазу. Расчет освещения и цвета будет правильным и будет легче достичь хорошего результата с включенным Linear Workflow.
6. Работайте с каждым источником света по отдельности (Включайте режим Solo)
Когда в вашей сцене множество различных источников света бывает сложно увидеть их в деле. Я люблю работать с каждым источником света по отдельности, это значит, что я отключаю весь остальной свет в своей сцене и фокусируюсь на выбранном свете для того, чтобы довести до ума свет и тени. Если созданный свет ничего особенного не играет в вашей сцене, избавьтесь от него или переместите в другое место. Нет смысла тратить драгоценное время на рендер света и теней, которые не нужны в сцене. Каждый свет надо использовать с определенной целью для вашей истории, вашей композиции.
Здесь у нас ключевой, заполняющий и фоновый источники света трехточечного освещения.
Ситуация 1: Открытая сцена с множеством деталей
Как мы видим, есть глубокие черные тени, это связанно с направлением источника света, банально «лучи» туда не проходят. В таких случаях можно поставить большое количество дополнительных источников света, которые высветлили бы все эти затемнения, а можно включить Глобальное oсвещение (Global illumination или GI).
Глобальное освещение, если очень просто, заставит луч, который идет от источника света отразиться от поверхности и полететь до следующего препятствия. Тем самым мы получаем более светлую картинку, свет попадает в те места, куда при его прямолинейном распространении он не мог «залететь».
Уже при одном отскоке картинка становится намного живее, за счет более мягких теней и отсутствия черных провалов.
Глобальное освещение, 1 отскок Глобальное освещение, 2 отскока
Чем больше количество отскоков, тем свет дольше «гуляет» по сцене и попадает в «труднодоступные места».
Солнечный свет, без Глобального освещения Солнечный свет, Глобальное освещение, 1 отскок Солнечный свет, Глобальное освещение, 2 отскока
Вывод: использование одного отскока вполне решает проблему освещения, дальнейшее увеличение не всегда даёт качественного изменения картины, но будет больше требовать ресурсов для просчета, а следовательно время рендера может сильно увеличиться.
7. Цветной свет
Редко в реале можно встретить чисто белый источник света, для интересного освещения используйте разные цвета. Очень часто используют более теплые, оранжевые цвета для ключевого света и далее к более холодным синим оттенкам для рассеянного и заполняющего света. Если нажмете на маленький треугольник в закладке General, то выберете цвет, используя temperature(температуру) вместо RGB.
И будет здорово, если вы возьмете комплиментарные цвета (обязательно погуглите это понятие. Очень важная и интересная фишка. Очень!) для ключевого и заполняющего источников света, так как эти цвета наиболее гармоничны. В зависимости от того, к чему мы стремитесь можно настроить насыщенность ваших цветов. Для создания реалистичности Saturation (насыщенность) должна быть низкой, если это стилизованный какой-то вид, то можно увеличить насыщенность и даже получить неплохой такой результат.
Цвет освещения очень важен для создания определенного времени дня или особого окружения. Раннее утреннее солнце отличается от резкого света люминесцетной лампы. Подумайте, о том, какой вид света вам нужен, чтобы знать к чему стремиться. Изучайте другие 3D референсы и также посмотрите работы профессионалов, как они работали со светом, в живописи, например. (Художники как Рембрандт и Караваджо).
8. Расположение и направление света.
Мы уже разобрали трехточечную схему освещения, пора перейти к более сложным и интересным результатам.
Подумайте об (environment) окружении, которое вы хотите воссоздать и эмоциях, которые вы хотите вызвать, возможно, это ночная сцена с луной, холодным синим светом и горящим костром с другой стороны. Или это раннее утро, когда солнце еще низко. Расположение света – фундаментальная вещь в вашей истории.
Ситуация 3: Открытая сцена с отражающими объектами
Светящийся материал, без Глобального освещения
Выше пример сцены, в которой использование Глобального освещения не то, что под вопросом, а самая частая ошибка в настройках. Как мы видим, за счёт отражений у нас уже создается эффект наличия световых рефлексов, все объекты отражаются друг в друге, светящийся элемент окрашивает пол и другие шарики.
Когда мы включаем Глобальное освещение и хотя бы один отскок, то у нас пропадают черные моменты в основании шариков и это положительно влияет на восприятие картинки, меньше совсем черных зон, более мягкое освещение.
Светящийся материал, Глобальное освещение, 1 отскок
Увеличение количества отскоков в таком типе сцен зачастую не то, что не даёт «бонусов», но и очень мало заметно. Ведь по сути свету не от чего отталкиваться больше 1-2 раз, а переотражения и так дают информацию о рефлексах: в зеленом отражается и красный и фиолетовый, в красном и зеленый и фиолетовый, и на полу мы видим влияние цвета выставленных сфер на золотую поверхность.
Светящийся материал, Глобальное освещение, 2 отскока Светящийся материал, Глобальное освещение, 4 отскока
Вывод: в сценах, где много отражающих поверхностей, использование Глобального освещения зачастую не имеет смысла, разве что с 1-2 отскоками для борьбы с тёмными участками в местах соприкосновения геометрий, и то необходимо оценить, будет ли заметен этот эффект, и на сколько вырастет время просчета.
10. Глобальное освещение (Global Illumination)
Просто включите GI, тогда ваше освещение станет только лучше. GI создает второстепенный свет, что позволяет не использовать несколько заполняющих источников света и в процессе получится более приятный и гармоничный результат. Конечно, визуализация (render/рендер) с GI займет больше времени, особенно если это анимация, к примеру. Используя Physical Renderer (Физический рендер) Cinema 4D вместе с QMC Primary и Light Mapping можно достичь красивого результата, но опять же рендер будет немного шумным, если только не увеличить количество сэмплов, что опять же скажется на времени просчета.
Можно сымитировать GI, используя источник плоского света в виде полусферы или купола.
Однако имитация никогда не заменит настоящего, и рендер с GI поможет вам стать более креативным. Очень важно помнить, что нужно учиться работать с освещением и не полагаться на GI для решения своих задач.
Знать приемы работы со светом невероятно круто, некоторые отрабатывают свои навыки годами, но так здорово знать, что добился определенного мастерства и результата, который так нелегко достичь.
2. Используйте соответствующие тени
Тип тени очень влияет на настроение сцены, для яркого солнечного дня нужны темные и жесткие тени с очень небольшим «спадом» falloff в отличие от пасмурного дня, где тени едва различимы и очень высокий спад.
В Синема 4D можно выбрать 3 вида теней, Shadow maps (Карта теней, мягкая тень) Area Shadows (Поверхностные тени) и Raytraced (рейтрейсид) (тени построенные трассировкой лучей). Raytraced тени хороши, когда вы хотите добиться мультяшного или стилизованного вида у объектов сцены. Недостаток в том, что для них требуются высокие настройки anti-aliasing (сглаживания), чтобы уменьшить шум краев.
Очень часто используются мягкие тени, так как они позволяют достичь быстрого результата в сравнении с Area Shadows, вы можете скорректировать тень, увеличивая размер карты и количество сэмплов. Проблема с мягкими тенями в том, что они выглядят не очень реалистично, жесткость спада края тени всегда одинакова независимо от расстояния от объекта, отбрасывающего тень.
Area Shadows (Поверхностные тени) самый лучший тип теней, так как они наиболее точные и над ними больше контроля. Зато приходится жертвовать временем рендера, который будет намного медленнее. Чтобы ускорить процесс вы можете уменьшить число Samples (в русской версии это назвали как Мин. Макс. образцов =) ) и Accuracy (точность) , это ускорит процесс, но и появится шум.
Регулируя Radius/Size (радиус/размер) в закладке Details (Детали), вы можете регулировать резкость и спад теней, чем меньше размер поверхности, тем жестче тень. В примере ниже вы видите как, увеличивая размер поверхности, тень становится мягче. Заметьте, что Area Shadows самый точный тип теней, как видите тень всегда будет жесткой в точке соприкосновения и далее более мягкой по мере отдаления от объекта.
Общий вывод
Использование Глобального освещения (Global illumination, GI) помогает упростить работу со светом, убрать черные глухие тени, в которых ничего не видно. Современные рендеры стали достаточно быстро считать этот эффект, в том же Октане есть режим Direct Light: GI_DIFFUSE, который добавляет минимальное количество рендера при своём включении.
В посте так же не рассмотрел интерьерную сцену, но смысл продемонстрировать, что количество отскоков, которые иногда выставляют 4-6-8 и объясняют «ну вот будет красиво», не имеет никакого смысла, всё станет красиво и с 1-2 отскоками. Обязательно делайте проверочные рендеры, сравнивайте картинки, перед тем как «сейчас всё поставлю на максимум, ферма смолотит».
В этой статье вы узнаете о базовых техниках освещения и как их эффективно применить с помощью Cinema 4D.
Статья будет полезна уже практикующим 3д-дизайнерам, т.к. поможет ответить на множество вопросов, которые возникают при настройке освещения.
Часть вторая – практика
Итак, у нас есть сцена, которую мы хотим осветить. Я сделал небольшое помещение:
основной поток солнечного света будет падать из отверстия в потолке (сейчас там темная дырка), освещаться все будет системой дневного света, солнце практически в зените. В результате у основания колонны должно быть яркое пятно от прямой иллюминации (прямых солнечных лучей), а все остальное будет освещаться непрямой иллюминацией созданной этим светлым пятном и частично светом небосвода, что смог попасть через верхнее отверстие.
Включаю солнце, настраиваю экспозицию и сразу вижу первую проблему GI.
Все помещение в бежевых тонах! Почему?
Солнечный свет (прямой) осветил пятно на полу, который у меня покрыт материалом A&D (под полированное дерево) коричневых тонов, фотоны непрямой иллюминации приняли оттенок материала и полетели освещать внутренности помещения, окрашивая все в бежевое. В принципе на этой картинке еще все более менее терпимо, но покроем пол синей плиткой (тоже A&D):
скажите жуть? Нет, это тоже еще терпимо, а вот, возьмем материал из набора ProMaterials – Пластик, тоже синий:
вот это уже ближе к жути!
Моделил я в метрической системе, теоретически расчет GI и FG должен проходить корректно. Может я не прав, но в реальном мире нет такого сильного переноса цвета от ярких поверхностей, если Солнце освещает красный ковер в моей комнате (и такое бывает в нашем хмуром городе Питере), то комната не погружается в багровые тона.
Что-то тут разработчики упустили, либо считают, что мы сами должны позаботиться об этом эффекте.
Давайте позаботимся и исправим данное недоразумение. Я опишу три способа – два частных случая и один кардинальный.
Вернемся к помещению с деревянным полом (рис № 2)
Первый способ состоит в подборе фильтра на GI ну и соответственно поставим его же на FG.
Чтобы компенсировать желто-бежевый цвет нужен светло-голубой фильтр, его и поставим (правда на GI и FG пришлось поставить немного разные фильтры, но кто сказал что будет легко):
явно с бежевым цветом справились. В чем два минуса этого способа?
Первое это подбор цвета фильтра (тем более что их два) и второе это то, что так мы можем компенсировать всего один цвет. Что делать если у меня половина пола красная, а вторая зеленая? В этом случае фильтр не поможет.
Второй способ. Давайте подумаем, почему происходит такая сильная окраска фотонов. Может я ошибаюсь, но по-моему, диффузный цвет из шейдера поверхности без изменений переноситься в шейдер фотонов, либо недостаточно ослабляется (это конечно касается предустановленных материалов, при работе с материалом mental ray, мы сами настраиваем этот шейдер). Давайте сменим шейдер. Открываем закладку «mental ray Connection» в свойствах материала и снимаем блокировку (замочек) с шейдера фотонов:
далее нажимаем кнопку шейдера и выбираем Photon Basic (base):
и диффузную составляющую цвета настаиваем по своему желанию:
это именно тот цвет, который будут приобретать фотоны GI при столкновении с материалом, он должен быть более блеклым, чем диффузный цвет самого материала, ну и соответственно чем он темнее, тем меньше эффект от освещения GI с этого материала.
Изменяем и рендерим:
У этого свойства тоже есть пара недостатков. Первое это то, что алгоритм FG все равно сделает свое черное дело (или бежевое в нашем случае), а втрое это то, что у предустановленных материалов группы ProMaterials невозможно сменить шейдер фотонов.
Итак, третий способ.
Он основан на работе с картами фотонов, а заодно и с картой FG.
Сохраняем наш проект (на всякий случай, хотя можно потом обойтись и функцией отмены действия ctr+Z)
Делаем еще один материал бледно серенького цвета, с минимальным отражением и полностью непрозрачным (я воспользовался материалом для покраски стен, что в принципе и советую):
Обратите внимание, я активировал опцию Ambient Occlusion, пока просто там ставим галку, подробности будут ниже.
Выделяем все объекты сцены и назначаем им этот материал (не бойтесь, мы же сохранили нормальную сцену)
Сцена приобрела следующий вид:
серо, хмуро, но нам так нужно.
Теперь заходим в настройки непрямой иллюминации
Для начало сохраним карту FG. Раздел Final Gather Map, включаем галку – «Read/Write File», потом жмем по кнопке с точками и указываем имя и место, куда сохраниться карта:
после чего жмем кнопку «Generate FG Map File Now» и ждем процесс генерации.
Внимание – если это финальный рендер, установите нормальные параметры качества, тем более что ждать генерацию FG вы будете только сейчас, в дальнейшем на это больше тратиться время не будет. Все будет браться из сохраненной карты.
Аналогично делаем для GI:
ставим галку, указываем имя файла и жмем на генерацию.
Обе карты сохранены, теперь грузим сохраненную сцену с нормальными материалами, или делаем отмену действий.
Опять ставим галки в Read/Write File на обоих алгоритмах (или проверяем, что они стоят если отменяли действие)
Проверяем, что указан наш сохраненный файл и в алгоритме для FG «замораживаем» карту нажав на «замочек»:
теперь смело жмем кнопку РЕНДЕР, замечаем что нет процесса генерирования фотонов и FG:
и наблюдаем приемлемый результат переноса цвета фотонами.
Многие сейчас могут возмутиться:
«А как же сама концепция переноса цвета материала фотонами . мы ее убили на корню . а люди писали алгоритмы, работали. »
Во-первых - ничего и не убили, кто мешает назначать всем материалам один серый/белый цвет, а пол можно сделать немного желтоватым :-)
А во-вторых, давайте обратимся к физике, как происходит процесс передачи цвета, точнее отражения спектра.
В mental ray подразумевается, что он сразу смешивается (либо полностью либо в ослабленном виде – точно не знаю это нужно изучать программу шейдера)
А в реальном мире окрашивание происходит из-за попадания света в толщу материалов и возвращения из нее уже с отфильтрованным спектром, даже самые «непрозрачные материалы» имеют прозрачность на срезе очень маленькой толщины, но основная масса света отражается от полированной поверхности сразу, не проникая во внутрь и чем плотнее материал, тем больше.
поэтому камни будут отражать в основном белый цвет (цвет источника точнее) металлы немного его подкрашивать, пластики еще больше смешивать со своим цветом, ну а стекло… и так понятно.. там больше каустика, кроме того на цвет отражение еще влияет качество полировки, шероховатые поверхности больше окрасят отраженный свет, полированные меньше.
Пока плотность материала мы в Максе задавать не можем, а в предустановленных материалах она видно работает не так хорошо, как нам хочется. Поэтому придется имитировать GI описанными выше способами, либо для большей реальности можно включить эффект каустики (это и есть черная стрелка на рисунке, мы привыкли считать что каустика это только у стеклянных объектов, а это еще и зеркальные блики) либо пользоваться материалами mental ray на основе подслойного рассеивания – группа SSS.
Теперь присмотримся ко второй проблеме.
На рисунке номер 7 стена и колонны как бы сливаются, точнее на них теряется объем – картинка замылена. Корень проблемы в некачественном освещении фотонами GI. Прямой свет от ИС дает ярко выраженные тени, подчеркивая объем элементов сцены. С фотонами немного сложнее – они не дают теней, тени получаются на тех местах, где меньше всего попало фотонов, соответственно, чем меньше фотонов (и больше площадки приема фотонов – семплы) тем меньше контрастность.
Возьмем, например помещение, которое освещается только непрямой иллюминацией и в нем установлена конструкция с неровными поверхностями, я сделал что-то вроде лестниц:
и сделаем рендер, включив GI, но не меняя количества фотонов:
желтым я пометил места, где явно выражена обсуждаемая проблема. Согласитесь неприятная ситуация. Напрашивается вывод – увеличить количество фотонов и уменьшить радиус семпла, но это сильно увеличивает время обсчета, после чего мы заметим еще пару тройку мест, где опять слабые тени и процесс увеличения количества фотонов будет бесконечным, пока компьютер не откажется работать. Сразу вспоминается куча анекдотичных ситуаций, про качество и количество, на основании которых можно интерпретировать анекдот про графику:
Сидят вечером три работника в сфере CG, и обсуждают свои проекты.
- Сегодня закончил сцену, осталось обсчитать с 10 млн. фотонов, дня через три закончу.
- Тоже все закончил, но не хватает мощности компа, доставлю память и закончу проект.
Сидят жалуются на быстродействие техники, а потом спрашивают третьего:
- А ты чего молчишь? как ты борешься со сложными обсчетами?
- А я использую Ambient Occlusion! Все сдал и завтра в отпуск.
Давайте и мы не будем решать проблему экстенсивно, а воспользуемся имитацией глобального освещения на материале.
Если используются материалы группы ProMaterials, то в них есть опция Special Effects, в которой и можно включить Ambient Occlusion
Параметр samples это качество просчета – чем больше, тем лучше.
Параметр Max Distance один из основных – это дистанция, с которой происходит учет рядом стоящей геометрии для формирования эффекта глобального освещения (со всех сторон). Если мы хотим показать эффект явно, то тут нужно установить расстояние до соседнего объекта, а если просто хотим подчеркнуть геометрию объектов (как в нашем случае) достаточно от 10см до полуметра. Ниже параметры смешивания и размытия, нам сейчас они не очень нужны, так как функция АО второстепенна.
Если используется материал не из группы ProMaterials, то придется диффузный цвет смешивать с шейдером АО, желательно по карте Falloff. А в некоторых материалах и материальных шейдерах есть слот Ambient, в который и нужно установить шейдер Ambient/Reflective Occlusion и настроить дистанцию:
ни в коем случае не оставляете дистанцию по умолчанию (равна 0) для закрытых помещений, если параметр нулевой, то просчет материала происходит с максимального расстояния (с фона сцены) и с учетом стен помещения вы получите полностью затемненный материал. Параметр Samples, аналогично – качество. Остальные параметры в настройке для нашего случая не нуждаются.
Итак, добавляем Ambient Occlusion, который работает очень быстро и не трогаем количество фотонов:
согласитесь есть разница! Учитывая, что рендериг по времени почти не увеличился.
Перейдем к третей и четвертой проблеме, они взаимосвязаны.
Присмотритесь к рисунку (№ 8) у верхнего отверстия на потолке, если присмотреться есть круглое светлое пятно.
Для выявления этого эффекта я прорублю два окна и немного испорчу потолок у помещения:
Первое обозначено красной стрелкой – это засветленное пятно, сейчас мы воочию видим семпл сбора фотонов, который светлее обычного фона. Кардинальное решение проблемы будет чуть ниже, а сейчас частный случай:
На одну из колонн у окна я поставил материал Raytrace. Вообще-то mental ray поддерживает визуализацию стандартных материалов 3D Max, настраивая поверхность этого материала я не трогал шейдер фотонов, а он оказывается настроен не корректно! Поэтому от колонны отразился несбалансированный поток фотонов, который и принялся семплом, создав площадку, ярче фона.
Вывод - желательно пользоваться материалами mental ray, а если у вас есть любимый и настроенный старый материал, позаботьтесь о настройке шейдера фотонов как мы делали выше в обсуждении первой проблемы. Но это частный случай. Общее конечно в настройке семплов и количества фотонов.
Посмотрите на желтую стрелку, такое ощущение что у меня потолок над окнами не подогнан к стенам (или наоборот), на самом деле все там в порядке, иначе бы светило было по всему периметру стыка. Дело в том что я продлил потолок на улицу и получил эффект с которым мы часто сталкиваемся при визуализации интерьеров освещенных ярким светом.
Разберем эффект на самом частом и явном примере. Такие пятна как правило появляются под подоконниками, где должно быть по умолчанию темно, а mental почему то там ставит такие пятна. Вот схемка их образования:
черный круг это семпл сбора фотонов. Программа визуализатор, в видимую часть стены ставит семпл сбора фотонов, центр которого находиться под подоконником и соответственно почти весь он в тени. Но маленькая его часть вылезает в освещенную часть, а там очень ярко и эта «маленькая часть», собирает очень много фотонов, в результате среднее арифметическое фотонов для темного места велико, а для светлого места мало. Семпл неделимая единица, поэтому визуализатор считает освещение в этом месте не корректно.
Выход только в уменьшении радиуса семпла и увеличении количество фотонов. По умолчанию размер семпла одна десятая размера сцены, а в нашем случае его нужно сделать по высоте подоконника.
Оптимальный расчет можно сделать так:
X = размер сцены разделенное на 10 (например 1,2 метра)
Y = размер объекта который вызывает проблему, разделенное на 2 (например 0,03 м)
Размер семпла (Maximum Sampling Radius) = Y
Количество фотонов (Average GI Photons per Lihgt) = начальное значение умноженное на X деленное на Y (у меня это 20000*40 = 800000)
Выше параметры ставить бесполезно – это ничего не даст – только время потратим.
(любители геометрии сейчас могут возмутиться - почему мы делим на 40, а не на 2 в 40-ой степени? Ведь площадь уменьшается согласно квадрату. Все правильно мы делаем, ведь семплы ставятся пересекаясь и накладываясь! А не рядышком и воздействие каждого фотона уменьшается на корень из 2)
в моей сцене получилось 400000 фотонов, плюс еще некоторая настройка окружения:
В итоге время рендера вместе с генерацией карт освещения на процессоре 2х2Ггц - 4 минуты 31 секунда (148 тыс полигонов – деревце за окном прибавило)
Согласитесь это лучше чем генерировать часами миллионы фотонов и получать минимальные результаты.
В конце урока оговорюсь опять – все это результаты собственного опыта и расчетов и я не претендую на сто процентную правильность.
На этом уроки по освещению заканчиваю, но это не значит, что не будет уроков по другим темам.
4. Diffuse, Specular и отбрасывание тени
Не всегда вам нужен реализм, и часто хочется поэкспериментировать. С помощью света можно создать диффузное свечение, Specular (фэйковое пятно на материале (в русской версии называется – Глянец, но гугл переводит и Glossiness как Глянец. Glossiness – это отражающая поверхность. В общем если вас интересует дословный перевод , то он звучит как-то так Reflection – отражение, Specular – зеркальный, Gloss – блеск.) Да, всё слегка запутанно. Но на практике вы всё поймёте ) или отбрасывание теней, все это можно настроить одновременно, либо отключить по отдельности.
Что делать если ключевой свет расположен идеально, а Specular нет? Вы можете отключить опцию Specular в закладках General, продублировать свет и затем отключить Диффузию в новом свете. И вот у вас свет только с бликами. Вы можете переместить Specular, не трогая ключевой. Я часто отключаю опцию Specular на всех моих ключевых источниках света, чтобы у меня выделялись главные блики и чтобы на объекте не было ненужных лишних бликов, что выглядит неестественно.
В закладках Детали (Details) есть вкладка Shadow Caster, благодаря этой функции ваш свет станет светом отбрасывающим тень. Это можно использовать в комбинации со светом без тени для создания освещения, для перемещения тени, для более гармоничной композиции.
В данном примере я использовал три вида света с большим значением Specular, чтобы показать результат. В первом рендере слева у всех трех источников света есть Specular, в центре нет бликов и справа только у ключевого света включена опцияSpecular.
Читайте также: