3D-моделиУрокиСценыТекстурыЧаВоГалереяСправочникГлоссарийПомощь | 1024 ярко освещённых здания без единого источника светаПредыдущий урок: Что нам стоит дом построить, если есть ExtrudeNURBS? Следующий урок: Кручу-верчу, трансформировать текст хочу К этому уроку прилагается 3D-сцена В предыдущем уроке мы с вами построили... ну, почти построили... или, во всяком случае, научились строить дом с минимальными затратами сил и времени. Научившись строить дом, мы с вами задумались: днём он смотрится ещё более-менее нормально, а как будет выглядеть ночью? Без освещения — скорее всего, примерно так же, как одна очень известная картина одного очень известного художника. Отлично, надо осветить построенное нами здание. Текстурируем его поверхность и размещаем вокруг его корпуса источники света. Красота! После размещения источников освещения наша трёхмерная сцена будет выглядеть примерно так, как показано ниже. Два основных источника света над крышей (на самом деле неважно, где они размещены, потому что оба относятся к типу «Infinite», то есть «бесконечно удалённые», так что над крышей они размещены просто для наглядности), четыре — внутри уличных фонарей, и ещё — внимание! — 32 источника света вокруг корпуса здания. Итого — 38 источников света, из которых только два являются общими (то есть освещают все объекты в сцене), а остальные 34 источника служат персональным освещением здания. Впрочем, ничего страшного, верно? Нашему компьютеру ничего не стоит отрендерить в превосходном качестве вид здания, освещённого тридцатью четырьмя источниками света. Даже анимацию можно замастрячить — ну скажем, облёт камеры вокруг здания. Абсолютно ничего страшного. Пока речь идёт об одном здании. Ну, в крайнем случае, о десятке таких зданий. Ну а если нам с вами требуется изобразить жилой квартал из сотни или тысячи таких строений? 34x1000=34000. Ещё раз, прописью: тридцать четыре тысячи источников освещения, пусть и с ограниченным радиусом освещения. Потянет ваш компьютер такую сцену? Сколько времени займёт рендер вашей анимации? А видеокарта справится с прорисовкой? Специально для таких случаев в Maxon Cinema 4D существует превосходный инструмент под названием «Bake Texture» («Спекание текстур»), о котором мы и поговорим далее. Этот инструмент, грубо говоря, делает следующее: рендерит трёхмерные объекты с разных проекций и на основе полученного результата создаёт текстурные карты, имитирующие создаваемые другими объектами сцены (например, источниками света) эффекты, в том числе и освещение. Разберёмся, как создаются такие текстурные карты. Итак, в нашем распоряжении имеется здание, освещённое 34 источниками света. Первым делом собираем в группу всё, для чего необходимо создать текстурные карты. Это, во-первых, само здание, во-вторых, тротуар вокруг него, в-третьих, четыре фонаря по углам тротуара, и наконец, в-четвёртых, площадка вокруг тротуара — на неё тоже попадает часть света от фонарей. Вторым шагом выводим за пределы группы все источники освещения, свет от которых необходимо будет учесть при создании текстурных карт. Вроде бы всё готово. Но если на данном этапе «запечь» текстуры здания, то мы с вами наткнёмся на очень неприятный сюрприз: крыша здания выглядит почти совсем не освещённой, несмотря на достаточно яркий общий источник света. Причина этого явления становится очевидной, если перед «спеканием» текстур перейти в режим редактирования полигонов и выделить все полигоны здания (скажем, комбинацией клавиш Ctrl+A): мы с вами сразу же увидим, что все полигоны здания окрашены жёлтым цветом, а у полигонов крыши жёлтыми стали только рёбра. Это означает, что нормали полигонов крыши обращены как бы «вовнутрь» модели, в отличие от полигонов остальной поверхности модели. А процедура «спекания» текстур обратную (внутреннюю) сторону полигонов не обрабатывает. Вот вам и причина неосвещённости крыши. Исправляем недоразумение: лезем в верхнее меню Cinema 4D, находим в нём пункт «Functions» и в выпадающем подменю щёлкаем на пункте «Align Normals» (по-русски говоря, «привести направление нормалей всех полигонов модели в порядок»). Выполнение этой операции моментально окрашивает полигоны крыши в жёлтый цвет — ура, нормали поменяли своё направление, и не все, а только те, у которых направление было неверным. Ну а вот теперь уже можно перейти к «спеканию» текстур. Ещё раз проверяем группу объектов, приготовленную к «спеканию»: в ней не должно быть ничего лишнего, в том числе источников освещения. Выделяем наименование группы в менеджере объектов, затем лезем в верхнее меню Cinema 4D — на сей раз нам нужен пункт меню «Render», в выпадающем из него подменю ищем пункт «Bake Object». Здесь требуется небольшое пояснение, почему мы с вами выбрали именно «Bake Object», а не «Bake Texture». Дело в том, что «Bake Object» — это экспресс-вариант «спекания» текстур, он «спекает» текстуры с использованием всего двух наиболее часто используемых эффектов — «Ambient Occlusion» и «Illuminate», и для выполнения нашей задачи этого варианта будет более чем достаточно. Итак, жмём «Bake Object» и видим окно запуска. Прежде всего сразу же отмечаем галочкой пункт «Illuminate» — он не имеет никакого отношения к таинственному ордену иллюминатов, как можно было бы подумать, зато отвечает за включение в расчёты текстурных карт освещения объектов. Далее по своему усмотрению ставим или убираем галочку рядом с пунктом «Single Texture» — активация этого параметра приведёт к формированию одной единой текстурной карты для всех объектов «спекаемой» группы вместо отдельных файлов текстур для каждого объекта. Немного ниже выбираем разрешение для будущих карт, слишком скупиться не советую, особенно при активации пункта «Single Texture», иначе чёткие текстуры при «спекании» станут размытыми и пикселизованными. Ещё ниже в том же окне выбираем формат изображения, в котором будет сохранена текстурная карта, и путь к каталогу на компьютере, в котором она будет сохранена. Ну и в завершение жмём клавишу «Bake» в самом низу. Мы с вами увидим, как в боковом поле окна «спекания» начнётся пиксельная суета, а в нижней части интерфейса Cinema 4D (под нижней панелью инструментов) появится индикатор прогресса. Ждём, пока индикатор заполнится до конца и заменится на сообщение «Baking complete» («Спекание выполнено»). Чем выше мы указали разрешение для текстурной карты, тем медленнее будет идти процесс «спекания», но это не самая высокая цена за сохранность текстур здания. Если, дождавшись окончания процесса, мы с вами отрендерим здание, то вряд ли заметим какие-либо существенные изменения. Но достаточно кинуть взгляд в менеджер объектов, чтобы увидеть, что в списке объектов появилась новая группа — копия оригинала, объектам которой назначены только что созданные текстурные карты, — а отображение группы-исходника отключено. Повернув созданную группу на 90o, мы обнаружим, что тени на тротуаре больше не соотносятся с направлением общего освещения сцены — что вполне естественно, так как это больше не тени, это всего лишь имитация теней. Окончательно убедиться в ответственности текстурных карт за имитацию освещения здания нам может помочь полное удаление каких-либо источников освещения в сцене: здание после этого останется так же ярко освещённым, как и прежде. Ну а теперь, когда мы с вами избавились от необходимости использования десятков тысяч источников освещения для жилого квартала — не угодно ли взглянуть на него? Хотите — верьте, хотите — проверьте: в приложенной к уроку сцене — 1024 ярко освещённых здания и ни единого активного источника освещения. В кадре все дома, к сожалению, не поместились, но с любого ракурса сцена рендерится в среднем разрешении за считанные секунды. Предыдущий урок: Что нам стоит дом построить, если есть ExtrudeNURBS? Следующий урок: Кручу-верчу, трансформировать текст хочу Вернуться к началу урока | Вернуться к списку уроков |