Внимательно изучите освещение в вашей сцене и оставьте только то что действительно необходимо. Например - с последними обновлениями Mesh Light стал работать быстрее и аккуратнее чем Area Light
Модификатор, который сокращает полигональную плотность в процентном соотношении. Приходится сильно на руку, когда необходимо быстро сократить количество полигонов у сильно детализированных мешей. А еще он в большинстве случаев сохраняет UV, поэтому текстуры останутся на местах. Это, пожалуй, самый простой способ оптимизировать сцену.
Однако, он подгружает систему когда считает полигоны, что сказывается на работе во вьюпорте, и порой на рендере. Поэтому лучше применять изменения сразу, чтоб не грузить систему дальнейшими дополнительными просчетами. Да, процесс становится деструктивным для топологии, но никто не мешает вам сохранить бэкапы оригинальных моделей в отдельной коллекции.
Также важно понимать, что если вы используете метод батчинга, описанный выше, то модификатор, примененный к одной инстанции, не будет применен к другим, и связь объектов разрушится. Если вы хотите применить модификатор к сбатченному объекту, то применяйте его сразу ко всем. Лучше всего изначально применить модификатор к оригинальному объекту, и при дубликации инстанций он будет автоматически применен ко всем. (а еще лучше его сразу применить (apply), а потом уже размножать инстанции) И, очевидно — значения модификаторов должны быть одинаковыми.
Делайте ретопологию, если вдруг вы ее не делаете. Но и не всегда она нужна, но вы и сами знаете. А если чувствуете, что вас не хватит сделать ее по-человечески руками, то просто воспользуйтесь очередным бесплатным и открытым софтом — Instant Meshes. Он все сделает за вас, вы и не заметите — работает, что называется, instantly. В блендере есть Remesh Modifier, который тоже все сделает за вас (но не факт, что хорошо)
1. Расстановка приоритетов размера текстур
Расставляйте приоритеты - все, что большое или близко камере — в 4k и более, остальное — 2k и менее.
2. Рендер текстур не в .png
Самый простой и достаточно эффективный способ оптимизировать текстуры.
.JPG файлы весят сильно меньше (в среднем раза в 4) — и это главный аргумент. Чисто с технической точки зрения .jpg содержит в себе намного меньше информации, чем 16-битный .png. Но это не страшно, и играет роль исключительно при работе с картами типа displacement, normal и height. В ином случае текстуры в пнг - просто трата ресурсов.
Как мы помним, перед началом рендера все текстурные карты, используемые в сцене, загружаются в видеопамять. То есть если на один материал у вас используется, скажем, 5 изображений (base color, metallic, roughness, height, normal), а текстур у вас 21, то в память загружаются 105 изображений соответственно.
Когда вы копируете объект (именно копируете через Ctrl+C → Ctrl+V, блендер считает, что это целиком и полностью новый объект, и не переносит материал, а создает его уникальную копию. Так, скопированный объект с материалом под названием «ass» при вставке станет объектом с материалом «ass.001».
Более того, все текстурные карты тоже изменятся. Например, если оригинальный материал «ass» имел три карты:
- «ass_albedo»,
- «ass_roughness»
- «ass_normal»
то новый материал — «ass.001» будет иметь карты:
- «ass_albedo.001»
- «ass_roughness.001»
- «ass_normal.001»
А это уже совсем другие карты, и загружаться в видеопамять они будут как отдельные изображения.
В общем, держите количество материалов строго равным количеству уникальных элементов.
А вообще копируйте элементы через Shift+D, чтобы сохранить оригинальные материалы, или Alt+D, если вы хотите указать блендеру на то, что объекты полностью идентичны. А меню Ctrl+C → Ctrl+V юзайте для всего остального.
Но как быть, если вы уже наблюдаете в списке материалы типа «ass.027»?
Вы можете выбрать все одинаковые объекты, которых в нашем случае 28, нажать Ctrl+L, и связать информацию об объекте между ними.
Одно но: если объекты имеют множественные связи с другими объектами, эти связи могут все сломать.
Прожимая Ctrl+L, вы можете связать не только всю информацию об объектах, но и отдельно информацию о материалах (Make Links → Materials - Такой ход конем просто оставит одинаковый материал на всех n объектах, и ничего не сломает.)
Остался вопрос:
как быть с осиротевшими 27-ю копиями материала?
Ненужные материалы и текстуры не стоит хранить в проекте. Возможно, это не сильно скажется на производительности, но все же в какой-то степени поможет. Для того чтобы удалить все ненужные материалы, объекты и т.д. из проекта в блендере есть кнопки purge/purge all в подразделе Orphan Data