PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Volume Rendering (Voxel) @ GPU


del_4901
2007-02-19, 07:15:34
Ich hab schon einige Papers gesammelt. Geometry Images scheint mir zum jetzigen Zeitpunkt das praktikabelste zu sein. Wenn jemand gute Papers / Bücher kennt kann er die ja mal mal hier posten. Ich will mir da mal einen Überblick verschaffen, bevor ich anfang irgendwas in der Richtung zu bauen.
Ich hab auch schon bei Google geschaut, ganz dürftig ist ist es nicht, aber so richtig reichhaltig und informativ auch ned. Wenn jemand die Fußangeln eines solchen GPU basierenden Renderers kennt, würde ich mich über Lösungsvorschläge bzw. Abgrenzungen freuen.

Anundfürsich ist es ja nicht so schwer einen VoxelRenderer aufzusetzen. Nur damit das richtig gut aussieht, braucht man wohl einiges an Speicher um seine "Modelle" abzulegen. Und da seh ich im mom noch den größten Knackpunkt an der ganzen Geschichte. Wo ich auch noch nichts zu gefunden habe, wie ich Voxel_modelle vernünftig animiere. (ohne einen immensen Aufwand zu betreiben) Man könnte natürlich Polygonmodelle nehmen und die "Voxelisieren", wobei sich dann mir wieder die Frage stellt: Da kann ich doch auch gleich Polygone nehmen? ^^ Vorallem für transluzente Materialien sind Voxel natürlich wieder ne feine Sache.

So ich hab genug spekuliert.

PS: Ich erwarte nicht das es heute oder dieses Jahr noch flüssig und schoen wird.

ScottManDeath
2007-02-19, 07:57:20
Ich mach Direct Volume Rendering mittels Slices und 2D Transferfunktionen.

Es gibt von Krüger und Westermann ein Paper welches Raycasting im Fragment Shader macht.

Allerdings hab ich keinen Plan wie man damit was anderes außer medizinische Datensätze, Wolkend und Haut rendert.

Chris Lux
2007-02-19, 09:01:29
Ich mach Direct Volume Rendering mittels Slices und 2D Transferfunktionen.

Es gibt von Krüger und Westermann ein Paper welches Raycasting im Fragment Shader macht.

Allerdings hab ich keinen Plan wie man damit was anderes außer medizinische Datensätze, Wolkend und Haut rendert.
naja raycasting im shader ist nicht wirklich schwer. es geht sogar noch ein wenig einfacher als in dem paper beschrieben. über die texturcoordinaten des bounding volume kann man die eintrittspunkte ins volumen bestimmen und da eine textur normierte koordinaten hat kann man mit einfachen tests rausbekommen, wann man das volumen verlassen hat. somit spart man sich die zwei pässe um anfangs und endpunkte rauszubekommen. dazwischen geht es super simpel zu. man hat einen startpunkt, eine richtung und eine schrittweite. man geht einfach dem strahl entlang und sampled das volumen, appliziert die transferfunktion und führt front-to-back compositing aus. als optimierung kann man noch early out anhand des alpha wertes basteln. ein einfacher volumen raycaster geht auf weniger als eine halbe a4 seite.

das alles wird so ähnlich auch in diesem [1] paper beschrieben. zum animieren von volumen gibt es eigentlich schon eine menge von möglichkeiten. die erste triviale ist mehrere volumen animationsschritte zu haben, was aber extrem speicheraufwändig ist. die zweite ist volumen deformationen zu beschreiben, was aber algorithmisch sehr aufwändig sein kann. vorstellen kann man sich das wie eine feder dämpfer system aufgebaut als 3d grid (alle voxel mit feder und dämpfer an den nachbarn befestigt) welches deformiert wird.

[1] http://www.vis.uni-stuttgart.de/ger/research/fields/current/spvolren/

ScottManDeath
2007-02-19, 20:41:30
Ich habe diese (http://www.cs.utah.edu/~jmk/simian/gallery.htm) code basis "geerbt" und bin dabei zu sie modernisieren (GF3 extensions -> GLSL,...) bzw. zu refaktorisieren. Zur Zeit eben auf Slice basis, spaeter eventuel Raycasting, oder auch CUDA.

Chris Lux
2007-02-20, 09:29:46
Ich habe diese (http://www.cs.utah.edu/~jmk/simian/gallery.htm) code basis "geerbt" und bin dabei zu sie modernisieren (GF3 extensions -> GLSL,...) bzw. zu refaktorisieren. Zur Zeit eben auf Slice basis, spaeter eventuel Raycasting, oder auch CUDA.
joe kniss... da bist du in einer wirklich guten umgebung gelandet ;)

ScottManDeath
2007-02-20, 16:09:18
Japs, war meine Wunsch Uni =). Joe ist letzes Jahr fertig geworden und ich hab jetzt seinen Schreibtisch *g*

Wo bist Du? (gerne auch per PN)

Alpha@work
2007-02-20, 19:04:32
Irgendwie hab ich jetzt einen Knoten im Kopp, was 3d-texture-objects betrifft. (nicht mit 2d texture slices zu verwechseln) In einer Cube-Map kann ich doch nur die Hülle eines Objektes ablegen? GPU-GEMs 1 S.674 zeichnen die damit aber einen TeaPot. So wie ich das sehe müsste doch gegenüber vom Henkel und Ausguss an der Kanne ein Loch bzw. Lücke sein? Ist übrigens von den gleichen Leuten wie von ScottMan gepostet.

Hab ich da nen Denkfehler? Oder ist der Teapot einfach nur in einer günstigen Lage gezeichnet? Wobei man bei letzterem, oben auf dem Deckel lücken zu sehen sein müssten.