Будет ли более производительно для трех. js загрузить me sh, который уже был триангулирован, чем me sh с использованием четырехугольников? - PullRequest
2 голосов
/ 06 августа 2020

Я читал, что 3. js триангулирует все мои sh лица, это правильно?

Затем я понял, что большинство моделей gltf, которые я использовал, имеют четырехугольные грани. Триангулировать грани в Blender очень легко, поэтому мне любопытно, приведет ли предварительная триангуляция граней к более быстрой загрузке меня. sh?

Заранее спасибо, и если у вас есть другие советы по производительности три. js и gltf (помимо перечисленных в https://discoverthreejs.com/tips-and-tricks/), которые были бы очень полезны!

1 Ответ

2 голосов
/ 06 августа 2020

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

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

  • Комбинируйте материалы, когда это возможно, чтобы уменьшить количество вызовов отрисовки.
  • Комбинируйте сетки / primitives, когда это возможно, также для уменьшения количества вызовов отрисовки.
  • Имейте в виду, что прерывистые нормали / UV увеличивают количество вершин (опять же из-за атрибутов вершин).
  • Избегайте создания текстур, заполненных solid цветами . Вместо этого используйте входы узлов цвета / значения по умолчанию в Blender.
  • Сохраняйте размеры текстур удобными для веб и степенью двойки. Мобильные клиенты иногда не могут обрабатывать ничего больше 2048x2048. Можно также попробовать 1024x1024 и т. Д. c.
...