Разница в Unity Combine Meshes и Instance Objects

Я серьезно нуждаюсь в оптимизации некоторых моих проектов Unity, и у меня так много объектов из 3DsMax, поэтому мне интересно, повлияет ли объединение сеток на память/производительность или я следует оставить объекты Instance друг для друга, так как это сэкономит мне немного места.

Возникает вопрос, в чем разница между комбинированными объектами-сетками и объектами-экземплярами, так как это сэкономит много памяти и хлопот, если действительно знать разницу и что лучше.

С нетерпением жду краткой информации о двух

Спасибо


person Syed Anwar Fahim    schedule 02.02.2017    source источник
comment
Он намного повышает производительность за счет сокращения числа вызовов отрисовки. Однако есть недостатки. См. это для полное объяснение.   -  person Programmer    schedule 02.02.2017
comment
Мне очень нравится ваша ссылка, и она многое объясняет, спасибо, но мой вопрос все еще остается без ответа, разница между ними и краткое объяснение   -  person Syed Anwar Fahim    schedule 02.02.2017
comment
Ваш первый шаг должен заключаться в том, чтобы определить, действительно ли количество имеющихся у вас мешей является основной причиной проблем с производительностью. Вы просматривали Unity Profiler, чтобы подтвердить свои подозрения по этому поводу? Вы не хотите тратить много времени на изучение угла, который все время оказывается отвлекающим маневром.   -  person Serlite    schedule 02.02.2017
comment
Я посмотрел на Profiler, основная проблема - это сетка и текстуры, так как я могу объединить некоторые текстуры в карту, чтобы сделать ее более эффективной, хотя и в ущерб качеству, но после этого у меня все еще есть большое количество объектов, которые использует те текстуры, которые делают 1,2 миллиона попыток, кроме всего моего проекта, состоящего из 2 миллионов попыток, что является большим числом для мобильных устройств.   -  person Syed Anwar Fahim    schedule 03.02.2017


Ответы (2)


Объединение полезно, если у вас есть много уникальных активов, которые появляются в сцене только один или два раза, например, уникальные здания в 3D FPS, но не клонированные дома в игре в стиле SimCity. Если у вас есть модель, которая появляется в сцене много раз, лучше использовать Unity (автоматически) batch их, это поведение Unity по умолчанию. например, допустим, ваша сцена находится в художественной галерее; если в галерее есть дюжина разных скульптур, объедините их. Если он содержит дюжину одинаковых скульптур, не беспокойтесь, Unity подготовит их для вас.

Однако вам следует с осторожностью использовать различные материалы. каждый материал увеличивает количество отрисовок. Итак, если у вас есть 10 одинаковых моделей, но с использованием 5 разных материалов, это будет дорого. Обойти это можно, используя атлас текстур с одним материалом, с разным UV-отображением для каждой модели. Это означает, что у вас есть много разных моделей, но вы экономите время на рендеринге из-за одного материала.

Кроме того, имейте в виду, что прозрачные шейдеры намного дороже, чем непрозрачные, если у вас есть три полупрозрачных объекта друг перед другом, это как минимум 4 прохода рендеринга.

Как вы, наверное, знаете, это сложная тема с множеством переменных (намного больше, чем я могу описать здесь), и лучше всего судить об этом с помощью профилировщика.

Вот несколько общих практических правил, которые я усвоил, создавая игру для мобильных устройств, которая, естественно, критична для производительности:

  • Используйте как можно меньше материалов
  • Используйте как можно меньше текстур, делитесь текстурами между материалами
  • Перерабатывайте модели как можно чаще. Часто модель, ориентированная под другим углом или из другого материала, может показаться игроку совершенно новой моделью, особенно если его внимание сосредоточено на другом месте игры.
  • Активно используйте LODS.
  • Убедитесь, что ваши модели чисты, удалите все ненужные вершины перед импортом
  • После импорта подумайте, есть ли в модели что-то, что можно было бы представить с меньшим количеством вершин.
  • Хорошее использование карты нормалей может окупиться в зависимости от платформы. Если вы можете обменять 1000 верт на карту нормалей 256 пикселей и 50 верт, то сделайте это, в противном случае не беспокойтесь о картографировании нормалей только для того, чтобы сэкономить несколько верт
person Absinthe    schedule 04.02.2017
comment
Хорошо... Спасибо... Но я думаю, что если я комбинирую текстуры, скажем, для создания атласа, то как я буду следить за визуальным качеством? Трудно сделать атлас и надеяться, что качество будет таким же ? - person Syed Anwar Fahim; 06.02.2017
comment
Никакой разницы в качестве нет, если ничего не менять. Атлас не означает меньше — это всего лишь один огромный файл вместо множества больших файлов. gamasutra.com/view/feature/2530/ - person Absinthe; 06.02.2017

Я создал учебник, в котором объясняются вызовы отрисовки, статическая пакетная обработка, карты освещения и т. д.

https://www.youtube.com/watch?v=x0t2xylbTo8&t=253s

person Bromox    schedule 06.02.2017