2013-07-24 5 views
8

Я создаю сетку с экземпляром THREE.Geometry, затем динамически заполняя массивы геометрии vertices и faces. Геометрия итеративно уточняется, добавляя дополнительные вершины и грани на каждой итерации. Если я уточню геометрию, прежде чем добавить сетку в сцену, она будет корректно отображаться. Однако, если я добавлю сетку в сцену и сделаю ее, то измените ее, покажутся только начальные N-грани, которые отображаются в первой визуализации. Изменения положения вершин, используемых этими гранями, выполняются, но отображаются только те N-грани.Добавление геометрии в сетку three.js после визуализации

экземпляр геометрии отмечен dynamic = true, и я установить verticesNeedUpdate, elementsNeedUpdate и buffersNeedUpdate каждый раз после того, как изменения геометрии. Я также попытался установить все другие «грязные» флаги, хотя я только ожидаю, что вам нужно будет установить эти три (и даже тогда я не уверен, что мне нужно будет buffersNeedUpdate).

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

Что я делаю неправильно?

ответ

8

Предполагаете, вы используете WebGLRenderer.

Как указано в статье статьи How to Update Things, вы можете обновлять содержимое буферов, вы не можете изменять размер буферов.

three.js r.59

+0

А, я не видел эту страницу, спасибо. Так что в основном это неподдерживается. В этом случае я не могу предварительно выделить буферы, поскольку я не знаю заранее, насколько они будут большими. На этом этапе я удаляю сетку из сцены и создаю новую геометрию mesh + для каждого рендеринга, которая работает, но, вероятно, не очень эффективна ... Мне нужно подумать о способе предварительного выделения в блоков и только повторно создавать геометрию, когда я передаю предварительно выделенные размеры буфера или что-то в этом роде. – lharper71

+0

Эй, я делаю что-то подобное. Мне интересно, ты когда-нибудь это понял? Спасибо @ lharper71! –

+1

@ C.Windolf [This] (http://stackoverflow.com/questions/36426139/incrementally-display-three-js-tubegeometry/36439563#36439563) связанный ответ и [это] (http://stackoverflow.com/ вопросы/31399856/drawing-a-line-with-three-js-dynamic/31411794 # 31411794) может быть полезен аналогичный ответ. – WestLangley

Смежные вопросы