Three.js - Вопросы о (использовании) THREE.BufferGeometry
Как я понял, использование геометрии буфера повысит производительность и уменьшит использование памяти, поскольку снижает стоимость передачи всех этих данных в графический процессор.
И как я понял из @WestLangley его пост здесь:
THREE.BufferGeometry
медленно заменяетTHREE.Geometry
поскольку это вычислительно более эффективно.
Я в настоящее время использую Three.js - R72.
Когда я рисую свои геометрии, создаю сетки и добавляю их в сцену, я вижу, что в моих геометриях есть два свойства __directGeometry
а также _bufferGeometry
,
Здесь в THREE.BoxGeometry
:
Здесь в THREE.Geometry
:
Здесь в THREE.ShapeGeometry
:
Мои вопросы:
- Что такое
THREE.DirectGeometry
и что это делает? (Я не могу найти какую-либо документацию по этому вопросу) - Это
THREE.BufferGeometry
Хранится в_bufferGeometry
уже автоматически используется? Если нет, могу ли я просто использовать его вместо своей геометрии для повышения производительности? - Есть методы конвертации:
THREE.BufferGeometry
имеетtoGeometry
а такжеTHREE.Geometry
имеетtoBufferGeometry
, Если я преобразую все мои нормальные геометрии в буферные, используя этот метод, это даст мне такое же увеличение производительности по сравнению с их отрисовкой в видеTHREE.BufferGeometry
с самого начала? - Как и когда я должен использовать
THREE.BufferGeometry
? - Когда прекратится поддержка Three.js
THREE.Geometry
в пользуTHREE.BufferGeometry
?
ПРИМЕЧАНИЕ: я не смог найти подробную информацию о том, когда и как использовать геометрию буфера или когда он собирается заменитьTHREE.Geometry
, Но если у кого-то есть хороший источник или ссылка, пожалуйста, оставьте комментарий.
1 ответ
__directGeometry
является внутренней структурой данных, используемой для перехода междуTHREE.Geometry
а такжеTHREE.BufferGeometry
, Не связывайтесь с этим.THREE.BufferGeometry.toGeometry()
а такжеTHREE.Geometry.toBufferGeometry()
удобные методы. Первый полезен, если ваша модель загружается какBufferGeometry
и вы чувствуете себя более комфортно манипулируяGeometry
, Если вы хотите получить ответы на вопросы о производительности, вам необходимо пройти тест. Геометрия буфера определенно загружается быстрее.- Есть много примеров, показывающих использование
BufferGeometry
, Было бы разумно, если бы вы поняли разницу между "проиндексированными" и "неиндексированными"BufferGeometry
,BufferGeometry
сindex
определенный атрибут допускает совместное использование вершин. Не индексированныйBufferGeometry
это то, что мы называем "суп из треугольников". THREE.Geometry
останется в обозримом будущем.
Three.JS R.73