LabVIEWForum.de
Visualisierung von 3d Daten (voxelrendering) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Grafik & Sound (/Forum-Grafik-Sound)
+---- Thema: Visualisierung von 3d Daten (voxelrendering) (/Thread-Visualisierung-von-3d-Daten-voxelrendering)



Visualisierung von 3d Daten (voxelrendering) - Brunhold - 13.11.2008 15:54

Hallo zusammen
Ich habe 3-d Daten (also dreidimensionale arrays) und möchte die gerne mittels Volumenrendering darstellen. Wichtig ist dabei der alpha-kanal für die Darstellung. (Also ich habe skalare daten in 3d, also einen 3d array mit intensitätswerten drin. Jedem Voxel wird dann gemäß seinem Intensitätswert eine RGB-Farbe zugeordnet und ein alpha-wert für die Transparenz. Niedrige Intensitätswerte kann ich dann einfahc mit dem alpha-wert transparent machen und durchschauen und sehe so nur die Voxel mit hoher Intensität.)

Wie kann ich eine solche Visualisierung mit LabVIEW machen?
gibt es openGL schnittstellen für LabVIEW? Ich arbeite inzwischen mit Vista. da dürfte openGL nicht mehr funktionieren.
Gibt es irgendwelche dlls, die man ansteuern kann und die dann das gewünschte Bild mit der Grafikkarte erzeugen und zurückliefern?
Hat jemand eine Idee, wie man das mit LabVIEW hinkriegen könnte?

Danke im voraus.


Visualisierung von 3d Daten (voxelrendering) - jg - 13.11.2008 17:00

Das geht mit dem 3D-Graphen:

http://www.LabVIEWforum.de/index.php?showtopic=9953
http://www.LabVIEWforum.de/index.php?showtopic=7228

Gruß, Jens


Visualisierung von 3d Daten (voxelrendering) - Brunhold - 03.12.2008 17:50

Hallo Jens
Ich hab mir die Beispiele angesehen, aber leider komm ich damit nicht klar.
Ich kann nur surface plots finden. (Mesh, parametric surface, surface, oder parametric line), keine Volumendarstellungen.
Die Graphikkarte braucht 2 Informationen, um 3d daten dazustellen: den 3d Datenblock in 8bit, und eine Colormap ([r,g,b,alpha],(1:256)) , Dann braucht man zusätzlich noch die Parameter wie Beleuchtungsquelle, Position der Beleuchtungsquelle, und Blickwinkel. Der alpha-wert, der die Transparenz des Voxels festlegt, ist bei dieser Darstellungsart der wichtigste Parameter.
Wenn diese Eingänge nicht da sind, dann kann das Bild auch nicht so darstellen, wie ich es haben möchte. Aber vielleicht nennt LabVIEW diese Parameter ja anders, und nicht so wie in der Computergraphik üblich.
Ich glaube nicht, dass das mit den 3d plots geht.
Ich brauchte wahrscheinlich eine OpenGL oder eine DirectX schnittstelle. Hast du eine Ahnung, ob es so etwas in LabVIEW gibt?
Ciao
Brunhold


Visualisierung von 3d Daten (voxelrendering) - eg - 03.12.2008 18:20

Tippe mal im Example Finder "3D" ein und schaue dir die Beispiele:
Simple 3D Objects.vi
und
Solarsystem.vi
an.

Diese arbeiten mit OpenGL. Man kann Objekte erstellen, rendern, Surface drauflegen und und und


Visualisierung von 3d Daten (voxelrendering) - Brunhold - 04.12.2008 11:34

Hallo zusammen
Ich glaube wir reden aneinander vorbei. Ich will keine simplen objekte mit undurchsichtiger oberfläche, sonder ich habe echte 3d daten (einen 3d array). Ich möchte ergebnisse wie diese bekommen:
http://de.youtube.com/watch?v=7b8dFmmCmv0&...feature=related

Berechnet wurden diese Bilder mit der Grapikkarte. Datenformat sind 3d arrays im U8 Format. Mit einem Look-up table gibt man dunklen werten eine hohe transparenz und hellen werten eine niedrige Transparenz. So kann man durch dunkle Pixel (in 3d spricht man von Voxeln) hinduch sehen und sieht nur die hellen Voxel. Die benützte Methode entspricht der Simulation von Nebel oder Rauch. Der kann mehr oder weniger dicht sein und man kann mehr oder weniger hindurchsehen. Moderne Graphikkarten können alle solche Effekte darstellen.

Alle Beispiele die ich gefunden habe (incl. Solar system) beschreiben undurchsichtige Objekte.

Ein weg könnte sein, dass man per DirectX die Graphikkarte anspricht und die dann die Bilderzeugung übernimmt und die Bilder zurück liefert. Das habe ich noch nicht geschafft.

Ein Modul von ScienceGL verspricht, dass es so etwas könnte. Es benützt das richtige Datenformat, visualisiert wird aber auch nur mit teildurchsichtigen oberflächen mit surface-rendering technik. So ganz überzeugt mich das noch nicht.

Grüsse
Andi