Уроки: Lightwave 3D

Эффект лазера


 

В жизни каждого из нас был момент, когда он играл с лазерами в LightWave 3D, воспроизводя знаменитые космические сражения или просто выжигая сверкающий логотип. Наиболее популярный метод создания лазеров - это создание длинной полой трубки, которая делается светящейся. Затем задается прозрачность Polygon Edge, чтобы придать ей вид светового луча. Это срабатывает за исключением тех случаев, когда луч проходит очень близко к камере. Тогда луч прерывается из-за установки Polygon Edge (рис. 1а). Я предлагаю другой метод, который решает упомянутую проблему исчезающего луча и добавляет несколько интересных возможностей (рис. 1б).

Рис. 1а. Космический корабль, стреляющий лазерами. Обратите внимание на проблему прозрачности по краям при просмотре под острым углом, из-за чего лазерный луч перед пушкой исчезает. Рис. 1б. Та же сцена с использованием нескольких вариантов нового улучшенного не исчезающего лазера.


1. Начните с загрузки Моделера (Modeler). Начните во фронтальном окне с создания параллелепипеда. Выберите инструмент Box в меню Objects и сделайте ящичек размером 10 см. Нажмите ввод для создания полигона. Нажмите кнопку 'Q' для открытия панели Surface и назовите эту поверхность "Laser". Чтобы облегчить дальнейшую работу, отцентрируйте ее по осям X и Y.

2. Выберите две точки, лежащие на одной диагонали и удалите их. У вас останется только одна диагональная линия. Выберите инструмент Extrude в меню Multiply и вдавите ее вдоль оси Z. Воспользуйтесь установкой по умолчанию 1м. После этого вы получите метровую панель, состоящую из двух полигонов. Нам потребуется только один из них, поэтому пойдите в меню Polygon, и нажмите Unify. Это существенно, и позволит позднее избежать ошибок при рендеринге.

Рис. 2. Зарождение лазерного луча
3. Выберите инструмент Mirror и отцентрируйте его по оси X. (рис. 2) Сохраните объект как laser.lwo.

4. Загрузите Layout. Прежде чем предпринимать дальнейшие шаги, убедитесь, что сцена чиста. Вам потребуется лишь один источник освещения в центре вселенной. Выберите в меню Lights, чтобы открыть панель Lights. Нажмите кнопку Lens Flare, чтобы включить этот эффект. После этого активизируются опции Lens Flare. Откройте эту панель.

5. Отключите в этой панели все кроме Central Glow и Red Outer Glow. На текущий момент нам понадобятся только эти две опции. Назначьте Flare Intensity =75% и нажмите кнопку Continue.

6. Откройте панель Camera Panel и нажмите кнопку Custom Size. Установите ширину и высоту равными 400, чтобы получить абсолютно квадратное изображение.

Рис. 3. Вторая половина лазерного луча - простой отблеск.
7. Перейдите в панель Record и настройте ее так, чтобы кадры сохранялись под именем LaserMap.

8. Нажмите кнопку Render и оставьте опции Manual Frame Advance. Через секунду другую вы увидите посреди кадра простой блеск линзы, немногим меньший, чем сам кадр (рис. 3). Вы можете захотеть локализовать только что сохраненный кадр и переименовать его, чтобы избавиться от ненужного номера кадра.

9. Снова очистите сцену и загрузите объект Laser.lwo, созданный в Моделере. Вам придется немного подвинуть камеру, чтобы увидеть его, поскольку он будет находиться вплотную к камере.

10. Перейдите в панель Images и загрузите изображение LaserMap, созданное в пунктах 5-8.

Рис. 4. Лазер

11. Откройте панель Surfaces и выберите поверхность под названием Laser. Начиная с этого момента, мы сможем создать разнообразные лазерные и энергетические эффекты, однако мы ограничимся самым простым вариантом. Сначала установим черный цвет, сбросив все цветовые каналы в ноль. Теперь нажмите кнопку "T" рядом с Surface Color. При этом откроется панель текстур. Выберите в ней Planar Image Mapping и установите Mapping Axis=Z. Выберите изображение LaserMap в качестве карты и нажмите кнопку Automatic Sizing. Установите Diffuse Level=0% и поднимите Luminosity до 50%. Наконец, активизируйте опцию Additive, и сделайте поверхность двусторонней (Double Sided). Нажмите клавишу 'F9' для тестового рендеринга (рис. 4).

Теперь у нас получился неплохой лазероподобный эффект, который совпадает по направлению со спадом (falloff) интенсивности блеска линз, попросту растягивая область блеска линз вдоль полигонов. Поскольку мы использовали два взаимно перпендикулярных и взаимно пересекающихся полигона, лазер будет виден и равномерно освещен от начала до конца, вне зависимости от угла зрения (за исключением концов,которыми мы скоро займемся). Длина луча может быть подогнана путем растягивания в Layout и создания новых ключевых кадров. Ширина луча также может быть подогнана путем растягивания вдоль осей X и Y, что делает луч ярче или тусклее. Сохраните объект под именем GenericLaser.lwo. Теперь мы воспользуемся им несколько позднее. Теперь займемся краями...

12. Выберите Light как объект редактирования и поставьте его в соответствие панели лазера. Создайте ключевой кадр и откройте панель Lights. Нажмите кнопку Lens Flare и откройте Flare Options. Активизируйте кнопку Fade in Distance и назначьте Nominal Distance=2 m. Поднимите Flare Intensity до 100% и снова закройте панель. Отодвиньте камеру в дальний конец и разверните к свету. Запустите тестовый рендеринг и увидите, как появилось светящееся пятно, из которого испускается лазер (рис. 4). При этом не только добавляются края, но также добавляется эффект "приклеивания" лазера к своему источнику или мишени. Такой же эффект можно добавить и в точке попадания лазера в цель, как показано на рисунке в начале текста. Для большинства задач будет вполне достаточно такой реализации лазера, но давайте посмотрим, что еще можно сделать. У нас все еще осталась проблема с формой луча - под некоторыми углами зрения он выглядит абсолютно плоско. Чтобы справиться с этим, добавим немного Motion Blur, благодаря чему луч сгладится, и получит более объемный вид.

13. Откройте Motion Graph в панели Laser и выберите Bank graph. Создайте ключевой кадр на первом кадре и назначьте ему величину 180 градусов. Установите End Behavior=repeat и снова закройте панель.

14. В панели Camera установите Antialiasing level=low и включите Motion Blur. Оставьте Blur Length равным 50%. Снова закройте панель, нажмите 'F10' и подождите результата рендеринга. Теперь вы получили сглаженный луч с эффектом сияния и тумана. На него можно теперь смотреть под любым углом, и он не будет больше казаться плоским. Мы совершили рендеринг объекта под пятью различными углами. Значение параметра Bluer Length=50% покрывает только половину движения от предыдущего кадра до текущего (в нашем случае - первого). Таким образом, объект лазер поворачивается только на 90 градусов. Другие 90 градусов попадают на период между кадрами и потому не просматриваются. Поскольку луч выглядит одинаково как сверху, так и сбоку, нам придется осуществить рендеринг только половины оборота, чтобы в конце вращения он выглядел также, как и в начале. При рендеринге motion blur важно сделать рендеринг 1-го а не 0-го кадра. В 0-м кадре эффекта дымки не будет. Вы можете обнаружить, что при сглаживании вращающейся панели появляется небольшая звездочка. Если вы установите больший уровень сглаживания (antialiasing), то этот эффект исчезнет, однако это вызовет большие дополнительные затраты времени при рендеринге. Если обычно вы осуществляете рендеринг с Enhanced AA, то добавление дымки не скажется на времени рендеринга, однако, если вы поднимите уровень с AA до medium или выше, то время наверняка увеличится. К счастью, мы можем уменьшить этот эффект, не меняя уровня AA, и, в то же время, увеличить контроль над окончательным видом луча. Замечание: Если вы используете Field Rendering, то вам снова потребуется вращение на двойной угол. Количество motion blur отсчитывается в процентах от предыдущего кадра, а при Field Rendering - от предыдущего поля. При Field Rendering величина 50% motion blur будет покрывать половину движения объекта в каждом поле, поэтому, удваивая угол поворота, мы получим полный объем дымки при переходе от одного поля к другому. В приведенном выше примере при использовании Field Rendering, нам придется увеличить вращение от 180 градусов на кадр до 360 градусов на кадр.

15. Отключите Antialiasing и откройте панель Objects. Загрузите дубликат объекта лазер и закройте панель Objects.

16. Поставьте в соответствие этому второму лазеру первый и поверните его на 45 градусов вокруг своей оси и создайте ключевой кадр номер 0. Закажите тестовый рендеринг и посмотрите, что получится. На этот раз лазер будет в два раза ярче, поскольку поверхности аддитивны. Если бы мы взяли параметр luminosity равным100%, то получили бы белую флюорисцентную трубку. Мы можем управлять интенсивность свечения тремя способами. Наиболее очевидный способ - подобрать значение параметра luminosity. Мы также можем подогнать прозрачность текстуры для карты изображения. Luminosity=100% и texture opacity=50% дадут тот же эффект, что и Luminosity=50% и texture opacity=100%, если цвет фона - черный. Третий метод состоит в использовании Object Dissolve. Это позволит анимировать интенсивность лазера также, как мы использовали бы опцию Flare Dissolve для блеска линз. Мы также можем просматривать изображение, не беспокоясь об ориентации, что сильно упростит жизнь. Если мы снова применим motion blur, то сумеем более эффективно сгладить края при более низком порядке сглаживания. Поскольку мы используем blur length=50%, нам потребуется вращать наш лазер на 90 градусов за 1-й кадр, чтобы покрыть 45-градусную разницу между двумя объектами.

.Рис. 5 Теперь получше, да?
17. Откройте снова Motion Graph для первого лазера и установите величину bank для 1-го кадра равной 90 градусам. Вернитесь в панель Camera, установите Antialiasing=Low и включите обратно Motion Blur. Снова сделайте тестовый рендеринг 1-го кадра (рис. 5).

Вы увидите, что дымка куда глаже, поскольку объект вращается медленнее, и проходы AA гораздо ближе друг к другу. Теперь мы могли бы добавить еще полигонов, чтобы еще более сгладить изображение, однако многочисленные слои прозрачности существенно увеличивают время рендеринга. С двумя копиями лазера у нас будет четыре слоя прозрачности, что еще не слишком страшно. Покончив с базовыми принципами, займемся бесчисленными вариациями, которые предлагает этот метод. Первой очевидной вариацией будет цвет.

18. Сначала очистите сцену и запустите рендеринг чисто белого блеска линз, без красноватого сияния снаружи. Для этого предпримите те же шаги, что и в пунктах 5-8. Это потребуется для некоторых эффектов, которые мы собираемся исследовать. Отрендерите еще несколько блесков, отличающихся цветом. Для этих цветных огней увеличьте flare intensity до 100%, чтобы скомпенсировать их более темный вид.

19. Очистите сцену и загрузите объект лазер. Поэкспериментируйте, заменяя LaserMap цветными блесками, путем использования опции Replace Image в панели Image и запустите рендеринг нескольких тестовых примеров. Вы можете сохранить эти цветные копии под разными именами. Я рекомендую создать для всех этих лазеров отдельный каталог.

20. Поиграв с цветами, давайте добавим текстуры. Нужно опять очистить сцену и загрузить объект лазер. На этот раз, в качестве текстуры мы зададим фрактальный шум. Откройте панель surface и введите следующие параметры:

Surface Color: 255, 255, 10
Texture: Fractal Noise
Texture Size: X: 0.05 Y: 0.05 Z: 0.01
Color: 255, 60, 10
Frequencies: 3
Contrast: 1
Luminosity: 0%
Additive: On
Texture Type: Planar Image Map

Рис. 6. Фазер, огонь!
Возьмите изображение с белым блеском линз и сделайте мэппинг вдоль оси Z, как мы это сделали ранее. Чтобы быстро подогнать изображение к объекту, воспользуйтесь Automatic sizing и закажите очередной тестовый рендеринг. Через несколько секунд вы увидите точную копию энергетических лучей, которыми стреляют знаменитые космические корабли (рис. 6). Единственное, что осталось сделать - это дабавить немного движения текстуры, чтобы оживить картинку. Попробуйте значение 0.1 по оси Z и 0.005 по оси X или Y.

Экспериментируйте с разными комбинациями цвета и текстуры. Этот простой метод сам по себе дает бесконечное разнообразие вариантом, но можно попытаться сделать и нечто менее прямолинейное.

21. Здесь вступает в игру 45- градусный угол между двумя лазерами. Очистите сцену и загрузите объект лазер. Мы снова попытаемся покрыть его несколько иной текстурой, но на этот раз не будем пользоваться картинкой блеска линз. Прежде всего, удалите все текстуры и установите для всех базовых текстур величину 0%. Затем возьмите ярко синий цвет. Нажмите кнопку texture канала color и выберите в меню текстуру marble. Введите приведенные ниже параметры и обратите внимание на величину Texture Center. Этот параметр позиционирует текстуру так, чтобы мраморная прожилка пролегала как раз по середине нашего луча. Обычно центр текстуры Marble располагается как раз между двумя прожилками, поэтому мы можем смело взять величину, равную половине Vein Spacing. Без этого смещения ближайшая жилка пройдет в четверти метра от края нашего лазера, т.е. слишком далеко, чтобы быть видимой.

Surface Color: 15, 85, 255
Texture: Marble
Texture Axis: X-Axis
Texture SizeX: 0.05 Y: 0.05 Z: 0.05
Texture Center X: 0.25 Y: 0 Z: 0
Texture Color: 255, 175, 220
Frequencies: 6
Turbulence: 0.025
Vein Spacing: 0.5
Vein Sharpness: 25

22. Теперь, когда мы настроили цвет, давайте создадим освещение. Удостоверьтесь, что яркость установлена в 0%, а затем нажмите на кнопку texture для этого атрибута. Выберите текстуру Marble и введите те же величины за одним исключением. На этот раз установите Vein Sharpness=15. Это создаст точно такую же мраморную прожилку, совпадающую с предыдущей, но несколько более широкую. Поскольку здесь мы работаем с яркостью, более широкая прожилка будет освещать не только цветную прожилку, лежащую выше, но и окружающую область.

Luminosity: 0% Additive: On
Texture: Marble
Texture Axis: X-axis
Texture Size X: 0.05 Y: 0.05 Z: 0.05
Texture Center X: 0.25 Y: 0 Z: 0
Texture Value: 100%
Frequencies: 6
Turbulence: 0.025
Vein Spacing: 0.5
Vein Sharpness: 15

После тестового рендеринга вы увидите яркую розовую прожилку (цветная текстура) с голубым сиянием вокруг (базовый цвет). Все это очень похоже на удар молнии (рис. 7а).

Рис. 7а. Никогда еще игры с электричеством не были столь безопасными. Рис. 7б. Еще одна мраморная текстура, на этот раз оранжевая, создает лучу туманный эффект.

Испробуйте эту технику с различными комбинациями цветов и текстур. Только не трогайте Vein spacing, поскольку при неправильной настройке этого параметра все может вообще исчезнуть. Добавьте движения текстуры. Помните, что скорость надо применять не только к оси Z, но и к X и Y. Это создаст видимость того, что текстура движется вдоль объекта. При этом следует придерживаться одного правила. Не применяйте скорость к той же оси, что и Texture Axis! Если вы это сделаете, то прожилка съедет вбок и исчезнет.

Мраморную текстуру можно представить в виде пачки мятой бумаги, проткнутой шампуром. Шампур - это ось текстуры (Texture Axis), а каждый листок бумаги - это мраморная прожилка. На мраморной поверхности мы видим срез пачки, пересеченной поверхностью, где полигоны этой поверхности рассекают листы бумаги. Каждая прожилка - это смятый лист, лежащий перпендикулярно оси мэппинга и параллельно двум другим.

Здесь мы приходим к тому, почему полигоны расположены именно под углом 45 градусов. Если бы полигоны не располагались под углом, то один бы выглядел нормально, а другой был бы полностью закрашен прожилками. Чтобы убедиться в этом, поверните лазер на 45 градусов вокруг своей оси и активизируйте World Coordinates. Тестовый рендеринг покажет, как мраморная жилка воздействует на всю поверхность вертикального полигона (рис. 8а).

Рис. 8а. Мраморная прожилка после мэппинга по оси X прекрасно смотрится на горизонтальном полигоне, но полностью покрывает вертикальный. Рис. 8. Та же текстура, нанесенная на полигоны, расположенные под углом.

Другая причина, по которой полигоны должны располагаться под углом - это мэппинг. Поскольку оба полигона имеют наклон 45 градусов, они имеют одинаковые размеры, будучи по 0.1 м как к высоту, так и в ширину. Это идеальное соотношение для мэппинга, поскольку мэппинг изображения по осям X и Y окажет одинаковое действие на оба полигона (рис. 8б). Это открывает множество дополнительных возможностей, и вот самая интересная из них.

23. Очистите сцену и загрузите объект лазер. Переименуйте объект в "rings" и нажмите кнопку Surface Color Texture. Вы увидите, что старое изображение блеска линз все еще на месте. Измените ось мэппинга на X.
Установите размер текстуры X:0.05, Y:0.05, Z:0.2. Нажмите кнопку Texture Center и установите значение 0.025 по оси Y и 0.5 по оси Z. Удостоверьтесь, что как для высоты, так и для ширины, включены repeats. Установите также Alpha Image=flare. Благодаря этому блеск после рендеринга будет выглядеть немного меньше и интенсивнее. Нажмите кнопку Use Texture и поднимите Luminosity до 200%. Удостоверьтесь, что видите объект через камеру и нажмите 'F9' для тестового рендеринга (рис. 9а).

Рис. 9а. Очень мило. Результат мэппинга изображения блеска по оси X, в данном случае, синего цвета. Рис. 9б. Тот же самый объект вращается с motion blur.

Рис. 9в. Кольца вокруг зеленого фрактального луча.
Вы увидите массив из блесков линз, образующий два параллельных ряда на каждом из многоугольников. В статике - ничего особенного, но если мы начнем вращение, то это совсем другое дело. Для лучших результатов добавьте клон этого объекта, и поверните его на 45 градусов относительно первого, как мы это сделали ранее. Вы обнаружите, что в центре круга луч становится невидимым (рис. 9б). Причина этого кроется в том, что в центре объекта нет видимого цвета. Каждый полигон вращается по направлению к камере и становится менее видимым, поскольку полигоны не имеют толщины. Таким образом, при виде сбоку они невидимы. Это не представляет проблемы, поскольку этот эффект лучше всего смотрится при комбинировании с одним из более ранних лазеров (рис. 9в).

Это только один пример того, каких эффектов можно достичь при помощи мэппинга изображений. Другие изображения также могут дать интересные результаты. Попытайтесь использовать серую градиентную заливку в качестве текстуры яркости, становящуюся менее яркой по мере удаления от источника луча. Это создаст эффект пламени, похожего на огонь паяльной лампы. Используйте Texture Falloff=2000, чтобы по краям объект становился невидимым. Эта техника позволяет создать множество эффектов - пламя, свет прожекторов, кометы, даже огонь свечи. Присмотритесь к рисунку в начале руководства - при создании пламени, вырывающегося из сопел, использовалась та же техника. Мы только что заговорили об опции Texture Falloff - так вот, это еще одна интересная возможность. Все эффект, которые были описаны выше, можно отнести к разряду постоянных потоков энергии. Как насчет бластеров, стреляющих залпами? При помощи Texture Falloff это также несложно изобразить.

Рис. 10 Эффект Texture Falloff по оси Mapping Axis
24. Загрузите исходный объект лазера в чистую сцену. Откройте панель Surface и нажмите кнопку Color Texture. Введите в Texture Falloff величину 200% по оси Z (МОЖНО иметь Texture Falloff по Mapping Axis). Закройте панель и установите камеру сбоку, так чтобы видеть весть объект. Сделайте предварительный рендеринг и увидите короткий залп лазера (рис. 10).

Замечание: Важно помнить, что величина параметра falloff - это процентное соотношение falloff на метр длины. Этот объект имеет 0.1 метр в длину и в ширину, поэтому нам потребуется величина 2000% чтобы по краям не осталось текстуры. Помните, что falloff начинается в центре и расходится по обоим направления. Это значит, что расстояние спада равно половине размера объекта. То же самое можно сказать о длине. Наш лазер имеет только 1 метр в длину, поэтому вы ожидаете, что величина 100% подойдет, но процесс ведь начинается от центра текстуры. После Automatic Sizing наши текстуры имеют центр по середине оси Z, поэтому у нас есть только по 0.5 м с каждой стороны, поэтому придется брать 200%. Экспериментируйте с разными величинами, и вы сумеете найти множество интересных комбинаций.

Теперь, когда мы научились делать крутые лазеры, нужно их разместить в сцене. Наиболее простой способ - сначала разместить все космические корабли, персонажей и все остальное. После этого создайте null и поставьте ему в соответствие дула пушек. Затем загрузите лазеры. В этом случае удобно иметь коллекцию заготовок с различными эффектами. Поставьте лазер в соответствие объекту null вместе с точесным источником света. Теперь нужно, как было описано ранее, задать вращение лазера, или даже создать дополнительные копии. Воспользуйтесь объектом null для управления направлением и размером лазера, задавая ключевые кадры для угла вращения и масштаба. Установка масштаба объекта null по осям X и Y выключает лазер, в то время как он все равно будет виден в Layout, что удобно при прицеливании. Наконец, анимируйте масштаб по осям X и Y, чтобы включить лазер, и начинайте громить врага, а затем снова выключите его.

Для коротких залпов требуется похожая настройка, но, на этот раз, не ставьте в соответствие пушке null. Вместо этого создайте ключевой кадр с залпом на конце ствола пушки. Затем прокрутите время до того кадра, когда залп должен поразить мишень. Привяжите движение null ко оси Z, отключив кнопки X и Y под кнопками редактирования объекта. Нажмите клавишу CTRL и продвиньте null вдоль его оси так, чтобы заряд попал в цель. Создайте ключевой кадр и задайте motion type=Linear после нажатия кнопки Spline Controls. При нажатой клавише CTRL, движение объекта в Layout привязывается к его локальной оси, а не к глобальной. При вращении объекта, если вы хотите, чтобы он двигался по траектории, которая в перспективе будет выглядеть прямой, просто держите нажатой клавишу CTRL, когда будете перемещать его мышью. Это гораздо проще, чем переключать многочисленные виды.

Причина, по которой мы не ставили в соответствие стволу пушки Null, становится очевидной, если мы начинаем перемещать пушку. Если бы мы это сделали, то снаряд всегда находился бы на одной линии со стволом, то есть снаряд вращался бы в полете, естественно, не попадая в результате этого в цель!

Это особенно верно при быстром вращении ствола. Когда снаряд достигнет цели, пушка, вероятно, будет смотреть уже в абсолютно противоположном направлении.

Здесь были рассмотрены варианты одной очень простой техники. Вперед, юный воин, сокрушай врагов своих!
источник:www.gsidigital.com



21232 Автор:
Актуальность: 142
Качество: 222
Суммарный балл: 364
Голосов: 4 оценки
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 482 уникальных посетителей