Idee: come eseguire il rendering interattivo grandi serie di immagini utilizzando basata su GPU rendering volumetrico diretta

StackOverflow https://stackoverflow.com/questions/4255737

Domanda

Sto cercando l'idea di come convertire un + GB, 2000 + serie di immagini TIFF 30 colorato in un set di dati in grado di essere visualizzati in tempo reale (frame rate interattive) con volume rendering GPU-based (utilizzando OpenCL / OpenGL / GLSL ). Voglio utilizzare un approccio diretto volumi visualizzazione invece di montaggio di superficie (cioè raycasting invece di marciare cubi).

Il problema è duplice, prima ho bisogno di convertire le mie immagini in un set di dati 3D. La prima cosa che mi venne in mente è quello di vedere tutte le immagini come 2D texture e semplicemente impilare loro per creare una texture 3D.

Il secondo problema è il frame rate interattivi. Per questo io probabilmente bisogno di una sorta di downsampling in combinazione con "dettagli-on-demand" di caricare i-ad alta risoluzione insieme di dati durante lo zoom o qualcosa del genere.

Un primo approccio point-saggio che ho trovato è:

  1. poligonizzazione dei dati completi del volume tramite elaborazione di strato per strato e generando corrispondenti trama dell'immagine;
  2. effettuare tutte le trasformazioni essenziali attraverso operazioni del processore vertice;
  3. dividendo fette poligonali in frammenti più piccoli, in cui sono registrate le corrispondenti coordinate profondità e la struttura;
  4. in lavorazione frammento, la distribuzione della tecnica vertice programmazione shader per migliorare la resa di frammenti.

Ma non ho idee concrete su come avviare l'attuazione di questo approccio.

mi piacerebbe vedere alcune nuove idee o idee su come iniziare ad attuare il metodo sopra indicato.

È stato utile?

Soluzione

Se qualcuno ha idee fresche in questo settore, sono probabilmente andando a cercare di sviluppare e pubblicarli. Si tratta di una superficie continua di ricerca.

Nel vostro "Ricerca del punto-saggio", sembra aver delineato il metodo di base della fetta a base di volume rendering. Questo può dare buoni risultati, ma molte persone stanno passando a un metodo di hardware raycasting. V'è un esempio di questo nel CUDA SDK, se siete interessati.

Un buon metodo per il rendering volumetrico gerarchico è stato dettagliato per Crassin et al. nel loro articolo chiamato Gigavoxels . Si avvale di un approccio octree-based, che solo i carichi mattoni necessari in memoria quando sono necessari.

Un ottimo libro introduttivo in questo settore è Real-Time Volume Graphics .

Altri suggerimenti

ho fatto un po 'di volume rendering, anche se il mio codice generato un isosurface utilizzando cubetti di marcia e visualizzato quello. Tuttavia, a mio modestissimo auto-educazione di rendering volumetrico ho incontrato un interessante breve documento: Volume Rendering su Comune Computer Hardware. Viene fornito con sorgente di esempio anche. Non ho mai avuto intorno ad estrarlo ma sembrava promettente. Si è DirectX, però, non è OpenGL. Forse può darvi alcune idee e un punto di partenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top