Быстрее! Выше! Сильнее! Аналитика производительности 3D в Tangl и не только…

13 июня 2024

Хотелось бы обсудить влияние моделей и их наполнения на работу в 3D. Это касается не только нашего вьювера Tangl, но и других приложений.

В первую очередь это касается 3D-графики, работающей в браузере. Многие не понимают, как всё устроено и часто задают вопросы о железе и оптимизации моделей.

На этот вопрос не так просто ответить.

Почему у меня не тянет?

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

Если речь идёт о мобильных устройствах, то мы хотим узнать, какие из них больше подходят. Если речь идёт о стационарных компьютерах или ноутбуках, то мы хотим понять, какие компоненты обеспечивают наилучшую производительность. 

Вопрос, который можно задать в этой теме: «Почему у меня возникают проблемы с производительностью модели или почему она работает плохо?» Ответ на него может быть в модели или в оборудовании.


Мы имеем две противоположные стороны: модель, которая может быть тяжёлой, и мощное оборудование, которое пытается обеспечить её работу. Если возникает проблема, то кто-то должен победить, а кто-то — нет, но в реальности всё сложнее.

Поэтому мы разберём, как каждая сторона влияет на производительность моделей, т.е. на скорость работы с моделями во вьювере, а также рассмотрим, какое оборудование и в каком виде влияет на производительность в целом. Мы будем говорить преимущественно о 3D-вьювере, потому что наши пользователи работают с ним.

А что за модель?

Ещё несколько слов. Всё будет зависеть от того, какую модель вы выберете. Некоторые модели могут быть более сложными и содержать большое количество элементов и так далее. Конечно, производительность также будет зависеть от этого.

Мы производили тестирование на средней модели по сложности и весу. Она включала в себя некоторые дополнительные элементы, но не имела арматуры.



С одной стороны, эта модель не самая тяжёлая – бывают модели и тяжелее. С другой стороны, она и не самая лёгкая. Это некая промежуточная модель.

Секреты готовки

Хочу добавить ещё один момент: все тесты проводились с использованием максимальной графики.

А что такое максимальная графика? Если мы зайдём в настройки вьювера, то увидим, что все пункты здесь включены:


У нас есть функция прогрессивного рендеринга, значительно повышающая производительность. Она анализирует элементы сцены и отключает те, что замедляют навигацию, что также ускоряет процесс.

Замеры проводились при отключённом прогрессивном рендеринге и с максимальной графикой, что важно, потому что на слабом устройстве модель может работать медленно.

Есть несколько графических настроек, которые существенно влияют на производительность, и чем слабее устройство, тем заметнее это влияние. На мощных устройствах, таких как серии Adreno 740, 750, 730 и 660, оно может быть не таким заметным, но на слабых устройствах может стать ощутимым.


Прежде всего, стоит включить прогрессивный рендеринг. Однако, есть и другие параметры, которые можно отключить для повышения производительности на слабых устройствах.

Например, можно отключить сглаживание контуров и опцию «Небо». В результате вы можете заметить увеличение производительности. 

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

Классификация производительности от шефа

Мы оценили все устройства по нашей собственной шкале, которая варьируется от «Ужасно» до «Огонь».

  • Ужасно — это значит, что с данной моделью было довольно сложно работать. Наблюдались заметные задержки, выделение элементов было затруднительным. В целом, устройство можно назвать не очень эффективным.

  • Плохо — это уже лучше, но всё же ощутимые задержки присутствуют. Тем не менее, работу с устройством можно назвать комфортной. Если необходимо выполнить какие-либо действия с моделью, например, просмотреть свойства элемента, найти его в дереве и выделить, то это можно сделать, но процесс не будет очень удобным.

  • Сомнительно но окей — Это уже устройства с небольшими задержками, но не такими явными. Работа с ними достаточно оперативна. Нельзя сказать, что они обладают супер производительностью, и анимация вращения модели не будет плавной, но подтормаживаний нет.

  • Хорошо — это устройства, на которых модель работает быстро и без каких-либо задержек, обеспечивая максимальный комфорт при использовании.

  • Огонь — Эти устройства обладают избыточной производительностью, которая не всегда является преимуществом. На устройствах категории «Огонь» это означает способность без задержек работать с более сложными моделями.

Что там по железу?

Начнём с оборудования. Мы могли бы начать с модели, но для себя мы решили исследовать производительность оборудования.



Важно разделить мобильные и стационарные устройства: компьютеры и ноутбуки. У каждого есть свои особенности.

Мобильные GPU

Начнем с мобильных устройств. Они кажутся менее мощными, но это не всегда так. На Android есть множество устройств, и не всегда понятно, как их различить.


Если вы хотите работать с моделями на мобильных устройствах, то у вас есть несколько основных игроков:

  1. Устройства Apple - у них есть графический чип, встроенный в процессор, который называется A-серия.

  2. Устройства на базе процессоров Qualcomm - у них есть видеокарты, которые называются Adreno.

  3. Устройства на процессорах ARM - у них тоже есть технология встроенных видеокарт, называется Mali.


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

Adreno – весело и вкусно!


Начнём с Adreno, так как это наиболее популярная технология в устройствах среднего ценового сегмента. В качестве основы мы взяли две последние линейки графических процессоров (GPU) — шестую и седьмую серии.


В таблице представлены следующие колонки:

  • Модели устройств или видеоадаптеров;

  • Процессоры, которые используются в этих устройствах;

  • Примеры конкретных моделей гаджетов, где можно встретить данные процессоры;

  • Баллы 3D Mark — результаты тестирования производительности видеокарт.

  • Условная классификация, которую мы сделали, позволяет быстро понять, насколько хорошо работают различные устройства.

Баллы 3D Mark показывают, насколько устройство справляется с задачами, связанными с 3D-графикой. Эта информация позволяет сравнить производительность разных устройств. В результате нашего теста и визуальной классификации, наша собственная оценка работы эталонной модели совпала с этими баллами.

Устройства на базе GPU Adreno отличаются высокой производительностью и подходят для игр и работы с графикой. Есть и другие модели, предлагающие ещё более мощные возможности.

Устройства Adreno демонстрируют отличные результаты и обладают достаточной мощностью для большинства задач. Наиболее предпочтительной является седьмая серия, которая значительно улучшила производительность по сравнению с прошлыми версиями. Например, модель 710 выдаёт около 5000 баллов. Существуют и другие модели с более высокими баллами. Но седьмая серия является наиболее предпочтительной для большинства задач. 

Встроенные видеокарты Intel в ноутбуках значительно уступают флагманским устройствам, что удивительно! 

Флагманские устройства с Adreno стоят дорого, но есть и более доступные модели, которые тоже показывают отличные результаты. Например, Huawei Mate Pad 11 2023 года – это отличный планшет, который стоит дешевле, чем Samsung Galaxy Tab S9, но при этом предоставляет хорошие результаты.


Желательно выбирать старшие модели из серии Adreno. Младшие версии, например, 610 и 710, значительно уступают другим моделям этой линейки и были разработаны специально для бюджетных устройств. 

Ещё раз повторю: не стоит выбирать модели 610 и 710. Это не самые удачные варианты, они предназначены для бюджетных устройств.

Mali - невкусно и грустно!


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

Устройств Mali на самом деле много, но я оставил здесь только самые популярные и представляющие среднюю и флагманскую линейки. Причина в том, что устройства Mali значительно уступают по производительности устройствам Adreno. Они сильно проигрывают в производительности, причём практически вся линейка.


Например, устройство G51 даёт всего 850 баллов, что совершенно неприемлемо. Даже самое слабое устройство седьмой серии - 710, даёт 5000 баллов. А здесь мы видим всего 850, что никуда не годится.

Конечно, старые устройства дают больше баллов, но по сравнению с седьмой серией это ничто. Она выдаёт 15000, 30000 и 25000 баллов, что гораздо лучше. Поэтому при равных условиях я бы не рекомендовал устройства с видеоадаптерами Mali и процессорами Kirin или Dimensity, за исключением флагманских. Они дают 13000 баллов, что очень плохо по сравнению с Adreno, но по сравнению со всеми остальными — вполне нормально. 

В качестве представителя этого семейства можно рассмотреть планшет OnePlus. Он стоит своих денег и предлагает хорошее соотношение цены и качества. Многие планшеты с худшей производительностью стоят дороже.

Apple -вкусно и точка!


Устройства Apple показывают хорошую производительность, независимо от модели. Айфоны и айпады не являются лидерами по характеристикам, но демонстрируют достойные результаты.


По результатам тестирования, их баллы варьируются от 10 000 до 11 000 или даже 15 000. Это меньше, чем у флагманских моделей Adreno, но всё равно неплохо.

Интересно, что даже на старых устройствах наша эталонная модель работает без сбоев: навигация работает отлично, отклик быстрый, и всё в целом работает хорошо. Да, у этих устройств не самые высокие баллы, но они всё равно показывают отличную производительность.

Конечно, эти устройства хороши, но, к сожалению, они довольно дорогие.

Десктопные GPU

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


  • NVIDIA - Компания занимается производством дискретных видеокарт. Они не интегрированы в процессор и устанавливаются отдельно в ноутбуки или стационарные компьютеры. 

  • Intel - производит не только процессоры, но и встраиваемые решения, включая видеокарты, известные под названием Iris XE. 

  • Apple - как и Intel производит собственные процессоры со встроенными графическими чипами.

AMD — крупный производитель процессоров и видеокарт. В отличие от других компаний, специализирующихся на определенных типах продукции, у AMD есть как встроенные, так и дискретные видеокарты. Мы не тестировали сборки на основе процессоров и видеокарт этой компании, но я уверен, что мы обязательно проведём такое тестирование в будущем. 

Есть видеокарта - значит игровой!


В ноутбуках и настольных компьютерах используют разные типы видеокарт. В ноутбуках обычно установлены встроенные видеокарты, а в игровых — дискретные.

Но так ли это на самом деле?


Если вы открываете в браузере 3D-контент, по умолчанию браузер использует встроенную видеокарту. Но, если у вас есть дискретная видеокарта NVIDIA или Intel, вы можете её использовать. На разных системах это делается по-разному.

Если модель в браузере тормозит, возможно, игровая видеокарта не используется, потому что настройки установлены таким образом, чтобы браузер использовал встроенную видеокарту.

Дискретная видеокарта нужна для игр и работы с 3D-графикой в программах типа 3D Max или Unreal Engine. Но если вы работаете в Revit, разница в производительности между использованием видеокарты Nvidia и встроенной может быть незначительной.

Наше исследование показывает: использование игровых видеокарт, как Nvidia, даёт значительный прирост производительности при работе с моделями в веб. Заодно можно и поиграть.


Все понятно без слов


Вот таблица, похожая на ту, что у нас была для мобильных решений:


В таблице представлены модели графических процессоров. Также указаны баллы, но это не результаты 3D Mark, а наши собственные оценки, Tangl. Как мы их рассчитывали и откуда они взялись?

Мы до этого дойдём. Но действительно, нам не нужен 3D Mark, потому что мы сделали свой бенчмарк и очки.

Я могу сразу обратить ваше внимание на несколько моментов в результатах.

Intel - даже не смешно


Встроенные видеокарты Intel Iris XE, даже новые модели 2022-2023 годов, показывают неутешительные результаты. Самая новая модель набрала около 4700 баллов, а старые показали ещё более слабые результаты. Эти видеокарты не обеспечивают высокую производительность по сравнению с Adreno 740 и 750 в мобильных устройствах.

Если у вас ноутбук бизнес-серии с видеокартой Intel без дискретной Nvidia, вы можете столкнуться с проблемами производительности. Он будет крутить модель на уровне среднебюджетных телефонов на Adreno, что довольно обидно.

Apple - потянет, но есть нюанс


Apple не имеет дискретных GPU, что означает, что они не имеют собственных ядер, памяти, охлаждения и питания. В отличие от видеокарт на чипах, они используют оперативную память компьютера и питание процессора. На этом фоне Apple выглядит неплохо: в нашем рейтинге их система набирает около 17 000 баллов.

Apple может работать на высоком разрешении 4000 × 3000 пикселей. Ноутбуки с приставкой Pro позиционируются как устройства для работы, включая сложные задачи и 3D-графику. Без приставки Pro ноутбуки предназначены в основном для развлечений и дают слабые результаты в 3D.

Nvidia - нас не догонят


Даже старая видеокарта GTX 670 работает быстрее, чем ноутбук на базе Intel. Удивительно, но это факт!

Первая серия не сильно отличается от нулевой, поэтому их можно не рассматривать отдельно. Вторая серия лучше, но тоже без кардинальных изменений. А вот третья серия показала отличный результат. На картах четвёртой серии мы пока не смотрели. Но я думаю, что они будут ещё лучше.

Что там по моделям?

Далее мы разобрались с моделями и хотим поделиться с вами результатами нашего исследования.

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


Почему это важно? Потому что, когда мы не проводили более глубокого анализа, клиенты часто спрашивали нас: «Какие модели вы считаете лёгкими, а какие — тяжёлыми?» Мы обычно отвечали примерно так: «Модель с количеством элементов до 40 000 мы считаем лёгкой, до 100 000 — средней, а свыше 200 000 — тяжёлой».

Однако теперь мы понимаем, что такой подход не всегда точен. Модель из десяти элементов никогда не будет тяжелее модели из 100 000, это очевидно. Но при более детальном рассмотрении мы обнаружили, что количество элементов не всегда является определяющим фактором.

Есть модели, которые мы протестировали, и они есть в нашей выборке, например, с 20 000 элементов, но они оказываются гораздо тяжелее, чем модели со 100 000. Поэтому, при выборе модели, не стоит ориентироваться только на количество элементов.

В чем правда, брат?


Тогда возникает вопрос - на что ориентироваться? Что самое тяжёлое или что больше всего влияет на производительность модели?

Во вьювере, при прочих равных условиях, два момента влияют на это больше всего. 

У создателей семейств нет цели – есть только путь


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

Например, излишне детализированные семейства — это бич Бим-моделей. Производители семейств не всегда хорошо представляют, как это будет влиять на работу не только в Revit, но и в других системах, таких как Forge или Tangl.


В Revit сверхдетализированные семейства не так критичны, ведь геометрия в САПР-системах параметрическая. Поэтому даже при наличии такого семейства это не будет сильно обременительно.

Но если мы говорим о системах, работающих с готовыми моделями и триангуляцией, то видеокарте будет тяжело работать с этими моделями, поэтому стоит тщательно продумать, насколько это нужно и кому.


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


Само семейство может быть очень простым, но вот рисунок, эмблема, циферблат и т.д. могут быть в 10 раз тяжелее по геометрии, чем остальная часть семейства.


На самом деле, можно просто избавиться от этих мелких, никому не нужных деталей, и модель станет гораздо проще. 

Атака клонов


Второй по важности фактор, влияющий на производительность модели — наличие правильно сохранённых клонов однотипных элементов.

Это сильно влияет на производительность и в некоторых случаях модель даже невозможно открыть во вьювере. Обычно это не касается моделей, экспортированных напрямую из Revit в Tangl, но актуально для моделей, поступающих из IFC. 

Во многих моделях из IFC есть одна общая проблема — типовые элементы не сохранены оптимальным образом в виде инстансов. О чём идёт речь? В моделях часто присутствует огромное количество одинаковых элементов: сантехника, оборудование, окна, двери и т.д. Это большая часть модели. 

Всё это — клоны, и идея в том, что нам не нужно сохранять все копии в модели по отдельности. Хорошая система и хороший экспортёр, например, в IFC, должны это учитывать.


Допустим, у меня есть миллион унитазов. В модели я должен сохранить один унитаз и миллион точек, где его разместить, а не миллион унитазов. Тогда моя модель будет в миллион раз меньше, потому что она будет размещаться в миллионе разных мест.

Ну ладно, не в миллион раз, но всё равно значительно уменьшится. И дело в том, что к нам часто приходят модели, в которых нет инстансов вообще.

"Тёмной стороной наш мир окутан. Война клоническая началась." (Магистр Йода).

Например, есть модели, в которых арматура пронизывает всё здание. Это нормально. Можно армировать всё здание, но есть проблемы с выгрузкой этой арматуры из Revit и IFC.


Как я уже говорил, арматура может быть не сохранена не инстансами. Поскольку арматуры много, она будет слишком тяжёлой. Причем арматура может занимать примерно 98% от всей геометрии.

А если проверю?

Как узнать, подходит ли модель под мои задачи и выдержит ли их мое оборудование?


Мы создали систему оценки моделей, которую назвали Tangl Performance. Она состоит из двух ключевых показателей: Model score и Performance Score


Во вьювере она доступна в окне просмотра модели. Открыть саму панель бенчмарка можно, нажав на инструмент на панели вьювера в виде флага.


В данном окне верхнее число определяет тяжесть модели, которая открыта в данный момент. Нижнее - производительность железа при навигации. Это число пересчитывается постоянно при кручении, приближении/отделении, перемещении. Цвет этих чисел дает оценочное представление:

  • Зеленый - лёгкая модель, хорошая производительность железа. Навигация будет происходить легко, без зависаний;

  • Желтый - модель средней тяжести, приемлемая, но не идеальная производительность железа при работе с данной моделью. При навигации может подтормаживать, но работать можно;

  • Красный - тяжелая модель, плохая производительность железа. Будет очень тяжело или вообще невозможно работать с данной моделью.

Что мы получили в итоге


Мы протестировали различные модели, которые у нас есть, в том числе тестовые. Они отличаются по размеру и объёму. Результаты показали, что количество элементов в модели не сильно влияет на её производительность.


У нас есть несколько колонок:

  • Количество элементов в модели — модели представлены по возрастанию, начиная от небольших моделей с 3000 элементами и заканчивая крупными моделями с 2 606 000 элементов;

  • Performance Score — рейтинг производительности железа на этих моделях;

  • Model Score — которые эти модели набрали; 

  • Удельный Model Score — делённый на количество элементов. То есть это средний балл на один элемент.

Мы видим, что модель с 19600 элементами имеет низкую производительность и у нее всего 313 очков. Вероятно, в этой модели много неоптимизированных элементов. 

С другой стороны, есть модель с 82000 элементами и 137 очками. Это довольно хороший показатель для такой модели.


Мы создали график на основе данной выборки. На графике видно, что Model Score хорошо соотносится с Performance Score. Разброс значений небольшой, что говорит о корректности их оценки. 


Второй график показывает количество элементов относительно Performance Score. Мы видим, что здесь нет линий графика, а есть заполненная область. Это означает, что количество элементов не влияет на что-либо. Они не сосредоточены в одном месте на линии графика, а заполняют пространство.

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


13 июня 2024
15 мин.
903
Ответим в чат-боте за 5 минут!