2013-07-24 12 views
8

Sto creando una mesh con un'istanza THREE.Geometry, quindi popolando gli array vertices e faces della geometria in modo dinamico. La geometria viene iterata in modo iterativo aggiungendo ulteriori vertici e facce ad ogni iterazione. Se affine la geometria prima di aggiungere la mesh alla scena, essa viene visualizzata correttamente. Tuttavia, se si aggiunge la rete al scena e renderla, quindi modificarlo, solo l'iniziale N affronta la geometria contenuta in prima rendering sono mostrati. Le modifiche alla posizione dei vertici utilizzate da quelle facce sono onorate, ma solo quelle facce N sono rese.Aggiunta di una geometria a una mesh three.js dopo il rendering

L'istanza geometria è contrassegnato dynamic = true, e impostare verticesNeedUpdate, elementsNeedUpdate e buffersNeedUpdate ogni volta dopo aver modificato la geometria. Ho anche provato a installare tutte le altre bandiere 'sporche', anche se ho solo aspetto di necessario impostare quei tre (e anche allora, io non sono certo avrei bisogno di buffersNeedUpdate).

Per quanto posso vedere, della geometria e geometryGroupgeometryGroupList sono in costruzione e popolato dalle facce che esistono quando la maglia è reso prima, ma non vengono ricostruiti per includere le facce aggiunti successivamente.

Cosa sto sbagliando?

risposta

8

presumo che si sta utilizzando WebGLRenderer.

Come indicato nell'articolo del wiki three.js How to Update Things, è possibile aggiornare solo il contenuto dei buffer, non è possibile ridimensionare i buffer.

three.js r.59

+0

Ah, non avevo visto quella pagina, grazie. Quindi in pratica questo non è supportato. In questo caso, non posso pre-allocare i buffer, poiché non so in anticipo quanto dovrebbero essere grandi. A questo punto, mi sto togliendo la maglia dalla scena e istanziare una nuova maglia di + geometria su ciascuna di rendering, che funziona, ma probabilmente non è molto efficiente ... dovrò pensare ad un modo per pre-allocare in blocca e ricrea solo la geometria quando passo le dimensioni del buffer pre-allocato, o qualcosa del genere. – lharper71

+0

Ehi - Sto facendo qualcosa di simile. Mi sto chiedendo, l'hai mai capito? Grazie @ lharper71! –

+1

@ C.Windolf [Questo] (http://stackoverflow.com/questions/36426139/incrementally-display-three-js-tubegeometry/36439563#36439563) risposta legati e [questo] (http://stackoverflow.com/ domande/31399856/disegno-a-line-con-tre-js-dinamico/31411794 # 31411794) risposta simile può essere utile. – WestLangley

Problemi correlati