Моделирование и тайловое текстурирование дороги
Урок для LightWave3D 7.0 и выше
Цель данного тутора показать общий принцип, методику на простом примере. При должном уровне фантазии ее можно применять для очень многих вещей(различные ленты(на одежде, подарках и т.д.), сложные узоры, пояса, протекторы шин и т.д.)
Итак, задача- моделирование дороги, тайловое текстурирование УВ картой, а также ее(дороги) бесшовное объединение с ландшафтом и возможностью деформации последнего вместе с дорогой, без ущерба для обеих сторон.
Условия кажутся слегка притянутыми, однако это не так. Такие жесткие условия, как минимальное кол-во полигонов, тайловое УВ текстурирование почти всегда встречается в гейм девелопменте. Поэтому таргет груп - это необремененные констракшн сетами малые и средные игровые группы или ранние этапы разработки.
Однако это может пригодится и в любой повседневной работе.
Создаем две точки с одной стороны от оси Y.
Делаем mirror(ctrl+v) по оси Y
Создаем 3 2х точечных полигона (выделяем две крайние левые точки и нажимаем P. Тоже самое проделываем с остальными точками)
Выбираем Extrude(shift+E) и вертикально вытягиваем полигоны. Нажимаем Unify polygons(shift+I)
Теперь делаем unweld(ctrl+U)и создаем UV карту для центрального полигона(собственно наша дорога) так, чтобы он занимал всю площадь UV(чтобы было совсем точно, выбираем, например, верхнюю левую точку полигона, нажимаем I, в подменю выбираем Texture и вводим U - 0%, V- 100%. Аналогично делаем с остальными точками). Тоже самое проделываем с 2мя остальными полигонами (наша обочина) (я рекомендую использовать одну УВ карту, созданную для центрального полигона. Для этого выбираете крайний полигон и нажимаете Make UV вместо New UV map). В результате должно получится так:
В заднем слое создаем обычную кривую(Draw Spline в данном случае).Рисуем таким образом, чтобы начало сплайна было перпендекулярно поверхности наших 3х полигонов.
Загружаем наш тайл в лайтвейв.
Теперь делаем Rail Extrude (Ctrl+R), не забыв выбрать в меню (правый нижний угол) нашу карту УВ.
Два важных момента:
1) выбираем uniform lengths - для того, чтобы текстура дороги равномерно распределилась по всей дороги, без сжатия и растяжения
2) создаем УВ карту по вертикали(нажимаем кнопку V). Это для того, чтоб текстура шла вдоль дороги, а не поперек;)
Выделяем наши полигоны и в окне редактирования УВ карт, и растягиваем вертикально в том же окне до тех пор, пока наша текстура не примет нормальный вид
В заднем слое создаем полигон, делаем несколько раз ему faceted subdivide
Дальнейшие действия зависят от конкретных условий.
1) если есть жесткие ограничения в количестве полигонов(гейм девелопмент), то делаем следующим образом - Solid drill tunnel для зеленых полигонов
полученную модель поднимаем до уровня дороги(в выбираем точку у дороги, нажимаем I и копируем положение по Y. Вставляем это положение для всех точек зеленого ландшафта)
Выбираем сначала точку на ландшафте, не соответствующую точкам на дороге, и делаем weld(ctrl+w) к ближайшей точке по наружнему краю обочины.В общем, на картинках все должно быть понятно;)… и так долго …очень долго;)
2) Второй вариант. Когда у вас нет проблем с ограничением полигонов. Копируем ландшафт в новый слой, делаем бивил для каждого полигона(в bevel4++ функция each polygon)(только на смещение(shift), НЕ на сужение или расширение(insert))
Делаем solid drill stencil для дороги
И снова сопоставляем полигоны ландшафта и дороги
Теперь осталось удалить ненужные полигоны у дороги(оставить только верхние), и сделать automatic merge
Вот и все.
В результате, простым растяжением полигонов в окне редактирования УВ карты, Вы можете изменять масштаб текстуры, а простой заменой тайла изменяется вся поверхность дороги.Плюс возможность деформировать ландшафт и саму дорогу без каких-либо ограничений.
ЗЫ
Вопрос - зачем нужна обочина?
Ответ - для плавного перехода в окружающий ландшафт и ответвляющиеся дороги.
Здесь вы можете скачать один из вариантов применения методики - http://zed.minus-mp3.com/road.rar
email - zed@www.minus-mp3.com