2013-03-12 99 views
6

Sto usando il codice open source di David Piegza per visualizzare un grafico 3D Force-Directed usando Three.js. Il codice sorgente può essere trovato qui: https://github.com/davidpiegza/Graph-VisualizationUtilizzo del grafico 3D Force-Directed di David Piegza per LARGE Data; la visualizzazione è troppo lenta

Quando inizio a visualizzare più di 2000 nodi, le cose diventano MOLTO lente. La visualizzazione impiega circa 30 secondi per caricarsi, e la rotazione e il panning hanno un lungo ritardo. Quale potrebbe essere la causa di questo? L'algoritmo diretto alla forza? Javascript può gestire questo numero di nodi in un grafico 3D orientato alla forza? Esiste una sorta di algoritmo di abbattimento del back-face che posso usare per i grafici 3D, orientati alla forza?

risposta

4

Suppongo che l'algoritmo di layout diretto alla forza non sia il problema principale qui. Il principale sono le risorse GPU. Sto sviluppando un grafico Webgl 2D ora e uso le particelle per visualizzare i nodi (questo è molto più veloce del disegno dei cubi). E anche una tale realizzazione ha dei limiti di GPU. Puoi provare a ingrandire il grafico il più possibile e se la frequenza dei fps aumenterà di quanto il mio suggerimento è giusto (meno oggetti che vedi sullo schermo - GPU più veloce funziona).

+0

Una buona chiamata, sono i limiti della GPU. Inizierò a lavorare su un lavoro. Sembra usare le particelle, la fusione di geometrie e il caching sono cruciali. –

+0

P.S. Fammi sapere come va! Mi piacerebbe vedere la tua soluzione un giorno. –

+0

Il problema principale delle prestazioni sono i bordi e le etichette. Attualmente sto usando una mesh per tutte le linee (a distanza ravvicinata - per ottenere lo spessore della linea), Three.Lines (su lunga distanza) e particelle system per i nodi. Posso creare una griglia interattiva con nodi 10k/bordi 20k con 30 fps sulla mia GeForce GTS250, ma ci sono ancora molte cose da fare. Proverò a partecipare con la mia biblioteca su questo GSoC. – dIsoVi

Problemi correlati