AFrame + Three. js Что является более производительным между многими сетками с несколькими треугольниками в каждом и несколькими сетками с большим количеством треугольников в каждой? - PullRequest
0 голосов
/ 21 апреля 2020

Я использую Aframe 1.0.4 с тремя. js 111, и в настоящее время я пытаюсь понять, что является более производительным между - Несколько сущностей с большим количеством треугольников - Много сущностей с несколькими треугольниками каждый

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

Вообще говоря, я думаю, что

  • с большим количеством сущностей вносит накладные расходы из-за AFrame (мне пришлось бы загружать много gltf-моделей, компоненты сущностей повторялись бы с их галочками et c ) и ТРИ. js (чрезмерные вызовы отрисовки на графическом процессоре, загрузка, загрузка и т. д. c).
  • наличие нескольких крупных объектов приведет к более длительному времени загрузки (gltf-модель), возможно, к более интенсивному лучевому вещанию (но я не уверен в этом, пожалуйста, подтвердите), и, возможно, к более сложному управлению преобразованиями (масштаб / вращение et c) на ТРИ. js сторона

Вот некоторые средние числа в моей сцене:

  • количество сущностей составляет около 40 (простые этажи стены, крыши и более сложная мебель, такая как диваны, столы, полки и т. д. c), в дополнение к 2-10 источникам света с включенными тенями
  • одна общая полка имеет около 25K
  • треугольников один общий этаж около 800 треугольников

Я хотел бы знать следующее:

  1. Что лучше, вообще говоря, с точки зрения производительности, между несколькими объектами с большим количеством треугольников и множество объектов с несколькими треугольниками в каждом?
  2. Что лучше, если говорить о простых объектах, таких как этажи, между 3-4 этажами с 1K треугольников в каждом или 1000 этажами с 4 треугольниками в каждом? * 1 028 *
  3. Верны ли мои предположения, правильные выше?

Меня интересует как сторона THREE.js / GPU (время загрузки, вызовы отрисовки и т. Д. c), так и Aframe сторона (raycasting, накладные расходы компонентов и т. д. c.). Спасибо

1 Ответ

0 голосов
/ 22 апреля 2020

Определенно 4 этажа с 1k треугольников каждый лучше. 1000 отдельных сеток сразу убьют вашу производительность рендеринга. Вы хотите ограничить количество розыгрышей максимум несколькими сотнями. То же самое касается физики. Физика боеприпасов использует внутреннюю иерархию ограничивающих объемов, чтобы сделать расчеты столкновений более эффективными, поэтому для статической c геоимметрии определенно используйте большие сетки вместо множества маленьких.

...