Форум

Оптимизация перед экспортом

01 июля 2015 22:04 #2888
Добрый вечер. Попросили меня нарисовать грубенькую модель одного устройства, что бы потом выложить на сайт. Для рисовки использовал sketchup (переучиваюсь потихоньку на blender ). После чего экспортировал модель в .dae и импортировал в blender. И всё смотрится хорошо, если бы не размер финального экспортированного .html файла в ~10mb.
Какие можно провести операции в blender что бы особо не трогать видимую геометрию и уменьшить вес финального файла?
Приложил nasos.blend и nasos.html
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
02 июля 2015 10:02 #2889
Добрый день.
Посмотрел вашу модель в приложении "Viewer". У вас очень высокополигональная модель. Только одной геометрии у вас на 6,6 Мб. Остальное это данные из Blender'a (104,1 кб), минифицированная версия движка, приложение "Webplayer".
Еще заметил, что используется много похожих материалов (на целых 15 draw call'ов и 14 шейдеров). Можно использовать вообще один материал с использованием текстурного атласа, к примеру
Разработчик Blend4Web
02 июля 2015 10:25 #2890
Также следует отметить, что HTML формат предназначен для удобства обмена файлами. Для продакшн рекомендуем использовать гораздо более эффективный JSON формат.
Руководитель разработки
02 июля 2015 14:00 #2898
Да я заметил, что перегруз с полигонами. Думал вдруг в блендере есть какие способы автоматической оптимизации. Но удаление дублей вершин даёт битые поверхности. От decimate в данном случае тоже пришлось отказаться. Буду искать другие пути импорта в блендер.
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
02 июля 2015 14:51 #2901
удаление дублей вершин даёт битые поверхности.

Можно на тех местах, где дубли нужны, удалить их и просто сделать Edge Split: либо просто выделить лупкат и нажать V, что отсоединит вершины, либо выделить все нужные лупкаты, затем ctrl+e -> mark sharp, после добавить модификатор Edge Split и в его настройках снять галку Edge Angle

Начать советую с удаления дублей, затем лучше поправить нормали (ctrl+n) и превратить все полигоны в четырехугольники (выделить все вершины -> alt+j), чтобы было удобнее разбираться) Ну, и потом Edge split
3D Художник (Generalist), администратор конкурсов,
команда Blend4Web
арт блог: http://contret-art.tumblr.com/
13 июля 2015 18:07 #3007
Подскажите пожалуйста, несколько вопросов на тему производительности:

1) Как делать быстрый материал с имитацией отражения, в версии 15,06
2) Количество объектов влияет на производительность? Например, есть ли разница отрисовывать 100 кубиков отдельными объектами или один меш из ста кубиков?
2) Какие ноды самые тормозные?
3) Что лучше, одна большая текстура или несколько маленьких? (при условии одинакового объема файлов)
4) Есть ли какие-то рекомендации по UV, например, привязывать вершины к пикселям или делать меньше швов? (с точки зреня производительности).

Буду благодарен за общие советы как делать максимально быстрые сцены.
https://sketchfab.com/engine9/models
13 июля 2015 18:23 #3008

1) Как делать быстрый материал с имитацией отражения, в версии 15,06
Запечь предварительно кубамапу с окружения сцены и использовать её в материале.

2) Количество объектов влияет на производительность? Например, есть ли разница отрисовывать 100 кубиков отдельными объектами или один меш из ста кубиков?
Да влияет, один лучше, особенно если у всех кубиков разные материалы.

2) Какие ноды самые тормозные?
Ноды из Color Mix - (Overlay, Burn, Hue, Saturation Dodge) и ноды Squeez Value (хорошо заменяется специальной нодовой группой B4W_SMOOTHSTEP) и нода Hue/Saturation .

3) Что лучше, одна большая текстура или несколько маленьких? (при условии одинакового объема файлов)
Лучше одна большая.

4) Есть ли какие-то рекомендации по UV, например, привязывать вершины к пикселям или делать меньше швов? (с точки зреня производительности).
По сути места швов разрезаются при рендеринге и получается что в этих местах вертексы рендереяться по двое, соответственно лучше меньше швов. И если использовать Enge Sharp с соответствующим модификатором, то лучше объединять Edge Seams с Sharp Enges.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
13 июля 2015 18:27 #3009
2) Количество объектов влияет на производительность? Например, есть ли разница отрисовывать 100 кубиков отдельными объектами или один меш из ста кубиков?
Да влияет, один лучше, особенно если у всех кубиков разные материалы.
Но, если все кубики статические и имеют одинаковый материал, то разницы не будет. Но в общем случае - да. Лучше стараться объединить всё, что можно объединить. Хотя опять же, если в этом меше, состоящем из нескольких кубиков, на каждом из кубиков будет свой материал, то выгоды вы не получите.
Разработчик Blend4Web
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.