HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 21 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Моделирование (https://hlfx.ru/forum/forumdisplay.php?forumid=25)
-- Туториал: создание LOD для моделей (https://hlfx.ru/forum/showthread.php?threadid=2137)


Отправлено XaeroX 01-04-2010 в 05:49:

Туториал: создание LOD для моделей

Этот туториал посвящен важному вопросу – созданию 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-файлы):
code:
smd2lod.exe –r mymodel –l mymodel_lod_src mymodel_lod

Запускаем программу, и если все прошло без ошибок, получаем файл mymodel_lod, который содержит лод, привязанный к исходному скелету. Если количество вершин сильно уменьшилось, то, возможно, привязка будет не ко всем костям, и в результате анимации будут выглядеть странно. Поэтому я и не рекомендовал ставить менее 50% треугольников при оптимизации. Теперь его можно использовать как обычную бодигруппу (в Half-Life) или лодгруппу (в Volatile3D II).

__________________

xaerox on Vivino


Отправлено FiEctro 01-04-2010 в 11:51:

XaeroX
Респект . Хороший тутор.

>> Для этого воспользуемся замечательной программкой smd2lod (за авторством вашего непокорного слуги).

Это тоже куль. А в будуещем не планируется совместить её с утилитой по уменьшению поликов? Т.е. сразу грузим смд, указываем количество лодов и их детализацию, и жмём compile?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ncuxonaT 01-04-2010 в 12:22:

в 3дмаксе проще сделать можно
и скелет останется без косяков


Отправлено XaeroX 01-04-2010 в 13:08:

Цитата:
FiEctro писал:
А в будуещем не планируется совместить её с утилитой по уменьшению поликов?

Там надо создавать Direct3D-девайс и все такое (по крайней мере, если использовать D3DXSimplifyMesh, как упомянутый плагин). Мне, честно, было лень.
Цитата:
ncuxonaT писал:
в 3дмаксе проще сделать можно
и скелет останется без косяков

3дмакс есть не у всех, а милка намного доступнее.
Ждем твой тутор по созданию лодов в 3дмаксе

__________________

xaerox on Vivino


Отправлено Дядя Миша 01-04-2010 в 13:41:

ncuxonaT так ты в максе могёшь? чего ж ты раньше молчал?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено (_-=ZhekA=-_) 01-04-2010 в 19:14:

Спасибо за тутор! Это радует, что последнее время есть новые хорошие туторы!


Отправлено Jackass 20-06-2010 в 22:08:

XaeroX ОГРОМНОЕ СПАСИБО КОМАНДОР!!!

Так выручил!

Однако почему прога ругается на две библиотеки:

vstdlib.dll и tier0.dll

Я с нета какие только не качал, но они все не подходят...
Может кто дать две эти библиотеки.


Отправлено XaeroX 20-06-2010 в 23:26:

Вот vstdlib.dll
А tier0.dll ей не нужен. Ты случаем не в папку халфы распаковал? Надо в отдельную, и туда эту библиотеку, что в аттаче, положи (халфовскую - не перезаписывай ни в коем случае).

__________________

xaerox on Vivino


Отправлено Jackass 21-06-2010 в 06:11:

XaeroX - всё.. спс, заработало тарантайкО

Не я её в отдельную папку запихал.


Отправлено kogemyaka 22-10-2011 в 17:21:

XaeroX чё ж ты не сказал, что нужно сначала в формат DirectX мешей (*.x) экспортить?


Отправлено XaeroX 22-10-2011 в 17:48:

kogemyaka
Это ещё зачем?

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-10-2011 в 18:02:

XaeroX пусть уже делают что хотят. Лишь бы работало.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено kogemyaka 22-10-2011 в 18:15:

XaeroX иначе оно не работает, в плугине окошко остаётся чистым и в модели не становится меньше полигонов.

А после конвертации в *.x модель поворачивается на 90 градусов.


Отправлено XaeroX 23-10-2011 в 10:15:

У меня всё работает (с)
Может, милка у тебя глючит.

__________________

xaerox on Vivino


Отправлено valera0141 05-09-2013 в 10:09:

всё сделал правильно. пишет ошибку ERROR: can't read ''три иероглифа''.smd
Invalid argument


Временная зона GMT. Текущее время 09:42. Страницы (2): [1] 2 »
Показать все 21 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024