2013-05-28 6 views
3

Я ищу наиболее эффективный способ загрузки больших многоугольных сеток (до 1 М треугольников) в Three.js. Я рассматриваю возможность использования объекта THREE.BufferGeometry или загрузки THREE.BinaryLoader. Мои вопросы:Three.js - BinaryLoader против BufferGeometry для больших сеток?

  • ли BinaryLoader.js создать THREE.BufferGeometry объект под? Или он создает что-то подобное эффективно?
  • Если нет, есть ли у кого-нибудь рекомендации, какой из них использовать?

Некоторые дополнительная информация:

  • Мои модели в собственном формате на сервере, так что мне нужно конвертировать/кодировать их в любом случае.
  • Я не нашел загрузчик Three.js, который создает THREE.BufferGeometry. Похоже, мне нужно написать свое. Но я могу подготовить данные на стороне сервера для выравнивания с структурой THREE.BufferGeometry.
  • BinaryLoader.js предоставляет всю необходимую инфраструктуру для загрузки данных, но требует специальной подготовки данных на стороне сервера.
+3

CTMLoader создает BufferGeometry когда проинструктированы параметрами аргумента 'useBuffers: true' – gaitat

+0

@gaitat - спасибо! Это добавляет еще один вариант в таблицу. Разрабатывается ли OpenCTM? Я не видел обновлений за последние 15 месяцев. Другой альтернативой может быть [webgl-loader] (https://code.google.com/p/webgl-loader/), хотя я не уверен, что поддержка Three.js по-прежнему актуальна. Я хочу, чтобы у меня было время сравнить все эти альтернативы ... – Simon

+0

Я думаю, что OpenCTM сделал то, что он предполагал, поэтому нет необходимости в обновлениях. Веб-загрузчик также реализуется внутри three.js в 'UTF8Loader()', а также поддерживает BufferGeometry с тем же параметром. Кроме того, OpenCTM поддерживает WebWorkers. – gaitat

ответ

2

Посмотрите на формат glTF и glTFLoader для Three.js. Он использует BufferGeometry. Производительность намного лучше; однако он имеет свои собственные анимации (не использует THREE.Animation), и я столкнулся с несколькими проблемами, связанными с Three.js, такими как клонирование модели, не будет работать (по крайней мере, из коробки)

glTF: https://github.com/KhronosGroup/glTF

glTFLoader: https://github.com/mrdoob/three.js/blob/54a1e789c3a84557d6b05782f5cbd9f1064f5e4f/examples/js/loaders/GLTFLoader.js

+0

Ссылка на загрузчик больше не работает –

+1

@JorisMans i обновил ссылку – yash