По мотивам уроков Andrew Price и Andrew Kramer
YouTube на выходных подкинул в рекомендации новый урок Эндрю Прайса, Blender Guru, по рендеру Земли в Cycles. А я сам Землю, можно сказать, с детства люблю рендерить, лет с тридцати трёх наверное. Посмотрел, что там дают - карты НАСА для цвета и микрополигонального дисплейсмента, адаптивное разделение полигонов, волюметрики для атмосферы. Не, думаю, это не наши методы. Может у них там, в Австралии в каждом компе по две 3090 стоит, а нам бы как-то всё облегчить и ускорить. Вспомнил уроки Эндрю Крамера, вспомнил свои старые наработки, вспомнил, что давно хотел попробовать параллакс мэппинг на чём-то кроме плоскости, посидел поковырялся полдня и вот что получилось (видео выше).
Это рендер в Eevee на 300 сэмплах. Я в названии видео написал 3.56 секунд на кадр, но это среднее время рендера в разрешении 1920 на 1080 и без постобработки. Оригинальное разрешение в формате 2.39:1, то есть 2581 на 1080, рендерилось в среднем 4.06 секунды на кадр, плюс ещё столько же времени потом была постобработка: цветокоррекция, денойзинг, шарпенинг, добавление лёгкого искажения линзы, добавление зерна и апскейл для заливки на ютуб. Всё делалось полностью в Блендер, никакого стороннего софта.
Для дисплейсмента используется техника параллакс мэппинга, когда вместо того, чтобы многократно подразделять полигоны и выдаваливать их, несколько раз целиком дублируется низкополигональная геометрия, чтобы получился такой слоёный колобок, а для каждого слоя с помощью карты дисплейсмента определяется маска прозрачности в соответствии с расстоянием от поверхности первого слоя. Пока в Блендер эту возможность ещё не подключили, поэтому все слои я процедурно сгенерировал с помощью аддона STACKS, чтобы контролировать расстояние от слоя до слоя процедурно. Можно было бы сделать и с помощью модификатора Array, но там меньше контроля над изменением расстояния между каждой последующей копией. В результате вместо, я не знаю, нескольких десятков миллионов полигонов, которые позволили бы добиться такой же точности, там всего 600 тысяч. Использование волюметриков на сферах я тоже всегда считал излишней тратой ресурсов - есть Fresnel и Layer Weights, с помощью которых очень удобно делать псевдо-сферические маски, затухающие к центру, а подогнать всё по цвету, размеру и яркости - дело техники. Облака я тоже делал без всякого подповерхностного рассеивания, просто добавив им немного Emission, как завещал Эндрю Крамер.
Я понимаю, что многим захочется подробный урок, но я не уверен, что у меня в ближайшее время будет возможность его записать - на этой неделе все силы будут брошены на «Избушку» и зайца, сейчас в курсе настал самый сложный, переломный для меня момент. Скорее всего чуть позже я немного вычищу и выложу файл проекта - со своей версией готовой модели Земли для Eevee. А возможно и настраиваемый с помощью STACKS ассет. Погуглите parallax mapping и Fresnel, это прикольно.