Dreamscape
Одна из самых трудных задач для 3D-аниматора - создание жидкости. Моделировать текучие вещества очень сложно, так как они постоянно меняют свою форму и очень чувствительны к динамике сцены. Естественная форма жидкости - сфера, и эту форму она постоянно стремится принять. В реальной жизни жидкость обязательно контактирует с объектами окружающей среды, поэтому принять естественную форму ей никак не удается. Для просчета поведения жидкости существуют специальные программы, которые принимают во внимание физические факторы, влияющие на поведение воды. Такие программы обычно очень сложны и требуют значительных системных ресурсов. Однако, ни одна из них не может служить универсальным решением для всех трехмерных сцен, в которых присутствует жидкость. В разных ситуациях жидкость ведет себя по-разному, поэтому и моделировать ее нужно разными методами. Например, в сцене, где вода наливается в стакан, жидкость симулируется при помощи сфер-метаболов. Два метабола, расположенные рядом, образуют поверхность, подобную слившимся каплям. Однако, такой метод совершенно непригоден для моделирования поверхности океана. В этом случае метаболов понадобилось бы такое количество, что процесс просчета занял бы очень много времени. Одним из удачных программных решений для имитирования жидкости является плагин Dreamscape. С его помощью можно создавать реалистичные ландшафты, в том числе и водные. Неоспоримым достоинством плагина можно считать возможность моделирования не только реалистичных водных поверхностей, но и таких важных факторов окружающей среды, как атмосферные эффекты, небо, освещение, горы и т.д. В этой статье мы расскажем вам о том, как создать при помощи этого плагина реалистичный морской пейзаж. Но в первую очередь давайте разберемся с освещением и окружающей средой, то есть, с небом. Создание неба Для начала создайте в окне проекции направленную камеру (Create > Cameras > Standard > Target), объектив которой будет фиксировать панораму пейзажа. При создании этого объекта следует установить мишень камеры таким образом, чтобы она находилась несколько выше самой камеры. Это нужно для того, чтобы камера "смотрела" слегка вверх. Теперь выполните команду Rendering > Environment и в списке атмосферных эффектов (свиток Atmosphere) выберите строчку DreamScape. После этого мы сможем создавать небо, облака и имитировать дневное освещение. Если выполнить рендеринг на этом этапе, вы получите черный экран и предупредительную надпись о том, что для визуализации атмосферных эффектов в сцене необходимо наличие источника освещения DreamScape Sun. Создадим его. Перейдите на командную панель и в категории Lights вкладки Create выберите объект DreamScape Sun. Добавьте его в сцену таким образом, чтобы Sun Target приблизительно совпадал с положением камеры. Измените вид в окне проекции на вид из созданной камеры. Для этого щелкните правой кнопкой мыши в левом верхнем углу окна проекции и выберите в контекстном меню команду Views > Camera 01. Теперь можно произвести первый рендеринг. Его результатом станет небо с градиентным изменением цвета. Окрас неба зависит от расположения на нем источника света DreamScape Sun. Чем ближе он к горизонту, тем больше рисунок окрашивается в красные цвета. Если источник света попал в поле зрение камеры, на картинке вы увидите "солнце". Если же у вас вместо изображения неба получается абсолютно черный экран, это означает, что мишень камеры расположена ниже самой камеры, т.е. камера как бы "смотрит" вниз. Выделите объект Camera Target и перейдите в его свойства (Командная панель > вкладка Modify). В свитке настроек Parameters установите флажок напротив опции Show Horizon. В окне Camera 01 появится горизонтальная линия. Эта линия будет совпадать с горизонтом, разделяющим небо и землю в панораме, визуализированной DreamScape. По линии горизонта удобно ориентировать положение камеры в сцене. Перейдите в настройки, характеризующие атмосферный эффект DreamScape (Rendering > Environment > строчка DreamScape > свиток Atmosphere Parameters). Тут находится ползунок Realism. С его помощью вы можете не только управлять качеством визуализируемого изображения, но и изменять физику процесса. Ползунок имеет четыре положения просчета - Flat Earth, Flat Earth + Reddening, Real Earth и Real Earth + Reddening. Так, например, если установить изменить положение ползунка с Real Earth + Reddening на Flat Earth, цветовая гамма неба изменится с красно-оранжевой на сине-белую. Такое изменение объясняется тем, что в положении ползунка Flat Earth плагин просчитывает трехмерную сцену с учетом того, что Земля плоская. В этом случае солнечные лучи не преломляются, проходя через слой атмосферы, как это происходит в реальности. От выбранного положения ползунка Realism зависит время рендеринга. В правом крайнем его положении (Real Earth + Reddening) время визуализации максимальное, в левом (Real Earth) - минимальное. Для того чтобы настройками атмосферного эффекта было удобно управлять, в DreamScape предусмотрена функция предварительного просмотра. Для того чтобы ею воспользоваться, вызовите окно DreamScape Sky Preview (свиток General Parameters > кнопка Preview). Для того чтобы в этом окне отображались атмосферные эффекты, должны быть включены опции отображения неба и облаков (команда Views > Clouds и Views > Clouds Shape). Если же тут же установить опцию Automatic Update, то при каждом последующем изменении параметров атмосферного эффекта DreamScape картинка в окне предварительного просмотра будет изменяться. Для того чтобы добиться желаемого результата, необходимо корректировать параметры создаваемого эффекта. С помощью настроек свитка Atmosphere Parameters вы можете придавать четкие или, наоборот, размытые, очертания солнечному диску - (параметр Glow Sharp), использовать параметр Multiple Sc, отвечающий за яркость вторичного рассеивания. Кроме этого, в сценах можно использовать эффекты Haze (дымка) и Rainbow (радуга). Поскольку эффект радуги зависит от положения солнца на небе, наблюдать его можно будет лишь тогда, когда источник освещения DreamScape Sun будет расположен позади камеры. Еще одна интересная возможность плагина, на которую следует обратить свое внимание -визуализация панорамы созданной сцены. Отрендеренную панораму можно использовать, например, в качестве карты отражения и т. д. Создание моря После того, как вы установите настройки для имитации в сцене эффекта неба, можно переходить к созданию водной поверхности. Делается это при помощи объекта SeaSurface. С помощью этого объекта можно имитировать любые водные поверхности - озера, реки, моря и т.д. Объект SeaSurface расположен на командной панели на вкладке Create в категории Geometry в группе объектов Dreamscape Objects. Для его создания перейдите в окно проекции Top и добавьте с цену объект таким образом, чтобы он занимал все видимое пространство в объективе камеры. Если нажать кнопку Play Animation и воспроизвести анимацию, можно увидеть движение на поверхности. Эта анимация имитирует поведение волн на воде. Для визуализации водной поверхности должен использоваться тип материала DreamScape: SeaMaterial, поэтому его лучше сразу назначить объекту. Для этого в окне Material Editor вызовите окно Material Map Browser и выберите нужный материал. После этого перетащите мышкой полученный материал из ячейки на объект. Теперь перейдите в группу настроек материала Reflect/Refract и установите флажки напротив строчек Reflect Objects и Refract Objects. Тем самым вы сделаете материал отражающим и преломляющим свет. Также следует включить опцию Use DS Sky в группе настроек Sky Color. В результате этого в воде будет отражаться небо, созданное нами ранее в сцене. Если сделать первый кадр рендеринга, можно увидеть, что полученному изображению далеко от реалистичности. Степень детализации водной поверхности очень низка. Ее можно увеличить, изменив количество сегментов по длине и ширине (Width Segments и Length Segments) в настройках объекта SeaSurface. По умолчанию, число сегментов по длине и ширине равняется тридцати двум. Это число можно изменить на более высокое, скажем, на 256. Отрендеренная с такими параметрами картинка будет существенно отличаться от предыдущей. При большом количестве сегментов объекта в окне проекции будет рендериться большое количество полигонов. Чтобы уменьшить аппаратную нагрузку на видеокарту, можно изменить параметр Vpt. Degradation (Viewport Degradation). При больших значениях этого параметра в окне проекции рендерится меньшее количество полигонов, что сокращает использование системных ресурсов. Кроме того, без использования больших значений этого параметра проиграть анимацию в сложных сценах с большим количеством полигонов будет невозможно. На отрендеренной картинке можно наблюдать практически спокойную водную поверхность. Для того чтобы придать ей некоторое волнение, выделите объект SeaSurface в сцене, перейдите на вкладку Modify командной панели и в настройках объекта в свитке Waves увеличьте параметр Wind Speed (скорость ветра) до двадцати двух, а величину Grid Detail - до восьми. Волны, сымитированные плагином DreamScape, имеют повторяющуюся структуру, поэтому при моделировании больших водных поверхностей, возможно, она будет заметна. Параметр Grid Detail позволяет придать уникальную форму морю или океану. Чем больше площадь моделируемого водоема, тем выше должно быть значение этого параметра. Однако, следует помнить, что больше значение Grid Detail может отрицательно сказаться на производительности 3ds max. Увеличить амплитуду волн можно также, повысив значение настройки Height Scale. На просчитанном изображении волны выглядят слишком сглаженными, что делает картинку нереалистичной. Водная поверхность выглядит гладкой, как пластмасса. Для придания ей рельефности нужно использовать текстурную карту рельефа (Bump Map). В качестве этой карты удобно назначать процедурную карту DreamScape: SeaBump, специально созданную для этой цели. После ее применения изображение станет заметно реалистичнее. Поскольку все объекты трехмерной сцены представляют собой виртуальные декорации, уделять внимание следует только тому, что попадает в кадр. Этого правила придерживаются все опытные 3D-аниматоры. "Лишние" полигоны, которые не попадают в кадр, имеет смысл удалять из сцены вообще (кроме тех случаев, когда объекты, не попавшие в кадр, отражаются другими объектами или бросают на них тень). Под каким бы углом не располагалась камера по отношению к объекту SeaSurface, всегда будет такой участок поверхности, который выходит за пределы визуализируемого изображения. В этом случае целесообразно использовать тип поверхности, который называется Adaptive Mesh. В отличие от стандартного типа водной поверхности Simple Mesh, рассмотренного выше, Adaptive Mesh позволяет использовать в сцене поверхность, форма которой определяется полигонами, попавшими в кадр. Кроме этого, с помощью Adaptive Mesh можно решить еще одну проблему, связанную с визуализацией - совмещение водной поверхности и линии горизонта. Для использования Adaptive Mesh необходимо изменить тип поверхности в настройках объекта SeaSurface (свиток Parameters > список Type) и указать камеру в сцене. Теперь если попробовать передвинуть камеру, в окне проекции Top вы увидите, что форма SeaSurface будет изменяться таким образом, чтобы все время находиться в поле зрения камеры, в соответствии с ее положением. Таким образом, рендеринг сцены будет происходить без учета полигонов, которые не попадают в кадр. Объект SeaSurface должен быть совмещен с линией горизонта, в противном случае между небом и морем будет находиться черная полоса. Уменьшить ее можно, увеличив в 10-15 раз расстояние, на которое поверхность простирается от камеры (параметр Length). В результате водная поверхность будет плавно совмещена с линией горизонта. Если совместить водную поверхность с линией горизонта не удается, измените высоту расположения линии горизонта. Для этого в настройках атмосферного эффекта DreamScape в свитке General Parameters установите отрицательное значение параметра Ground Level, например -250. Наш морской пейзаж готов. [pagebreak] В прошлой части статьи мы создавали морской пейзаж при помощи плагина DreamScape. Однако, возможности этого замечательного продукта на этом не исчерпываются. DreamScape может служить не только для моделирования статических сцен, но и для анимации. Тут мы рассмотрим более сложную сцену с использованием плагина, в которой главным героем будет дельфин. Благодаря DreamScape мы сможем наблюдать, как дельфин плывет под водой и как выныривает из нее. При этом и вода, и дельфин, и брызги, и волны - все будет почти как настоящее. Так что, приступим. Объект DreamScape SeaSurface, который, напомним, мы создавали в первой части статьи для имитации водной поверхности, не только выглядит как настоящая вода, но и имеет все ее свойства. Так, например, если в настройках материала установлена опция Refract Objects, вода будет прозрачной, и любой объект, находящийся под водой, будет заметен сверху. Чтобы убедиться в этом, поместим под воду какой-нибудь объект, например, дельфина. Поскольку нам важны лишь очертания дельфина (ведь он будет находиться под водой, а камера - сверху), мы не будем тратить много времени и сил на моделирование деталей, а лишь опишем общий процесс. Моделирование дельфина Моделирование любого сложного объекта удобнее всего начинать с простенького наброска. Поэтому для начала сделайте эскиз модели в двух проекциях - сверху и слева. Создайте в окне проекции две перпендикулярно пересекающиеся плоскости. Назначьте в качестве текстуры для этих плоскостей сделанные вами эскизы и включите в "Редакторе материалов" режим отображения текстурных карт в окнах проекции (кнопка Show Map in ViewPort). По сделанному наброску вам будет легче создавать модель, соблюдая пропорции и придерживаясь требуемой формы. Напомним, что существует несколько подходов к моделированию: NURBS-моделирование, полигональное моделирование, patch-моделирование, моделирование при помощи составных объектов (булеановские операции, использование метаболов) и пр. В нашем случае будет использоваться полигональный способ моделирования. За основу возьмем стандартный объект цилиндр (Cylinder) с количеством сегментов по длине 9 (Height Segments), в основании - 2 (Cap Segments) и с числом сторон 10 (Sides). Создайте его в окне проекции и выровняйте относительно вертикальной плоскости, на которой отображен эскиз модели. Поскольку тело дельфина имеет слегка выгнутую форму, примените к цилиндру стандартный модификатор Bend. Угол наклона действия модификатора (Angle) установите равным шестидесяти. Щелкните правой кнопкой мыши по любому месту окна проекции и выберите в контекстном меню строку Convert to Editable Poly. После этого с объектом можно будет работать, используя инструменты полигонального моделирования. Наряду с Editable Poly в 3ds max есть другой, схожий, инструмент для моделирования - Editable Mesh. Editable Poly и Editable Mesh во многом похожи, однако, имеются и отличия. В объектах типа Editable Mesh модель состоит из треугольных граней, в то время как в объектах Editable Poly используются многоугольники. Кроме того, для работы с Editable Mesh можно использовать режимы редактирования вершин (Vertex), ребер (Edge), граней (Face), полигонов (Polygon) и элементов (Element). Editable Poly работает с вершинами (Vertex), ребрами (Edge), полигонами (Polygon), элементами (Element) и границами (Border). Но вернемся к нашей модели. Сначала сузим тело дельфина к хвосту. Для этого выделите модель, перейдите на вкладку Modify и переключитесь в режим редактирования Vertex. Разверните свиток Soft Selection и установите флажок напротив опции Use Soft Selection. Выделите вершину в центре основания цилиндра. Изменяя значение параметра Falloff (свиток Soft Selection), добейтесь того, чтобы вершины, расположенные в хвосте дельфина, приобрели цвет, отличный от синего. Теперь любые действия, которые вы будете производить с выделенной вершиной, в большей или меньшей степени скажутся на вершинах, поменявших свой цвет. Таким образом, используя инструмент Scale, можно будет изменить форму модели так, чтобы она постепенно уменьшалась в диаметре к хвосту. Теперь создадим плавник. Как видно на рисунке 7, место расположения плавника на эскизе совпадает с одним из ребер на объекте. Выделите объект, перейдите на вкладку Modify командной панели и переключитесь в режим редактирования ребер (Edge). Выделите требуемое ребро и примените к нему инструмент Сhamfer (фаска). Для этого щелкните правой кнопкой мыши по окну проекции и в контекстном меню выберите иконку напротив строки Сhamfer. В появившемся окошке задайте такую величину фаски, чтобы расстояние между образованными при помощи этой операции двумя новыми ребрами совпадало по размеру с эскизом плавника. Задать параметры Сhamfer можно и вручную отредактировав объект. Сделать это можно, нажав кнопку Сhamfer в свитке Edit Edges настроек объекта Editable Poly или выбрав строку Сhamfer в контекстном меню, вызываемом правой кнопкой мыши. На возможность редактирования объекта будет указывать изменивший свою форму курсор. Переключитесь в режим редактирования полигонов (Polygon). Выделите полигон напротив плавника и, используя инструмент Bevel (свиток Edit Polygons или контекстное меню), передвиньте полигон в направлении роста плавника с небольшим скосом. Повторите эту операцию еще раз. Выделенный верхний полигон сместите немного в сторону хвоста дельфина и еще раз произведите операцию Bevel . В третий раз воспользуйтесь инструментом Bevel, уменьшите площадь верхнего полигона при помощи инструмента масштабирования (Scale) и еще раз переместите его в сторону хвоста. Повторяйте эту цепочку действий до тех пор, пока создаваемая вами модель не примет очертания плавника. Для того чтобы представить себе, как будет выглядеть модель дельфина после сглаживания, выйдите из режима редактирования объектов Editable Poly и примените модификатор MeshSmooth и в свитке его настроек Subdivision Amount установите значение параметра Iterations равным двум или трем. После этого плавник примет округлую форму, но до идеальной ей еще далеко. Чтобы подкорректировать плавник, перейдем в режим редактирования вершин (Vertex) в настройках модификатора и передвинем вершины плавника таким образом, чтобы его форма совпадала с плавником на эскизе. Аналогичным образом создаются плавники на хвосте и спереди, а также морда дельфина. В итоге должна получиться модель, похожая на изображенную на рисунке 9. Погружение дельфина в воду После того как модель будет готова, вернемся к сцене, созданной при помощи DreamScape. Разместив дельфина в воде, расположите источник света DreamScape Sun таким образом, чтобы он освещал поверхность воды над дельфинами, но не создавал сильных бликов на воде, в противном случае сцена будет выглядеть неестественно. Теперь попробуйте визуализировать сцену. Тело дельфина хорошо просматривается сквозь "толщу" воды (рис.). Для получения более реалистичной картинки используйте не Default Scanline Renderer, а подключаемый визуализатор, например Final Render Stage 1. DreamScape, в отличие от некоторых других плагинов, очень хорошо совместим с внешними рендерами. Иногда в сценах с использованием DreamScape может возникнуть необходимость создания прозрачной морской воды в соответствии с глубиной. Для этого используется тип атмосферного эффекта DreamScape: SubSurface. Если вы не хотите, чтобы вода была идеально прозрачной (что в нашей реальности бывает очень редко), необходимо добавить в сцену DreamScape: SubSurface и в настройках материала SeaSurface в группе настроек Underwater Color свитка DreamScape Sea Parameters включить режим отображения SubSurface. Настроек у этого эффекта немного: Sea Level (уровень глубины, на который распространяется эффект), Density (плотность цвета), Color (цвет) и Max.Step Size (степень разрешения эффекта). Чем меньше плотность цвета, тем прозрачнее вода. Параметр Max.Step Size по умолчанию равен десяти. Этого значения вполне достаточно для практически любой сцены, однако в некоторых случаях (например, когда камера "смотрит" вертикально вниз на поверхность океана) в процессе рендеринга могут возникать различные артефакты. Во избежание этого параметр Max.Step Size необходимо уменьшить, однако, следует иметь в виду, что это может существенно увеличить время рендеринга финальной сцены. Еще одной отличительной особенностью DreamScape является возможность просчета динамики волн. Если у нас есть сцена, в которой объект падает в воду, результатом взаимодействия водной поверхности и другого объекта должны быть волны и брызги. Рассмотрим создание сцены, в которой плавник дельфина рассекает водную гладь. Создайте новую сцену с двумя объектами - SeaSurface и дельфином. Добавьте в сцену вспомогательный объект Dynamics, расположенный на вкладке Create в категории Helpers в группе объектов DreamScape Daemons. Создавать этот объект нужно в окне проекции Top. Поскольку просчет динамики в сцене будет происходить в пределах объекта Dynamics, размеры вспомогательного объекта должны совпадать с площадью поверхности SeaSurface. Создайте еще один вспомогательный объект, расположенный в группе DreamScape Daemons, - Simple Waves. Этот объект в сцене будет выглядеть как схематическая иконка. Вспомогательный объект Simple Waves служит для создания простых волн. Волны, сгенерированные при помощи Simple Waves, могут суммироваться с волнами, созданными SeaSurface. При этом получается периодическое волнение поверхности. Выделите объект SeaSurface и перейдите в его настройки. В свитке DreamScape Daemons установите флажок напротив опции On, включив тем самым влияние вспомогательных объектов на SeaSurface При помощи кнопки Pick Dreamscape Daemon укажите объекты Simple Waves и Dynamics. После выполнения этого действия поверхность SeaSurface изменит свою форму на волнистую. Используя настройки объекта Simple Waves, уменьшите амплитуду волн (Height), скорость распространения волн (Speed), придайте неоднородность поверхности при помощи настройки Spread и сделайте SeaSurface более гладкой, увеличив значение Smooth. Выделите в сцене объект Dynamics и перейдите в его свойства. В свитке Objects in Simulation при помощи кнопки Pick Object укажите объект, который будет взаимодействовать с водной поверхностью (в нашем случае это дельфин). В группе настроек Physical Properties включите опцию Use Dynamics. В свитке General Parameters измените плотность воды (Water Density) с тысячи на пятьдесят. Перейдите в свиток Export Parameters и нажмите кнопку Calculate. На экране появится небольшое окно состояния, и начнется просчет физической задачи. После того как он будет завершен, в окне проекции можно будет проиграть анимацию. Если волны, появляющиеся в результате взаимодействия объектов, окажутся слабыми, можно попробовать увеличить параметр Wake Strange в группе настроек Physical Properties свитка Objects in Simulation. Теперь можно переходить к визуализации
Источник: http://www.3dmax.ru