billboard classic tutorial
Классика от 2003-4 года(С) Добавили статью чисто для истории.
Статья размещалась на многих сайтах да и по сей день (2022) ее можно найти в сети.
LensFlare.rar или поиском по плагин Морровинд Киорра.
Использование на практике спрайтов в TES:CS
Среди множества достоинств движка Morrowind (измененного NetImmerse) можно выделить то, что некоторые объекты могут быть повернуты всегда одной стороной к камере (т.е. игроку). Данное свойство предоставляет множество возможностей – ведь таким способом можно создавать спрайты из плоскости. К сожалению, сама Bethesda не часто пользуется данной техникой – спрайты применяются в Morrowind только для отображения частиц, в то время как сфера их использования может быть куда шире – и как пример хотелось бы продемонстрировать метод создания «короны» вокруг уличного фонаря.
Результаты Вы сможете увидеть на содержащихся в данной статье скриншотах, а также в плагине «Киорра», который к настоящему времени находится в стадии разработки. (а на дворе, все еще был 2003-4ый год..)
(примечание - не ищите этот плагин, уже искали -_- хотя как знать, может вам повезет больше? Увы, плагин так никогда и не был опубликован, фактически все, что от него осталось эта статья, которая много где публиковалась. Форум был, но успешно накрылся тазиком примерно в 2005ом. Возможно какие-то огрызки все еще можно найти на Вэб Архивах, но сам плагин так и не был доведен даже до стадии паблик-бета. Прим. ред 2022),
Для работы я использовал 3dsmax 5 и плагин tesexporter для 3dsmax 4, а также Photoshop 6.0 с плагином DDS version 2.00.
Первые четыре пункта туториала – ключевое место статьи, поэтому они объяснены досконально, так, чтобы даже новичок смог понять последовательность действий.
Для того, чтобы сделать спрайт достаточно:
создать плоскость (т.е. примитив Макса Plane),
1. заглянуть в Utilities panel
2. выбрать утилиту MaxProperties (данная утилита входит в плагин tesexporter)
1. нажать на кнопку Add
2. выбрать Billboard и нажать OK (в качестве комментария к Billboard будет указано Object always faces camera – т.е. объект всегда повернут к камере – а это именно то, что нам и надо).
Теперь, если экспортировать плоскость в Morrowind, можно будет увидеть, что она остается неподвижно вне зависимости от того, с какой стороны на нее смотреть. Как использовать данное качество – решать Вам, просто проявите фантазию. Я же предлагаю Вам поэкспериментировать на создании LensFlare для уличных фонарей.
Следует учитывать, что в целях экономии полигонов плоскость должна состоть из двух треугольников.
3. Как Вы понимаете, основная задача – добавить карту прозрачности. Карту вполне возможно нарисовать на Photoshop’e, однако куда красивее и легче сделать ее на 3ds. В этом нам поможет эффект LensFlare (Modify panel > Light object. > Atmospheres & Effects rollout > Add button), а также аналогичный эффект, но более удобный в работе LensEffect стандартного плагина VideoPost.
При создании карты прозрачности не старайтесь получить слишком вычурные, слишком «навороченные» эффекты – в игре они будут смотреться очень нежизненно, даже будучи примененными в «магических» фонарях. Glow, Ray и Streak – этого вполне достаточно. Причем старайтесь чтобы Glow был достаточно большого размера, а Streak я бы порекомендовал горизонтальный, а не вертикальный – почему – об этом позже.
Вот то, что получается после рендера картинки с источником света:
4. Данная картинка нуждается в обработке на Photoshop’e либо другой аналогичной программе. Для начала необходимо обрезать все лишнее и придать изображению форму квадрата для того, чтобы в последствии можно было сохранить его в DDS формате. Старайтесь чтобы центр «вспышки» находился в в итоговом результате в центре изображения:
5. Если внимательно приглядеться к получившемуся результату, а также подрегулировав brightness/contrast должным образом, можно увидеть, что лучи выходят за пределы изображения – это неприемлемо, так как в игре «обрезанная» в форме квадрата «корона» будет выглядеть очень нереалистично. Поэтому поверх получившегося рисунка следует добавить приблизительно такой слой:
6. Не помешает и дальнейшая проработка изображения – например, необходимо сделать свет более «мягким», убрать освещение снизу – ведь освещению мешает дно фонаря (по этой же причине streak лучше делать горизонтальным), а также делать то, чего пожелает Ваша фантазия, в основном это касается регулировок brightness/contrast и hue/saturation. Вот то, что получилось у меня:
Но не спешите закрывать Photoshop – он нам еще понадобится.
7. А теперь рассмотрим непосредственно наложение получившейся текстуры на созданную нами плоскость.
Как известно, Morrowind понимает два типа затенения – TES Shader и Blinn. В зависимости от того, с каким материалом мы будем работать, будет различаться и техника работы.
TES Shader – хорош тем, что с помощью него можно создавать полупрозрачные полигоны без альфа канала – с помощью additive transparency. В данном случае TES Shader понимает отсутствие цветов как прозрачность. Т.е. черный цвет при additive transparency отображается как прозрачный, серый – как полупрозрачный и белый – как непрозрачный. Лучший формат для сохранения файла в качестве текстуры – DDS DXT1 (без альфы). Но данный метод имеет минусы: получившийся в итоге фонарь Вы не сможете поставить в exterior – там additive transparency делает како-то очень странный глюк – т.е. черный становится не до конца прозрачным, и «проходит» это только после смены фазу дня и ночи, причем после выгрузки ячейк из памяти и попадания в нее вновь глюк повторяется. Так что лучше воспользоваться затемнением Blinn, хотя это и сложнее.
Blinn – тут без альфа канала не обойтись. Причем альфа канал здесь является основным, поэтому в Photoshop’e копируем все наше изображение в альфа канал. Канал же RGB должен претерпеть радикальные изменения и превратиться в нечто подобное:
Если RGB канал оставить без изменений, то Вы увидите, что сияние и лучи на периферии выглядят слишком темно – дело в том, что прозрачность по альфе не убирает черный цвет, а просто делает его прозрачнее.
Лучший формат для сохранения файла в качестве текстуры: DDS DXT5, хуже - DXT3.
8. При наложении текстуры на созданную плоскость задействована одна карта, которая содержит в себе информация для diffuse и одновременно для opacity (просто перетащите карту инстансом с diffuse в opacity). Проследите, что в Mono channel output поставлен на alpha:
9. Не забудьте назвать плоскость No Collision (используйте CollisionSwithc ноду, это будет надежнее - прим. ред. 2022)
10. При экспорте «корона» окажется слишком яркой, поэтому поставьте Opacity = 70 или ниже.
11. Необходимо также поставить self-illumination = 100, и Ваша «корона» готова к экспортированию.
Если Вы сами создавали модель фонаря, то намного удобнее будет экспортировать «корону» вместе с ней.
Старайтесь избегать экспорта одиночных объектов из 3dsmax 5. При экспорте плоскость НЕ ДОЛЖНА БЫТЬ ВЫДЕЛЕНА – иначе ее будет крутить вверх-ногами.
В результате можно получить приблизительно вот такие фонари:
Приведенная выше техника будет использована в плагине «Киорра» поэтому настоятельно рекомендуется использовать текстуры собственного изготовления, а не заимстовать из данного тутораила, тем более что здесь они находятся в формате JPEG со значительной потерей качества и в разрешении 256*256.
С пожеланием успехов в создании моделей для Morrowind’a,
Wraith