вторник, 12 ноября 2013 г.

Визуализация в Lagoa - как быстро разобраться в основах

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


Прежде всего, нужно войти под своим логином или через аккаунт социальной сети (facebook, google) в lagoa.com. Если у вас нет аккаунта, то нужно зарегистрироваться. Ещё раз напомню, если кто-то не в курсе – этот рендер работает в любом браузере, поддерживающем WebGL, и все вычисления производятся на стороне сервера.
Подготовка сцены для экспорта
Перед тем, как приступить к загрузке сцены в lagoa, сначала нужно её правильно экспортировать. Это не сложно, но есть некоторые нюансы.
  1. Экспортировать можно только геометрию, но не частицы (кроме волос из HairFarm) и не параметрические объекты (стеки модификаторов, например). При экспорте можно использовать различные форматы, но лично мне больше пришёлся по душе экспорт через COLLADA (*.dae). Если ваш  пакет 3d моделирования не применяет модификаторы при экспорте автоматически, то в настройках нужно указать, чтобы они были применены или же вручную применить их к каждому объекту. Например, в Blender при экспорте в dae по умолчанию объекты экспортируются без применения модификаторов, поэтому, если на объекте есть модификатор, например, subsurface, то объект сохранится без него, т.е. его низко-полигональная версия.
  2. Если объект текстурированный, то к нему нужно применить UV развёртку (UV-Unwrap). К тому же UV должна быть одна. Как я понял мульти-UV пока не поддерживаются. Но если ваш объект или отдельная его деталь не нуждается в текстуре, и ей достаточно простого применения нужного материала, то в UV нет необходимости.
  3. Если в сцене есть плоскости, то их лучше сделать объёмными, т.е. придать им толщину. Это касается тех случаев, когда плоскость исполняет роль стекла или ткани.
  4. Текстуры нужно обработать перед загрузкой в lagoa. На данный момент всё ещё существует проблема с гаммой в текстурах. Есть два решения: 1. Понизить гамму в Photoshop; 2. Понизить средние тона при помощи инструмента spline в редакторе изображений lagoa.

Вариант 1. Как понизить гамму при помощи Photoshop:
  • Зайдите в Image/Adjustments/Exposure (Рис.01) и установите значение Gamma Correction на 0.45.
  • Нажмите Ok и сохраните текстуру отдельно



Рис. 01
Вариант 2. Как понизить гамму в редакторе изображений Lagoa:
  • Загрузите текстуру в ваш проект в Lagoa и нажмите синюю кнопку Open
  •  Нажмите на слово Spline
  •  Потяните за середину линии, чтобы появилась новая точка на кривой и изогните её так как показано на рисунке 02
  •  Нажмите Accept
  •  Нажмите Save


Рис. 02
Приступим к загрузке
Теперь, после вводной информации, можно приступить к уроку. Для этой цели я смоделировал простенькую комнатку с минимумом мебели, чтобы не усложнять и не растягивать урок. Я назвал эту сцену «Утренняя комната». Я хотел создать ощущение летнего утреннего ветерка, врывающегося в спальню. Для этого мне пришлось создать занавеску, которая и показывала ветер, вследствие чего увеличилось время рендеринга. Но без этого сцена потеряла бы свою первоначальную задумку. Поэтому если вы хотите, то можете не загружать шторы в сцену. Этим вы уменьшите шум и сократите время визуализации.
К этому уроку я приложил файлы своей сцены. Для удобства я отдельно экспортировал каждый предмет. Получилось 6 файлов *.dae. Собственно это: кровать, шторы, окно, дощатый пол, сама комната и задняя стена. Не обязательно разделять таким образом, вы можете загружать сцену как одно целое. Но лично я посчитал, что так удобнее.
Текстуры понадобились только для одеяла и пола (для плинтуса подошла текстура пола). Все они уже подготовлены для импорта в lagoa, так что больше ничего делать уже не нужно. Поэтому приступим к загрузке.
Если вы зашли под своим логином на сайт lagoa.com, то справа вверху будет меню My Projects. Нажмите на него, а затем выберите Create a new project. В поле Project Name введите название своего проекта. Заготовку оставьте по умолчанию Blank и нажмите Create project. После этого ваш проект будет создан и вам останется его открыть кнопкой Open project. На почту вам придёт сообщение, что ваш проект создан.
Слева вы сможете увидеть панель ассетов. Всё что вы будете загружать в проект (модели, текстуры, отрендеренная сцена) всё это будет отображаться там и называться ассетом. Сейчас там всего один ассет – simple. Вы можете его удалить. Все действия, доступные для ассетов, выполняются через кнопку с зубчатым колёсиком (Рис.03).

Рис. 03
В данном случае Simple нам не понадобится, поэтому просто нажмите на колёсико (возле кнопки Open) и выберите delete forever.
Чтобы загрузить свои файлы есть два способа:

  1. Просто выберите нужные файлы на своём компьютере и перетяните их на панель ассетов (когда она подсветится это будет означать, что можно отпустить клавишу мыши).
  2.  Также можно просто нажать кнопку Upload и выбрать нужные файлы на компьютере.
При этом, чтобы ускорить загрузку, вы можете запаковать все файлы в один архив (*.zip) перед загрузкой на сайт.

Настройка сцены и ассетов
Если вы разбили свою сцену на отдельные файлы, то можете настроить каждый объект по отдельности. Мне кажется это очень удобным.
Думаю нет необходимости в описании того как я настраивал каждый объект. Я ограничусь описанием нескольких (остальные настраиваются аналогичным образом).
Настройка пола
Давайте начнём с этого ассета. Нажмите кнопку Open напротив объекта room-plank-floor. Когда он загрузится перейдите на вкладку Meshes (значок кубика) панели Explorer (Рис.04).

Рис. 04
Все элементы этого ассета сгруппированы и группа по умолчанию называется Scene. Вы можете перетянуть все объекты из группы, а затем удалить пустой раздел Scene. Однако в данном случае этого делать не нужно, поскольку будет удобнее, если все эти объекты (а их там 107!) останутся сгруппированными. Просто переименуйте группу в planks. Это нам пригодится, когда мы объединим все ассеты в один.
Теперь перейдите на вкладку материалов. Она обозначена значком шарика с точкой. Здесь присутствует стандартный материал. Нажмите на него левой кнопкой мыши и удалите клавишей Delete на клавиатуре. Теперь нужно выделить все дощечки. Для этого перейдите обратно во вкладку Meshes и выделите сначала первый объект (раскройте группу если нужно), а затем на последний с зажатой кнопкой Shift. Теперь на панели навигации выберите раздел материалов (Рис. 05). Появится список материалов, в котором нам понадобится раздел Diffuse и в нём материал Glossy Diffuse.

Рис. 05
На панели Explorer во вкладке материалов появится только что созданный материал. Поскольку мы перед его применением заранее выделили объекты, он применился к ним. Переименуйте его, чтобы в дальнейшем было удобнее ориентироваться. Другой способ, которым можно применить существующий материал к объектам сцены заключается в том, что необходимо выделить нужные объекты, а затем на нужном материале нажать стрелочку (она появляется только при наведении на материал (Рис. 06).

Рис. 06
Теперь нам нужно загрузить в этот ассет необходимые текстуры. Они уже загружены в проект, поэтому просто найдите их на панели ассетов и перетяните на панель Explorer (не важно какая будет открыта вкладка, текстуры загрузятся куда нужно). Найти их теперь можно во вкладке текстур (иконка в виде картинки с пейзажем (Рис. 07)).

Рис. 07
Нажмите на одну из них, чтобы просмотреть. Теперь во вкладке материалов выберите наш единственный материал plank. Все настройки, доступные для данного материала отображаются на панели свойств, которая находится ниже.
Объект, к которому применён этот материал, должен быть, по задумке, лакированным (именно поэтому мы выбрали глянцевый материал), к тому же он должен иметь рельеф и древесную текстуру.
Начнём с рельефа. За это отвечает свиток Bump Map. Разверните его и нажмите кнопку с плюсиком (Рис. 08). В открывшемся меню выберите карту нормалей. Если вы не находите какую-то из загруженных текстур в этом меню, то перейдите во вкладку текстур и нажмите на нужную вам текстуру, чтобы она отобразилась, а затем вернитесь и повторите действие.

Рис. 08
Параметр Value отвечает за уровень рельефа. Чтобы настроить его, нам нужно видеть как это будет отображаться при рендеринге. Поэтому давайте включим визуализацию. За это отвечает кнопка Render на панели навигации (Рис. 09).

Рис. 09
Теперь вы можете видеть как отображается рельеф на наших объектах. Чтобы вращать вид камеры просто зажмите среднюю кнопку мыши. Если вам нужно приблизить или отдалить, то покрутите колесо или же с зажатым Alt и средней кнопкой мыши просто подвигайте вверх-вниз. Для панорамного перемещения зажмите Alt и правую кнопку мыши. Когда вы повернёте модель под нужным углом к свету, вы сможете заметить рельефность.
Теперь осталось применить текстуру. За это отвечает настройка Reflectance (это аналог Diffuse в пакетах 3d моделирования). Здесь также есть кнопка с плюсиком, при помощи которой можно назначить текстуру. Помимо этого имеются также параметры яркости текстуры. По умолчанию они стоят на середине. В нашем случае нужно изменить эти значения на 1.
На этом настройка данного ассета будет закончена. Если вас устраивает внешний вид объекта, то просто нажмите кнопку Save (Рис. 10).

Рис. 10
Кровать
Настройки кровати аналогичны. Для подушки и матраса я использовал обычный Diffuse. Но в reflectance вместо того чтобы назначить текстуру, я просто установил желаемый цвет (белый). Кнопка настройки цвета находится справа от кнопки назначения текстуры.
Для одеяла я тоже применил стандартный Diffuse, только с текстурой. А для самой кровати применил Glossy Diffuse с тёмно-коричневым цветом.
Кстати, с одеялом получилась проблема – оказалось, что нормали были обращены во-внутрь. Но для исправления этой ситуации не пришлось возвращаться в пакет моделирования. Во вкладке Meshes, если выделить нужный объект, то внизу появятся его свойства. Там есть галочка Flip the Normals.

Занавески
Тут тоже всё просто. На багет я применил материал металла, а для занавесок выбрал материал Translucent, который находится в разделе Volume. Ему я назначил персиковый цвет.

Окно
Тут тоже возникли сложности с нормалями. Пришлось инвертировать их через свойства объекта.
Окно я моделировал полностью со всеми стёклами, но я не планировал использовать все четыре стекла. Поскольку каждое стекло добавляет в сцену шум и увеличивает время рендеринга, я отключил три из них. Я оставил только то, что справа – оно было нужно для отражения. Поскольку стекло очень тонкое, не было необходимости применять какой-то сложный материал. Я применил Architectural Glass.

Комната
Этот ассет я оставил напоследок. В нём находятся несколько объектов: стены, пол, плинтус и карниз (и ещё задняя стенка). Для плинтуса и карниза я применил материал подобный полу (только без карты нормалей). Пол сделал чёрным (он будет находится под досками). Потолок и стены белыми.
Теперь немного расскажу об освещении. В данной сцене я использовал два типа освещения. Первый тип это exr файл (Enviroment). Я просто загрузил его в текстуры, а затем во вкладке освещения (с иконкой лампочки) я выбрал Dome Light и там кликнул по данной текстуре. Включите рендеринг, чтобы видеть как отображается текстура.
Мне нужно было, чтобы солнце располагалось со стороны окна. Но вращать саму комнату я не могу, потому как все объекты расположены так, чтобы при загрузке оказаться на своих местах. Поэтому я вращал сам источник освещения. Для этого в свойствах Dome Light в свитке Kinematics/rotation я покрутил параметр Y и остановился на значении 285.
Второй источник освещения будет Sun & Sky. Его вы можете добавить в сцену кликнув на значок Light панели навигации (Рис. 11).

Рис. 11
Здесь нам нужно сделать так, чтобы солнце этого источника совпало по расположению с солнцем, которое обозначено на текстуре окружения. Для этого я воспользовался параметрами Longitude и Latitude. Также можно изменить параметры времени дня. Для удобства я отключил видимость потолка и стен, зайдя во вкладку Meshes и отключив значки с изображением «глаза» на каждом из объектов.
Когда все настройки освещения были сделаны, я отключил галочку Render Visible в источнике Sun & Sky. Потом я включил видимость объектов, которые ранее отключал.
Теперь пришло время загрузить остальные ассеты, которые мы настроили ранее. Просто перетяните их в сцену. Всё! Теперь осталось выбрать нужный ракурс камеры и настроить сами параметры.

Камера
В рамках данного урока много рассказывать про настройки камеры не буду. Я расскажу как установить разрешение финальной картинки. За это отвечает опция Film в свойствах камеры. Чтобы найти камеру, перейдите во вкладку Camera (значок фотоаппарата) и выберите там камеру (она там единственная).
В свитке Film найдите раздел Resolution. Там установите ширину, которая вам необходима. Затем  отключите флажок Lock Aspect. Сейчас соотношение сторон установлено стандартное, поэтому высота установилась автоматически в соответствии с этим соотношением. Если мы попытаемся установить своё значение высоты, то пропорции картинки исказятся.
Чтобы правильно установить выходной размер сделаем следующее:
Для примера, предположим, что нам нужно получить картинку 1400x900. Для этого посмотрим на размеры кадра (Рис. 12).

Рис. 12

В данном случае он равен 6.4x3.6. Посчитаем коэффициент:
1400 / 6.4 = 218,75
Теперь нам нужно вычислить высоту кадра:
900 / 218,75 = 4.11
Значит, для разрешения картинки 1400x900 нам нужно установить размер кадра 6.4x4.11.
Теперь мы можем снова поставить флажок на Lock Aspect. И менять только ширину изображения, а высота будет меняться автоматически, в соответствии с соотношением.

В заключение
Вы можете поиграть с настройками освещения (например, с параметром интенсивности), найти более правильный ракурс камеры, подстроить материалы. Когда вы будете довольны результатом, можно рендерить. Чтобы получить идеально чистую картинку с достаточным разрешением, возможно на рендеринг понадобиться немало времени. В данном случае я установил время визуализации 5 часов и всё равно немного шума осталось. Если бы не было полупрозрачного материала на занавесках, то этого времени было бы достаточно, чтобы убрать шум полностью.
Естественно ждать всё это время у компьютера не придётся. Для этого есть фоновый рендеринг. Наведите курсор на кнопку Render и из выпадающего меню выберите Render in the Background. В разделе Quality выберите Custom (если вы хотите установить значение больше часа. Напишите количество единиц времени, а также выберите сами единицы (часы или минуты). И нажмите Render.

Здесь можно покрутить сцену:

P.S.
Для бесплатного аккаунта доступен только один фоновый процесс рендеринга одновременно. В платном аккаунте есть возможность рендерить сразу 3 работы. Соответственно и скорость визуализации быстрее.



Чтобы материал был понятнее, также доступно видео всех действий описанных в уроке.



Файлы для урока можно скачать тут.

2 комментария: