Оптимизация веса модели
Вступление Добрый день, читатель. Часто ли ты отказываешься от использования модели из-за её огромного веса? Бывает же такое, верно? Сегодня я попытаюсь во всех подробностях описать процесс снижения веса модели. Мне лично удавалось урезать вес и в полтора и в два раза только руками (не забываем о том что есть в mdlVis'e функция, значительно снижающая вес). Да, иногда процесс снижения веса модели может быть весьма и весьма трудоемким. И да, для хорошего снижения веса надо быть знакомым с интерфейсами Model Editor и MDlvis, и хоть капельку понимать в моделировании. Перейдем к делу! Что чаще всего занимает много веса у модели? Текстура? Анимации? А может полигоны? На самом деле суть веса модели - текст. Да, модель и есть огромное количество текста. В формате .mdl можно целиком редактировать модель через JassCraft и прочие редакторы, способные расшифровать код модели. Понятное дело что модель с небольшим количеством полигонов будет весить меньше хайполи модели, однако не в полигонах вся соль. К сожалению многие модельщики абсолютно бездарны в плане экономии веса, им бы побыстрее закончить модель и выложить её в чарты, сорвав кучу "AWESOMEEE!!" и прочих похвал, не удосужившись довести до ума еще и вес модели. Кроме шуток, даже на том же хайве часто встречаются модели на столько не оптимальные, что дальше - просто некуда. Первая проблема заключается в CnP фрагментах других моделей через "Специальная вставка". Это одновременно делает сразу три вещи: добавляет новую поверхность, добавляет новый материал, добавляет новую текстуру. Итого мы имеем увеличение веса модели сразу на несколько килобайт, независимо от веса импортного геосета. Когда к модели добавляется 10-15 фрагментов других моделей - вес возрастает значительно (сжирается до 100-150 кб места). Что нам с этим делать? Во-первых, по возможности сливать все эти несомненно нужные фрагменты на родные поверхности модели, а уже потом в текстуру к модели подшить новые текстуры. Ну, или же, все фрагменты, использующие одинаковые текстуры сливать в одну поверхность. Это уберет все три утечки веса (новый материал, новую поверхность и новую текстуру). Да, я не опечатался. Каждый раз когда импортируется фрагмент - текстура импортируется, независимо от того, импортирована она уже, или нет. Ну, а коли мы не делаем модель а оптимизируем имеющуюся - снижает до минимума количество поверхностей, материалов и текстур. Начинать стоит именно с текстур. Заходим в менеджер текстур и удаляем все не использованные (не видимые на модели) текстуры. Частенько творцы забывают удалить, к примеру, текстуры удаленных партиклов, или, например, текстуру удаленного ими плаща. Да даже стандартную текстуру модели порой ленятся удалить. Далее, открываем Material Manager и, если видим большое количество материалов - начинаем проверять. Тут есть одна тонкость - если мы видим, например, 2 материала с одинаковой текстурой, однако у одного из материалов присутствует еще одна текстура - это, чаще всего, тимколор. Если вы не против оказаться без тимколора - удалите одну из текстур, добавьте другой режим фильтрации Blend и выставьте этот материал в редакторе поверхностей, той поверхности, у которой поле "material" будет "none". И так, при удалении каждого дублированного материала. Удалили материал - сразу же фиксите отсутствие текстуры на какой-то поверхности (использованную текстуру вы удаляете) Как только разберетесь с текстурами и материалами - переходите в редактор геосета Mdlvis и соединяйте те поверхности, которые используют идентичные текстуры (Cntrl+C с одной поверхности, Cntrl+V на другую. На старой поверхности удаляем старый геосет, на новой - подстраиваем под старое положение). Эта операция в некоторых запущенных случаях может срезать вплоть до 100-150 кб. (была у меня модель с 120 поверхностями ,урезал до 6 поверхностей. Итог - 160кб) Вторая проблема - кости. Один из самых сложных, потому как редактировать кости достаточно сложно. Все warcraft 3 модели обладают парами костей, Более того - половина моделей, сделанных со стандартных обладает тем же набором костей. ВНИМАНИЕ!!!, если вы не умеете анимировать модель - лучше не удалять эти побочные кости, в противном случае вы можете нарушить красоту анимации модели вообще. Если умеете самостоятельно анимировать и считаете что вы в силах исправить возможные "баги" которые всплывут в анимации - смело удаляйте все дубликатные кости. Этот шаг, при большом количестве анимаций может срезать достаточное количество веса. Третяя проблема - кости оригинала. Допустим если за основу взята модель иллидана, а автор - не добросовестно очищал модель - нам потребуется зайти в редактор склета Mdlvis и поудалять все кости от метаморфозы иллидана, так же все кости с приставкой alternate (аттачи и партикловые источники). Обработав таким образом модель - кликаем на "Оптимизация модели" в mdlvis и, для полного счастья, оптимизируем еще и этой программой. Так, на выходе, мы урезаем вес модели до невероятно низкого значения. Последний шаг оптимизации - Текстура. Тут все очень быстро и просто. Если текстура размером выше 256*256 - пережимаем её до этого максимального значения в 256*256 (для аттачей достаточно 128*128) и сохраняем через blplab с следующими параметрами: Количество текстур: 4(максимум 5) Качество JPG: 25(максимум 40)% Таким образом из текстуры весом в 600кб (512*512 100% quality 10 mipmaps) мы получаем текстуру весом 50kb (256*256 30% quality 4 mipmaps). Если не менять разрешение текстуры то вес можно снизить до 40-50 спокойно. Кстати, если используется измененная стандартная текстура то настоятельно рекомендуется в фотошопе удалить (альфа 255) все не использованные фрагменты текстуры. . Тогда параметры на пиксель будут 0\0\0\0, а номинальный вес файла немного снизится. ) Удачи тебе, картостроитель. | |
Просмотров: 1627 | |
Всего комментариев: 0 | |