Этот туториал посвящен важному вопросу – созданию LOD (Level of Detail) для моделей в формате Half-Life SMD. Поддерживает ли ваш движок лоды, либо вы добавили код лодов в Half-Life по нашему туториалу – вам понадобятся сами модели с различной степенью детализации. И я расскажу вам, как их сделать.
Создание лода состоит из двух этапов. Первый – это снижение числа полигонов. С этим успешно справляется плагин для MilkShape3D под названием DirectX Mesh Tools.
Открывайте ваш исходный SMD-файл (с максимальной детализацией) и включайте плагин. Рядом с ползунком отображается число полигонов, но по дефолту стоит 0 – это глюк. Чуть сдвиньте его и верните назад – теперь показан реальный поликаунт модели. Сдвигайте ползунок влево, пока не получите требуемое количество полигонов, и при этом следите визуально за качеством. Меньше 50% полигонов для анимированных делать не рекомендуется – позже поймете, почему. Для статики – ставьте любое значение, которое вас устроит. Нажмите кнопку с дискетой и красной стрелкой – и исходная модель заменится на лод.
Оп-па, а где же скелет? Без паники, ща всё будет
Теперь нам требуется сохранить лод в формате SMD, а для этого требуется привязать вершины к костям. Добавляйте джойнт в произвольное место (его положение значения не имеет, он нужен только для того, чтобы модель удалось сохранить как SMD), потом переходите на вкладку Joints, жмите SelUnAssigned и потом Assign. Теперь модель можно сохранить. Предположим, исходный детализированный SMD назывался mymodel.smd. Сохраните лод как mymodel_lod_src.smd.
В таком виде, без скелета, его использовать, разумеется, нельзя (если это не статичная модель с одной костью, и добавленный вами джойнт совпал по позиции с оригинальным, но это маловероятно). Поэтому нам нужно «насадить» лод на скелет исходного SMD - это и есть второй этап. Для этого воспользуемся замечательной программкой smd2lod (за авторством вашего непокорного слуги). Эта программа входит в пакет утилит Volatile3D II, но т.к. он еще не выпущен, я выкладываю ее отдельно. Вызывается программа так:
code:smd2lod.exe -r <путь к исходному файлу SMD> -l <путь к исходному лоду> <путь к сохраняемому лоду>
путь к исходному файлу SMD: это должен быть файл, из которого вы делали лод. Использование другого файла недопустимо! путь к исходному лоду: файл, который вы сохранили, это лод без скелета. путь к сохраняемому лоду: файл, который будет создан программой – лод со скелетом.
Расширения указывать не обязательно – по умолчанию будет добавлено расширение smd. В нашем случае вызов будет таким (предполагаю, что программа в той же папке, где и smd-файлы):
Запускаем программу, и если все прошло без ошибок, получаем файл mymodel_lod, который содержит лод, привязанный к исходному скелету. Если количество вершин сильно уменьшилось, то, возможно, привязка будет не ко всем костям, и в результате анимации будут выглядеть странно. Поэтому я и не рекомендовал ставить менее 50% треугольников при оптимизации. Теперь его можно использовать как обычную бодигруппу (в Half-Life) или лодгруппу (в Volatile3D II).
Вложение: smd2lod.zip (30.6 кб)
Этот файл был скачан 838 раз. XaeroX проверил это вложение на вирусы 01-04-2010 в 05:50
>> Для этого воспользуемся замечательной программкой smd2lod (за авторством вашего непокорного слуги).
Это тоже куль. А в будуещем не планируется совместить её с утилитой по уменьшению поликов? Т.е. сразу грузим смд, указываем количество лодов и их детализацию, и жмём compile?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Вот vstdlib.dll
А tier0.dll ей не нужен. Ты случаем не в папку халфы распаковал? Надо в отдельную, и туда эту библиотеку, что в аттаче, положи (халфовскую - не перезаписывай ни в коем случае).
Вложение: vstdlib.zip (35.2 кб)
Этот файл был скачан 676 раз.