Статья «Плазменная резка стали» специально для TESALL.RU

Плазменная резка стали

Перевод: Don Condor Оригинал урока

О Blender

Blender является программным обеспечением с открытым исходным кодом для 3D-моделирования, анимирования и визуализации. Blender поддерживает все основные операционные системы и распространяется согласно GNU General Public License.

Введение

В течение этой недели я работал над анимацией лазерного луча, прорезающего стальную пластину. Ещё до того, как начать, я понял, что есть два способа сделать это. Первый подразумевал создание физически точной модели стали, разрезаемой чем-то. Этого можно достичь, анимируя каждую вершину.

Очевидно, что это потребует очень много времени. Другой путь: «подделать» требуемый эффект с помощью анимированной карты текстур для альфа-канала каркаса, делая его прозрачным. Хорошо, что я был достаточно ленив, чтобы избрать второй путь. Как оказалось, это был верный выбор, поскольку позднее такой подход позволил мне добавить некоторые другие эффекты относительно легко.

В обучении рассматривается создание и использование анимированных карт текстур в Blender.

Приготовления

Установите число кадров для вашей анимации равным 150. Оставшаяся часть обучения подразумевает это число. Создайте форму, вырезаемую из металла, с помощью кривых линий. Если вы хотите создать логотип, взгляните на приведённый мной пример создания логотипа - пример подробно демонстрирует, как преобразовать растровую картинку в векторную с помощью одного лишь Blender'а. В качестве примера я взял букву 'М', выглядящую так:


Как вы могли заметить, я преобразовал кривую в полигоны (это можно сделать, выделив все вершины в режиме редактирования ("Edit Mode") -> Buttons Window -> Curve Tool -> Convert -> кнопка 'Poly'). Это необязательно, но в прямых линиях мой логотип выглядит лучше. Теперь нужно сделать систему частиц, "скользящую" по кривой. Создайте куб, уменьшите его и поместите на одной высоте с буквой “М”. Далее,  сделайте букву родителем куба: сначала выберите куб, зажав клавишу [SHIFT], затем выберите букву и нажмите [CTRL + P].


Чтобы заставить куб перемещаться по контуру кривой, выделите кривую, перейдите к панели анимации (клавиша [F7]) и нажмите кнопку “curvePath”. Первое, что должно произойти - куб переместится куда-либо:


Теперь выделите куб и переместите его обратно к началу пунктирной линии. Теперь, нажав [ALT + A], вы увидите куб, весело бегающий по контуру кривой.

Создание анимированной карты альфа-канала

Теперь необходимо использовать систему частиц, чтобы создать анимированную карту текстур. Выберите куб, перейдите в меню анимации (клавиша [F7]), нажмите кнопку “new effect” и выберите “particles” в меню эффектов.

Добавьте новый материал к кубу, нажмите кнопку “halo” и установите размер halo равным 0.2. Перейдите к 30 кадру и сделайте тестовую визуализацию. Вы должны увидеть что-то подобное этому:


Если изображение дискретно, слегка уменьшите куб. Если всё залито белым, уменьшите размер halo. Следя за анимацией, вы заметите, как появляется белый след, но постепенно исчезает на другом конце. Это отнюдь не то, что нам нужно – нам нужно создать полный, замкнутый контур буквы. Чтобы добиться этого, выделите куб, перейдите в настройки системы частиц и увеличьте время жизни частиц до 200. Переместите камеру так, чтобы она была над буквой 'М' и смотрела вниз. Выделите камеру и нажмите “Orthographic” в панели редактирования - это заставит камеру игнорировать перспективу. Это отлично подходит для нашей задачи: проецирования текстуры на плоскость.


Отрендерите анимацию в видеоролик и назовите кадры анимации “alphaMap”.

Сварка

Пришло время использовать карту альфа-канала. Создайте новую сцену - для этого найдите следующую кнопку в середине верхней части экрана:


Сначала переименуйте текущую сцену - назовите её "Alphamap". Затем нажмите на иконку выпадающего меню ('-') и добавьте новую сцену. Выберите “Full Copy” и переименуйте новую сцену в "Cutter". Теперь используем существующую систему частиц заново, но сделаем это так, чтобы было похоже на реальную сварку. Сначала необходимо заменить куб полусферой, чтобы гарантировать подходяще выглядящую эмиссию частиц. Удалите куб. Создайте новую UVsphere с количествами сегментов ("segments") и колец ("rings") равными 16. Пока вы находитесь в режиме редактирования ("Edit Mode"), перейдите в режим просмотра "вид с боку" ("sideview"), снимите выделение со всех вершин и прямоугольным выделением выделите нижнюю половину вершин.


Нажмите клавишу [X] и удалите выделенные вершины. Теперь у вас есть полусфера. Уменьшите её, сделайте кривую её родителем и поместите сферу возле кривой. (Тем же способом, что описан выше). Чтобы гарантировать случайную эмиссию частиц, перейдите в режим редактирования ("Edit Mode"), выберите все вершины, перейдите в панель Edit Buttons (клавиша [F9]) и нажмите кнопку “Hash”. Затем назначьте систему частиц нашей модели и введите следующие значения:

  • Tot = 2000
  • Life = 5
  • Norm = 0.4
  • Rand = 0.1
  • VectSize = 0.028
  • Vect = on

Настройки системы частиц должны выглядеть примерно так:


Устанавливая значение Norm в 0.4, вы гарантируете, что частицы будут испускаться радиально из полусферы. Установка частиц в 'vect' и увеличение VectSize делает частицы похожими на летящие искры. Добавьте новый материал в систему частиц, назовите его 'sparks' и установите размер halo равным 0.1.

Создание металлической пластины

Теперь необходимо сделать, собственно, саму металлическую пластину, прорезаемую сваркой. В режиме "вид сверху" добавьте пластину размером примерно раза в три больше исходной буквы 'М'. Расположите пластину на одной высоте с буквой (используйте "вид спереди"). Добавьте новый материал и назовите его 'Metal'. Добавьте новую текстуру пластине и назовите её “alphaMap”.

Теперь назначьте созданную ранее анимацию текстуре. Перейдите в панель Texture buttons (клавиша [F6]), выберите кнопку “image” и загрузите первый кадр анимации “alphaMap”. Установите значение поля 'frames' в 150. Обязательно включите 'calcAlpha'!

Вернитесь в панель материалов и перейдите в секцию типов текстур ('col', 'nor, 'csp' и т.п.). Отключите 'col', включите 'alpha' и 'sub'. Теперь везде, где цвет на текстуре – белый, он сделает плоскость прозрачной.

Также выберите 'extend', чтобы текстура альфа-канала не раскладывалась черепицей. Необходимо, чтобы она отображалась на пластине единожды.

Теперь несколько сложная часть - вам необходимо отрегулировать позицию и размер карты текстур так, чтобы выравнять её с буквой 'М'. Для этого выберите пластину и нажмите клавишу [Т]. Blender спросит, желаете ли вы изменить позицию текстуры или её размер. Поиграйте и тем и другим, визуализируя между изменения, чтобы отследить прогресс.

В итоге вы должны получить что-то вроде этого:


Теперь необходимо придать металлу реализма. Я взял текстуру металла из собственной коллекции (два примера текстуры 1 и 2). Возьмите одну из этих текстур и назначьте её colormap и bump(NOR)map в материал “Metal” (да, использовать одну и ту же текстуру как colormap и bumpmap возможно). Для лучшего эффект добавьте текстуру мрамора как specularity channel, это сделает материал более естественным. Наконец, вернитесь к alphaMap каналу и включите кнопку 'nor'. Всё правильно: позволяя анимации работать с альфа-каналом, я так же использую её, чтобы разгладить ребра металла. Поиграйте значением 'nor', чтобы получить наиболее удовлетворяющий вас результат. После визуализации вы должны получить что-то вроде этого:


Реалистичное освещение

Добавим немного реализма. Во-первых, освещение не должно быть постоянным - если вы когда-нибудь видели сварщика за работой, то должны знать, что вспышки света от его работы непостоянны и очень ярки.

Чтобы симулировать это, создайте лампу и разместите над полусферой. Сделайте полусферу ее родителем. Пока лампа выделена, откройте панель IPO и выберите иконку лампы. Включите кнопку “Energy” и, удерживая [CTRL], нарисуйте случайные точки в окне IPO, щелкая левой кнопкой мыши. Не стесняйтесь выбирать точки выше значения 1 или ниже 0.

Закончив, вы получите график энергий, скорее всего, сильно отличный от этого:


Реалистичные искры

Далее, отнюдь не все искры белые. Сначала они ярко-белые, потом, постепенно охлаждаясь в полёте, становятся жёлтыми, затем красными и вовсе чёрными. Такого эффекта можно добиться, применяя IPO материала к материалу частиц.

Выберите полусферу и откройте панель IPO. Выберите иконку, обозначающую материал, в окне IPO. Перейдите к первому кадру вашей анимации и сделайте цвет материала частиц ярко-белым. Находясь в окне материала, нажмите IKkey, и вставьте ключ RGB. Затем перейдите к 30-му кадру и измените цвет на ярко-белый. Вставьте еще один ключ RGB. Затем к 80-му кадру - цвет красный. Вставьте ключ. Наконец, на сотом кадре вставьте ключ, где материал полностью чёрный.

Окно IPO должно выглядеть примерно так:


Смысл в том,  что кадры IPO с первого по сотый назначаются к полному циклу жизни частицы, в нашем случае, пять кадров. Теперь искры будут менять свой цвет в полёте - вот так:


Реалистичное плавление металла

Кое-что до сих пор не в порядке: расплавленный металл не должен выглядеть холодным. Он должен светиться, постепенно охлаждаясь. Необходимо вернуться к одной из предыдущих сцен (с частицами, которые мы использовали, чтобы создать карту альфа-канала) и дублировать её.

Добавьте новый материал частицам. Далее, точно так же как и искрами, добавьте цвет IPO частицам. Только на этот раз вам необходимы совершенно другие временные отметки: установите ключевые кадры на 3, 6 и 11 кадрах.

Наконец, измените размер halo в 0.20. Эта карта должна быть немного "толще" alphamap, иначе вы не увидите результата.

В итоге вы получите примерно такую анимацию:


Отрендерите все кадры (1-150) и сохраните как "emitMapFinally". Добавьте эту анимированную карту к текстуре “Metal”.  Включите каналы “color” и “emit”, и все готово.


Дым

И, наконец, финальный штрих. В сцене "Cutter" добавьте ещё одну систему частиц. Дублируйте полусферу, удалите существующую систему частиц и добавьте новую.

Задайте следующие параметры:

  • Tot = 300
  • Norm = 0.1
  • Ob = 0.02
  • Rand = 0.01
  • Force z = 0.05

Далее, создайте новый материал и добавьте какую-нибудь подходящую для дыма текстуру. Задайте halo, halotex и X-alpha и следующие параметры:

  • HaloSize = 0.85
  • Alpha = 0.034
  • Hard = 12
  • Add = 0.014

Результат


Файлы

Итоговый файл .blend: http://www.blendernation.com/wp-content/xoom/tutorials/Welder/welder/welder.blend.