Форум

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

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

Можно на тех местах, где дубли нужны, удалить их и просто сделать 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
Подскажите пожалуйста, несколько вопросов на тему производительности:

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

Буду благодарен за общие советы как делать максимально быстрые сцены.
13 июля 2015 18:23

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
2) Количество объектов влияет на производительность? Например, есть ли разница отрисовывать 100 кубиков отдельными объектами или один меш из ста кубиков?
Да влияет, один лучше, особенно если у всех кубиков разные материалы.
Но, если все кубики статические и имеют одинаковый материал, то разницы не будет. Но в общем случае - да. Лучше стараться объединить всё, что можно объединить. Хотя опять же, если в этом меше, состоящем из нескольких кубиков, на каждом из кубиков будет свой материал, то выгоды вы не получите.
20 июня 2017 16:39
Запечь предварительно кубамапу с окружения сцены и использовать её в материале.
Стандартными методами никак, появляется фиолетовый силуэт объекта. Как я понял все это делается через ноды, которые для меня тёмный лес. Нормального урока нету, везде уже заранее построены какие-то куча ноды, т.е. пропускаются моменты где что откуда взято и куда зачем пропихнули! Кстати со многими уроками, связанными с blend4web, такая же ситуация.
Пожалуйста, можете более подробно объяснить -
Как делать быстрый материал с имитацией отражения
. Это первое.
Второе: После того как сделаем этот материал, могу ли его применять(перетаскивая или копируя) к другим объектам, другой сцены, или же мне придется каждый раз заниматься "коммутаторскими" делами?

ЗЫ: Сам работаю в Cinema4D, там такого "геморроя" нет. Просто включаю envoirment map в материале и загружаю туда картинку. Потом просто применяю его к другим объектам.
21 июня 2017 14:41
Стандартными методами никак, появляется фиолетовый силуэт объекта. Как я понял все это делается через ноды, которые для меня тёмный лес. Нормального урока нету, везде уже заранее построены какие-то куча ноды, т.е. пропускаются моменты где что откуда взято и куда зачем пропихнули! Кстати со многими уроками, связанными с blend4web, такая же ситуация.
Пожалуйста, можете более подробно объяснить -
Вот здесь подробнийше описан процесс запекания кубамапы
Это первое.
Второе: После того как сделаем этот материал, могу ли его применять(перетаскивая или копируя) к другим объектам, другой сцены, или же мне придется каждый раз заниматься "коммутаторскими" делами?
Да конечно можете его применить на какое угодно количество объектов и так же на других сценах. Вот по суит самый простой пример испольования кубамапы в материале. Или же вот так:
cubemap_example.blend

ЗЫ: Сам работаю в Cinema4D, там такого "геморроя" нет. Просто включаю envoirment map в материале и загружаю туда картинку. Потом просто применяю его к другим объектам.
В Blender всё так же, а то может и в разы проще, всё дело в привычке.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.