AfterBurn: нету дыма без огня…
Как-то раз, еще только начиная заниматься 3DS Max'ом, в одном из номеров КГ прочитал статью, посвященную созданию эффектного взрыва при помощи плагина AfterBurn. Прошло время, методом научного тыка я постепенно постигал Max и, в частности, плагин AfterBurn. Теперь же, когда новичком в 3DS Max'е меня назвать тяжело, я решил написать эту статью — она будет рассчитана на тех, кто только поставил этот плагин и хочет чего-то делать, но не знает, как (в статье я использую AfterBurn версии 3.1 и 3DS Max 7, хотя для шестого "Макса" все точно так же). AfterBurn — не единственный плагин, который позволяет создавать пламя (надо сказать, весьма высокого качества): на слуху постоянно находятся Aura и Phoenix. В силу определенных причин я не смог ими воспользоваться, но по отзывам пришел к выводу, что по соотношению качество/скорость AfterBurn (далее АВ) находится впереди остальных.
Итак, приступим. Сначала поставим задачу — создать красивый и реалистичный дымок от какого-нибудь волшебного зелья. Приготовим сцену — нам понадобится лишь один Super Spray — какой-нибудь сосуд, из которого дымок будет дуть — и лампочка для придания сцене объема.
Для спрея использованы следующие настройки:
. Spread (of axis) = 5;
. Spread (of plane) = 180;
. Particle quantity = use rate (70);
. Speed = 7;
. Emit stop = 50;
. Life = 30;
. Variation = 5;
. Size =0.01;
все остальные — по умолчанию.
Источник был вставлен в сосуд. Далее начинается работа непосредственно с АВ. Нажмите кнопку 8 (на основной клавиатуре) или проследуйте в Rendering -> Environment… Затем в свитке Atmosphere нажмите кнопку Add… и выберите AfterBurn. В списке Effects, кроме AfterBurn, появится еще и AfterBurn Render — так и должно быть. Оставляем выделенным AB.
Кликните по "берущей ладони" в группе Source Particles/Daemons (должна выскочить всплывающая подсказка "Pick Particles/Daemons"), а затем — по Super Spray'у во вьюпорте. Этим вы добавите наш Super Spray в список, и АВ начнет работу с ним. Первое действие, которое нужно выполнить — в выпадающем списке Rendering type выбираем Octane Shader. Этот тип рендеринга подходит для создания различных эффектов газа, пламени и дыма, обеспечивая при том более высокую скорость, чем стоящий по умолчанию Raymarcher. Последний также годится для дыма, пламени и т.д., но в нашем случае он не подходит. Для того, чтобы наш дымок был более реалистичным, он должен отбрасывать тени как на другие объекты, так и на себя. Для этого в группе Shadow Tracing (свиток Illumination/Shading Parameters) ставим галочки напротив пунктов Shadow Cast и Self Shadows. Добавьте источники, которые должны освещать дым (не только освещать, но и генерировать тени на дыме и остальной сцене), в список Source Lights рядом со списком частиц/демонов. Однако при рендере мы увидим тяжелую плотную тень, характерную скорее для горящей нефтяной вышке, чем для легкого волшебного дымка. Чтобы это исправить, понизьте параметр Shadow Opacity где-то до 0.3. Чтобы правильно просчитывались тени, выделите источник света, освещающий сцену, и на закладке Modify включите генерацию теней, поставив галочку в группе Shadows на пункте On (свиток General Parameters) и в выпадающем списке вместо Shadow Map поставьте AB Ray Trace Shadow.
Возвращаемся снова к настройкам АВ. Следующий интересующий нас свиток — Color Parameters. Как видно из названия, тут задаются настройки цветовых параметров эффекта.
Цвета задаются с помощью градиентных растяжек. Щелкните по белой полоске в группе Color 1.
В самом начале и в конце растяжки находятся ползунки — ключи, которые определяют ключевые цвета. Оба ключа зафиксированы: левый определяет цвет частиц в момент их "рождения", а правый — в момент исчезновения. Кликните правой кнопкой мыши на левом ключе и выберите пункт Key Color… Укажите светло-голубой цвет. Для правого укажите черный цвет. Добавьте посередине градиента ключ, кликнув по градиенту левой кнопкой мыши. Снизу добавится еще один ключ — он не зафиксирован, и его можно двигать влево-вправо левой кнопкой мыши. Укажите для него какой-нибудь цвет, который соответствует вашему представлению о волшебном зелье (я выбрал ярко-салатовый). Закройте окно настройки градиента. Одноцветный дымок не очень смотрится, поэтому надо добавить еще один цвет — цвет рассеивающегося в воздухе дыма по краям. Для этого переставьте флажок с Color 1 на Color 2 и проверьте, чтобы была активирована кнопка Distance. Чтобы подкорректировать положение цветов относительно друг друга (нам ведь надо, чтобы Color 1 был основным и находился в центре нашего столбика дыма, а легкая белая дымка исчезающего дыма была по краю), кликните правой кнопкой мыши по кнопке с буквами "AFC" (подробнее назначение этой кнопочки вы узнаете чуть ниже) и выберите пункт Enable. Значение Pos слева установите равным нулю, а справа — 0.3. В группе Color 2 оставьте все как стоит.
Далее переходим к свитку Particle Shape/Animation Parameters. АВ создает вокруг каждой частицы сферу определенного размера, внутри которой и происходит создание объемной текстуры дыма, пламени или чего-нибудь еще. Тут и настраиваются параметры размеров и формы сфер вокруг частиц. Чтобы не работать методом тыка, можно включить отображение этих самых сфер во вьюпорте — работать станет гораздо удобнее. Чтобы включить отображение, надо в группе Tools (сразу после списков источников частиц и света) нажать на пиктограмму с изображением монитора с конусом и цилиндром (всплывающая подсказка "Show in Viewport").
Мы видим, что размер частиц нас явно не устраивает — вначале нужна тоненькая струйка газа, а в конце — большие клубы. Для этого активируем кнопку AFC для параметра Sph. Radius и подбираем подходящие значения минимальной и максимальной величины. Мне подошли 18 и 30 соответственно. Затем нажимаем активированную кнопку AFC — открылось окошко настройки размера сферы частицы в зависимости от того, сколько процентов ее "жизни" прошло. По умолчанию это просто прямая линия от минимального до максимального значения размера. Однако ее форму можно легко изменить с помощью установки контрольных точек — кликом левой кнопки мыши в нужном месте по линии мы создаем в той позиции контрольную точку, которую затем можно передвинуть в необходимое место. Правым кликом мыши по контрольной точке вызывается контекстное меню, где можно указать один из трех типов точки: Smooth (сглаженный угол), Corner (простой угол) и Bezier (сглаженный угол с возможностью настройки касательной к дуге в месте сгиба). Я добился необходимого изменения размера частиц с помощью двух контрольных точек Bezier-типа.
Когда настройки размера частиц готовы, передвигаемся к свитку Noise Shape Parameters. В группе Type поменяйте в выпадающем списке значение Turbulence на Fractal — этот тип шума более "объемен".
Осталось настроить значения в последнем свитке — Noise Animation Parameters. Параметр Density отвечает за плотность дымки. Так как у нас частиц много (для большей равномерности), то значения плотности ставим экстремально малыми. Активируйте AFC для плотности и установите значения 0 и 0.004 для минимального и максимального соответственно. Настройку кривой AFC надо сделать следующим образом: в самом начале и в конце контрольные точки сдвинуть, а все, что между ними — поднять, при этом следя за тем, чтобы в конце жизни частиц плотность их шума падала плавно — чтобы казалось, что дым действительно рассеивается, а не просто исчезает.
Параметр Noise Size отвечает за размер шума. Чтобы шум не был слишком крупным для "старта" и (или) слишком мелким для конца, я бы посоветовал поставить минимальное и максимальное значения равными соответствующим значениям размера сфер (Spr. Radius), а кривую AFC можно просто скопировать с помощью контекстного меню (Copy/Paste). Повысьте значение Noise Levels где-то до 5-6 — это придаст больше детальности шуму.
Вот и все! Осталось отрендерить сцену в какой-нибудь видеоформат и экспериментировать, экспериментировать… ведь лучше всего знания воспринимаются, когда приходишь к ним самостоятельно. На первый раз хватит. В следующий раз будет рассказано о создании красивого реалистичного пламени.
Дмитрий Табакеров aka AzaZeo AinAmart, azazeo.ainamart@gmail.com
Итак, приступим. Сначала поставим задачу — создать красивый и реалистичный дымок от какого-нибудь волшебного зелья. Приготовим сцену — нам понадобится лишь один Super Spray — какой-нибудь сосуд, из которого дымок будет дуть — и лампочка для придания сцене объема.
Для спрея использованы следующие настройки:
. Spread (of axis) = 5;
. Spread (of plane) = 180;
. Particle quantity = use rate (70);
. Speed = 7;
. Emit stop = 50;
. Life = 30;
. Variation = 5;
. Size =0.01;
все остальные — по умолчанию.
Источник был вставлен в сосуд. Далее начинается работа непосредственно с АВ. Нажмите кнопку 8 (на основной клавиатуре) или проследуйте в Rendering -> Environment… Затем в свитке Atmosphere нажмите кнопку Add… и выберите AfterBurn. В списке Effects, кроме AfterBurn, появится еще и AfterBurn Render — так и должно быть. Оставляем выделенным AB.
Кликните по "берущей ладони" в группе Source Particles/Daemons (должна выскочить всплывающая подсказка "Pick Particles/Daemons"), а затем — по Super Spray'у во вьюпорте. Этим вы добавите наш Super Spray в список, и АВ начнет работу с ним. Первое действие, которое нужно выполнить — в выпадающем списке Rendering type выбираем Octane Shader. Этот тип рендеринга подходит для создания различных эффектов газа, пламени и дыма, обеспечивая при том более высокую скорость, чем стоящий по умолчанию Raymarcher. Последний также годится для дыма, пламени и т.д., но в нашем случае он не подходит. Для того, чтобы наш дымок был более реалистичным, он должен отбрасывать тени как на другие объекты, так и на себя. Для этого в группе Shadow Tracing (свиток Illumination/Shading Parameters) ставим галочки напротив пунктов Shadow Cast и Self Shadows. Добавьте источники, которые должны освещать дым (не только освещать, но и генерировать тени на дыме и остальной сцене), в список Source Lights рядом со списком частиц/демонов. Однако при рендере мы увидим тяжелую плотную тень, характерную скорее для горящей нефтяной вышке, чем для легкого волшебного дымка. Чтобы это исправить, понизьте параметр Shadow Opacity где-то до 0.3. Чтобы правильно просчитывались тени, выделите источник света, освещающий сцену, и на закладке Modify включите генерацию теней, поставив галочку в группе Shadows на пункте On (свиток General Parameters) и в выпадающем списке вместо Shadow Map поставьте AB Ray Trace Shadow.
Возвращаемся снова к настройкам АВ. Следующий интересующий нас свиток — Color Parameters. Как видно из названия, тут задаются настройки цветовых параметров эффекта.
Цвета задаются с помощью градиентных растяжек. Щелкните по белой полоске в группе Color 1.
В самом начале и в конце растяжки находятся ползунки — ключи, которые определяют ключевые цвета. Оба ключа зафиксированы: левый определяет цвет частиц в момент их "рождения", а правый — в момент исчезновения. Кликните правой кнопкой мыши на левом ключе и выберите пункт Key Color… Укажите светло-голубой цвет. Для правого укажите черный цвет. Добавьте посередине градиента ключ, кликнув по градиенту левой кнопкой мыши. Снизу добавится еще один ключ — он не зафиксирован, и его можно двигать влево-вправо левой кнопкой мыши. Укажите для него какой-нибудь цвет, который соответствует вашему представлению о волшебном зелье (я выбрал ярко-салатовый). Закройте окно настройки градиента. Одноцветный дымок не очень смотрится, поэтому надо добавить еще один цвет — цвет рассеивающегося в воздухе дыма по краям. Для этого переставьте флажок с Color 1 на Color 2 и проверьте, чтобы была активирована кнопка Distance. Чтобы подкорректировать положение цветов относительно друг друга (нам ведь надо, чтобы Color 1 был основным и находился в центре нашего столбика дыма, а легкая белая дымка исчезающего дыма была по краю), кликните правой кнопкой мыши по кнопке с буквами "AFC" (подробнее назначение этой кнопочки вы узнаете чуть ниже) и выберите пункт Enable. Значение Pos слева установите равным нулю, а справа — 0.3. В группе Color 2 оставьте все как стоит.
Далее переходим к свитку Particle Shape/Animation Parameters. АВ создает вокруг каждой частицы сферу определенного размера, внутри которой и происходит создание объемной текстуры дыма, пламени или чего-нибудь еще. Тут и настраиваются параметры размеров и формы сфер вокруг частиц. Чтобы не работать методом тыка, можно включить отображение этих самых сфер во вьюпорте — работать станет гораздо удобнее. Чтобы включить отображение, надо в группе Tools (сразу после списков источников частиц и света) нажать на пиктограмму с изображением монитора с конусом и цилиндром (всплывающая подсказка "Show in Viewport").
Мы видим, что размер частиц нас явно не устраивает — вначале нужна тоненькая струйка газа, а в конце — большие клубы. Для этого активируем кнопку AFC для параметра Sph. Radius и подбираем подходящие значения минимальной и максимальной величины. Мне подошли 18 и 30 соответственно. Затем нажимаем активированную кнопку AFC — открылось окошко настройки размера сферы частицы в зависимости от того, сколько процентов ее "жизни" прошло. По умолчанию это просто прямая линия от минимального до максимального значения размера. Однако ее форму можно легко изменить с помощью установки контрольных точек — кликом левой кнопки мыши в нужном месте по линии мы создаем в той позиции контрольную точку, которую затем можно передвинуть в необходимое место. Правым кликом мыши по контрольной точке вызывается контекстное меню, где можно указать один из трех типов точки: Smooth (сглаженный угол), Corner (простой угол) и Bezier (сглаженный угол с возможностью настройки касательной к дуге в месте сгиба). Я добился необходимого изменения размера частиц с помощью двух контрольных точек Bezier-типа.
Когда настройки размера частиц готовы, передвигаемся к свитку Noise Shape Parameters. В группе Type поменяйте в выпадающем списке значение Turbulence на Fractal — этот тип шума более "объемен".
Осталось настроить значения в последнем свитке — Noise Animation Parameters. Параметр Density отвечает за плотность дымки. Так как у нас частиц много (для большей равномерности), то значения плотности ставим экстремально малыми. Активируйте AFC для плотности и установите значения 0 и 0.004 для минимального и максимального соответственно. Настройку кривой AFC надо сделать следующим образом: в самом начале и в конце контрольные точки сдвинуть, а все, что между ними — поднять, при этом следя за тем, чтобы в конце жизни частиц плотность их шума падала плавно — чтобы казалось, что дым действительно рассеивается, а не просто исчезает.
Параметр Noise Size отвечает за размер шума. Чтобы шум не был слишком крупным для "старта" и (или) слишком мелким для конца, я бы посоветовал поставить минимальное и максимальное значения равными соответствующим значениям размера сфер (Spr. Radius), а кривую AFC можно просто скопировать с помощью контекстного меню (Copy/Paste). Повысьте значение Noise Levels где-то до 5-6 — это придаст больше детальности шуму.
Вот и все! Осталось отрендерить сцену в какой-нибудь видеоформат и экспериментировать, экспериментировать… ведь лучше всего знания воспринимаются, когда приходишь к ним самостоятельно. На первый раз хватит. В следующий раз будет рассказано о создании красивого реалистичного пламени.
Дмитрий Табакеров aka AzaZeo AinAmart, azazeo.ainamart@gmail.com
Компьютерная газета. Статья была опубликована в номере 44 за 2005 год в рубрике soft :: разное