RayCasting Beispielbeschreibung

Author: Balazs LICHTL, MatrNr.: 9625772, WS 2000

Bei diesem Beispiel hendelt es sich um die Implementierung eines RayCasting Algoritmus, genauer, um das Volume Rendering eines CT-Ddatensatzes. Dabei soll das Bild mit Phond Shading verfeinert werden.

QuickStart:

Einfach das Programm Starten, ein Datensatz laden, und auf Preview drücken. Mit der Voreinstellung der Parameter sollte auf jeden Fall etwas sinnvolles hearauskommen. Nacher kann man mit leichter Veränderung der Parameter das Bild verändern.

Das Programm besteht aus einer einzigen Win32 executable. Nach dem Starten ist man dierekt mit dem Hauptfenster konfrontiert, wo man folgende Möglichkeiten hat:

  • - Datensatz laden
  • - Transferfunktion(nen) berechnen lassen. Davon gibt es maximal 2, wenn man nur eine braucht, stellt man Sie im Ansicht einfach unsichtbar.
  • - Darstellungsoptionen wählen und darstellen lassen. Man kann dabei Farben und Sichtbarkeitsgrad für die 2 Schichten auswählen, den Scalierungsfaktor ändern (default ist etwa full screen), und die verschiedenen Funktionen auslösen. Diese sind
    • - Erweiterte Optionen
    • - Bild spiechern in 32 bit BMP format. Funktioniert nur dann, wenn der Bildschirm auch auf 32 bit TrueColor eingestellt ist.
    • - Ray Casting preview und render (preview 8 mal schneller als render)
    • - Most Intensity Projection - MIP (allerdings zuerst auf Parallel-Projection umscahlten)
  • - Mit den Slidern am Rande des Ausgabebereiches kann man den Blickwinkel einstellen. Da die Drehugen wegen den benutzten Vefahren nicht unabhängig sind, braucht man eine gewisse Übung, um damit umgehen zu können. :(

Transferfunktionen:

Wenn man auf Preview oder Render drückt, und noch kein Transfer berechnet wurde, wird es vor der eigendlichen Rendering berechnet. Später, wenn man die Einstellungen für die Transferfunktionen ändert, muss man extra den Button "Transfer Neu Berechnen" drücken, damit es neu berechnet wird.

Erwiterte optionen:

Hier kann man die detailiertere Einstellungen vornehmen:

  • - Parallel-Projection ein und ausschalten. Beim nichtparellelem gehen die strahlen nach hinten auseinander. Dies ist das Default, allerdings für MIP nicht geeignet.
  • - Triliear intepolation
  • - Simples shading ein/aus: Diese Shading benutzt nur die Richtung des Betrachters, um die Helligkeiten festzulegen. Je mehr eine Fläche vom Betrachter weggedreht ist, desto dünkler wird er.
  • - Einstellungen für Phong Shading: (wenn beide ausgewählt sind, wird Phong benutzt.)
    • - K1, K2 und Exponent sind für den Depht Cueing benutzt
    • - Mit Ambient- Diffuse- und Specular Base kann man die 3 Grundfaktoren für die Reflexionen einstellen. Die Farbkomponenten der Reflexionen ergeben sich aus diesem Faktor und der Farbkomponent des Punktes.
    • - Es kann noch die Richtung des Lichtes eingestellt werden. Hier muss ein Vector angegeben werden, der in Richtung der Lichtquelle zeigt. Grösse ist beliebig, es wird normalisert. Die Farbe des Lichtes ist immer Wiess (255,255,255) kann nicht eingestellt werden.
    • Richtungen: x: - links + rechts, y: -oben +unten, z: -richtung betrachter +ins Bild hinein.

Zum Download des Programmes gibt es diese möglichkeit. Weiters braucht man dazu ein CT-Datenstatz im richtigen Format:

"16 Bit pro Datenwert (aber nur 12 Bit in Verwendung). Das Datenformat besteht aus 6 Byte header (read xDim; read yDim; read zDim; - jeweils 2 Byte) und den Daten (for z = 1 to zDim; for y = 1 to yDim; for x = 1 to xDim; read data[x][y][z]; done; done; done; - jeweils 2 Byte, aber nur 12 Bit verwendet)." So ein Datensatz ist z.B. diese, der auch für das Erstellen der Beispielbilder verwendet wurde.

Viel Spass beim Ausprobieren.

Technische Details:

Beim Rendering wird das Bildfläche von links oben nach rechts unten zeilenweise abgetastet, und für jedes Punkt ein Strahl in die Z Richtung gelegt. Entlang dieses Strahles werden von vorne nach hinten samples genommen (Auflösung ist ein pixel). Abgebrochen wird das verfahren dann, wenn man ganz hinten im abtastbereich angelangt ist, oder wegen der zu kleinen Restdurchsichtigkeit (ist 0.008) nicht mehr weitergegangen werden muss. Die so genommenen Samples werden dann mit dem Ausgewählten Shading belegt, und zu einen Color für das jeweilige Punkt aufsummiert.

Im Preview Methode passiert exakt das selbe, mit einer in jede Richtung halbierter Auflösung, und einen gröberen abbruchbedingung für die Durchsichtigkeit (0.05).

 

Im Folgenden sind 3 Beispielbilder, die mit dem Programm erzeugt wurden, zu finden:

 

 

 

  Letze Anderung: 04.11.00.