DE102007050615A1 - Brick-basierter Fusionsrenderer - Google Patents
Brick-basierter Fusionsrenderer Download PDFInfo
- Publication number
- DE102007050615A1 DE102007050615A1 DE102007050615A DE102007050615A DE102007050615A1 DE 102007050615 A1 DE102007050615 A1 DE 102007050615A1 DE 102007050615 A DE102007050615 A DE 102007050615A DE 102007050615 A DE102007050615 A DE 102007050615A DE 102007050615 A1 DE102007050615 A1 DE 102007050615A1
- Authority
- DE
- Germany
- Prior art keywords
- bricks
- brick
- blocks
- expanded
- volume
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000011449 brick Substances 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000002591 computed tomography Methods 0.000 title description 2
- 238000009877 rendering Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 10
- 239000002131 composite material Substances 0.000 claims description 4
- 230000004927 fusion Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000012952 Resampling Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000002595 magnetic resonance imaging Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
Description
- Die vorliegende Erfindung betrifft allgemein das Gebiet der Bildgebung, und spezieller Brick-basierte Fusionsrenderer (Fusionswiedergeber), die in einer derartigen Bildgebung verwendet werden.
- Wie bekannt ist, liefert eine moderne medizinische Technologie unterschiedliche Modalitäten zum Erfassen von 3D-Daten, beispielsweise Computertomographie „CT", Magnetresonanzbildgebung („MRI"), Positronenemissionstomographie („PET") und Ultraschall. Die Information, die von unterschiedlichen Modalitäten gewonnen wird, ist normalerweise komplementär; beispielsweise liefert CT strukturelle Information, während PET funktionale Information bereitstellt. Folglich ist es allgemein wünschenswert mehrere Volumendatensätze zu fusionieren (zu vereinigen oder zu kombinieren).
-
1 zeigt ein beispielhaftes fusioniertes (vereinigtes) Bild, in dem funktionale Daten von PET mit struktureller Information von CT korreliert sind.1 zeigt eine beispielhafte fusionierte Wiedergabe. Das Bild auf der linken Seite (1(a) ) zeigt strukturelle Information, die abgeleitet ist aus einem 512×512×512×12-Bit CT-Datensatz, wobei das Bild auf der rechten Seite (1(b) ) funktionelle Information zeigt, die hergeleitet ist aus einem 256×256×256×16-Bit PET-Datensatz. Das Bild in der Mitte (1(c) ) ist eine einfache Fusion der CT- und PET-Datensätze, die die strukturelle und funktionale Information miteinander korrelieren. Die Negative" jedes dieser Bilder sind gezeigt, um eine gedruckte Reproduktion zu erleichtern. - Die meisten existierenden Fusionsrenderer erfordern, dass alle Volumen ausgerichtet sind und die gleiche Auflösung haben, wodurch es notwendig ist alle Volumen neu abzutasten mit Ausnahme der Bereiche, die als Referenzvolumen behandelt werden. Das Referenzvolumen bezeichnet im Allgemeinen das Volumen mit der feinsten Auflösung, um einen Verlust von Information zu vermeinen – die anderen Volumen werden neu abgetastet gemäß dem Gitter des Referenzvolumens. Es kann sein, dass das Referenzvolumen aufgeweitet werden muss, um die Hüllbox (Hüllschachtel), die alle Volumen einschließt, zu füllen. Die gesamte Hüllbox des Ensembles der Volumen kann signifikant größer sein als individuelle Hüllboxen, wenn die Orientierung eines Volumens nahe der Diagonalen eines anderen Volumens liegt. Die Anzahl an Voxeln nach einem erneuten Abtasten ist proportional zu dem Volumen der gesamten Hüllbox.
- Folglich kann ein Neuabtasten signifikant die Verarbeitungszeit (sowohl anfänglich als auch für jedes Wiedergeben) sowie das Ausmaß an erforderlichem Speicher erhöhen.
- Die Volumen müssen normalerweise registriert werden, da unterschiedliche Scanner unterschiedliche Koordinatensysteme (bezüglich Ursprüngen und Orientierungen) haben können. Während einer Registrierung werden alle Volumen, ausgenommen das Referenzvolumen, als „Floating-Volumen" bezeichnet. Verschiedene Transformationen, beispielsweise Rotation, Translation, Skalieren und Scheren werden auf die Floating-Volumen angewendet, so dass ihre Merkmale mit denen in dem Referenzvolumen zusammenpassen. Darüber hinaus muss ein erneutes Abtasten erneut durchgeführt werden nach einer derartigen Transformation. Die Registrierung erfordert typischerweise eine Benutzerinteraktion, mit einem visuellen Feedback (Rückkopplung), die wiederholt angewendet wird, um die Registrierung zu verfeinern. Der auf einem erneuten Abtasten basierte Fusionsrenderer kann nicht schnell genug auf derartige Anforderungen reagieren.
- „Bricking" ist eine wichtige Technik bei der texturbasierten Volumenwiedergabe. Im Prinzip partitioniert das Bricking einen Volumendatensatz in mehrere Nebenvolumen, die als Bricks (Steine oder Stücke) bezeichnet werden. Der Zweck von Bricking ist in erster Linie folgender: 1) Bricks, die nur unsichtbare Voxel enthalten, werden übergangen (ausgelassen), um eine Beschleunigung zu erzielen; 2) Volumen größer als der Grafikspeicher können wiedergegeben werden, indem ein Nebensatz für jeden Wiedergabeverlauf in den Grafikspeicher heruntergeladen wird. Bei mehreren Wiedergabeverläufen werden alle sichtbaren Voxel verarbeitet. Innerhalb jedes Bricks können die Voxel weiter in Blöcke unterteilt werden, und unsichtbare Blöcke werden übergangen. Folglich ist die minimale Granularität des Wiedergebens ein Block, während die minimale Granularität von Textur-Downloading ein Brick ist. Offensichtlich muss ein Block vollständig in dem entsprechenden Brick eingeschlossen sein. Siehe Wei Li, „Invisible Space Skipping with Adaptive Granularity for Texture-based Volume Rendering",
US Patentveröffentlichungsnr. 2006/0164410 , veröffentlicht am 27. Juli 2006, auf die hier Bezug genommen wird, insbesondere auf Merkmale, die das Bricking betreffen. - Ein Fusionsrenderer geht mit mehreren Volumen um, die sich normalerweise in einem 3D Raum überlappen, wie in der
amerikanischen Patentanmeldung mit der Seriennr. 11/235,410 amerikanischen Patentanmeldung mit der Seriennr. 11/235,410 - Wenn ein Datensatz in Bricks partitioniert ist, sind nicht alle Voxel während eines Wiedergabeverlaufs zugreifbar. Folglich muss ein Algorithmus zum Kombinieren von Bricking und Fusion sicherstellen, dass diese nicht zugreifbaren Voxel für den gegenwärtigen Verlauf nicht wiedergegeben werden, und irgendwelche sichtbaren Voxel werden genau einmal wiedergegeben. Dies ist eine herausfordernde Aufgabe, speziell wenn unsichtbare Bricks und Blöcke übergangen werden. Aus Gründen der Einfachheit handhabt die oben genannte
amerikanische Patentanmeldung mit der Seriennr. 11/235,410 - Das Bricking nur entlang in Z-Achse hat plattenförmige Bricks zur Folge, was unglücklicherweise bezüglich der Performance weniger wirkungsvoll ist. Aufgrund der Grafikhardwarebeschränkung kann darüber hinaus ein Datensatz, dessen X- und Y-Größen eine bestimmte Zahl überschreiten, gegenwärtig 512, nicht wiedergegeben werden. Ein Grafikspeicher ist eine teuere Ressource (Mittel) in einem System.
- Gemäß der vorliegenden Erfindung wird ein Verfahren geschaffen zum Kombinieren von mindestens zwei dreidimensionalen Bilddatensätzen, um ein Verbundbild aus den Datensätzen zu erzeugen. Das Verfahren enthält ein Unterteilen jedes der Datensätze in einer Mehrzahl von Bricks entlang drei gegenseitig orthogonaler Achsen. Mit einem derartigen Verfahren gibt es eine größere Flexibilität beim Auswählen der Form/Größe von Bricks, was eine bessere Performance zur Folge hat.
- In einem Ausführungsbeispiel wird ein Verfahren geschaffen zum Kombinieren von mindestens zwei dreidimensionalen Bilddatensätzen, um ein Verbundbild aus den Datensätzen zu erzeugen. Das Verfahren enthält: (a) Bilden einer hierarchischen Struktur für jeden der mindestens zwei Datensätze, wobei jede hierarchische Struktur Blöcke von Voxeln des Datensatzes mit höherem Niveau (Level) und Blöcke von Voxeln des Datensatzes mit niedrigerem Niveau (Level) enthält, wobei die Blöcke höheren Niveaus eine größere Anzahl an Voxeln haben, als die Blöcke niedrigeren Niveaus, wobei einer oder mehrere Blöcke einen einzelnen von einer Mehrzahl von anfäglichen verarbeiteten Bricks besetzten; (b) Aufweiten von Grenzen von jeder der Strukturen in entsprechende aufgeweitete hierarchische Strukturen, wobei ein derartiges Grenzaufweiten ein Hinzufügen zusätzlicher virtueller Verarbeitungs-Bricks zu den anfänglichen Verarbeitungs-Bricks enthält, und derartige virtuelle Verarbeitungs-Bricks semi-ungebundene Blöcke enthalten, um die aufgeweiteten Grenzen der aufgeweiteten hierarchischen Strukturen bereit zu stellen; und (c) Wiedergeben von jedem der Bricks in jeder der aufgeweiteten hierarchischen Strukturen in einem zweidimensionalen Bild.
- Mit einem derartigen Verfahren wird jedes Volumen (also jeder Datensatz) aufgeweitet in einen Blockbaum mit aufgeweiteten Knoten, so dass der Baum den gesamten 3D-Raum abdeckt, anstatt durch die Hüllbox des Volumens begrenzt zu werden. Ein Rendering (Wiedergeben) unter Verwendung des expandierten Baums garantiert, dass die Wiedergabe keinen Bereich des Volumens auslässt. Die aufgeweiteten Knoten sind lediglich virtuelle Knoten, die keine Voxeldaten enthalten.
- Gemäß einem Ausführungsbeispiel enthält das Wiedergeben: (i) Verarbeiten der Bricks von jeder der aufgeweiteten hierarchischen Strukturen gemäß der relativen Sichtbarkeit, wobei die Sichtbarkeitsreihenfolge in Bezug steht zu dem Abstand von einer Betrachtungskamera, enthaltend die Ein-stellungsmarkierungen (Flags) für unsichtbare Bricks von den anfangs verarbeiteten Bricks und für die virtuell verarbeiteten Bricks, wobei sichtbare Bricks ohne Markierung blei ben, und wobei zu jeder Zeit, zu der ein augenblicklicher Brick wiedergegeben wird, Schnittebenen, die die Grenze des gegenwärtigen Bricks definieren, eingefügt werden, und wobei die Schnittebenen entfernt werden, wenn der augenblickliche Brick nicht langer wiedergegeben wird; (ii) Teilen jeder der aufgeweiteten hierarchischen Strukturen, die darin einen gegenwärtigen nicht markierten Brick aufweisen, in Stapel paralleler Schnitte entlang der Schnittebenen mit markierten Bricks, die ausgeschlossen sind von den parallelen Schnitten, und Sortieren der parallelen Schnitte gemäß der Sichtbarkeitsreihenfolge (iii) Wählen eines nächsten Schnitts in den sortierten parallelen Schnitten, wobei der nächste Schnitt zu einem gegenwärtig Wiedergegebenen der Bricks gehört; (iv) Finden aller Blöcke in jedem der gegenwärtigen Bricks, die eine Ebene des nächsten Schnitts, der in (iii) gewählt wurde, kreuzen; (v) Erfassen von Voxeln von den gefundenen Blöcken; (vi) Wiedergeben der erfassten Voxel in dem zweidimensionalen Bild; (vi) Wiederholen von (iii)–(v) bis alle sortierten parallelen Schnitte wiedergegeben sind; und (vii) Zurücksetzen des gegenwärtigen Bricks.
- Mit den Schnittebenen kombiniert garantiert das Verfahren, dass irgendein sichtbarer Bereich von irgendeinem Volumen exakt einmal wiedergegeben wird.
- In einem Ausführungsbeispiel werden die parallelen Schnitte unabhängig für jede der aufgeweiteten hierarchischen Strukturen gewählt, um ineinander (verschachtelte) Schnitte wiederzugeben.
- Gemäß einem Ausführungsbeispiel werden die parallelen Schnitte von den aufgeweiteten hierarchischen Strukturen ausgewählt, um sich einen gemeinsamen Satz von parallelen Schnitten zu teilen, um fusionierte (vereinigte) Schnitte zu erzeugen; die unsichtbaren Markierungen (Flags) werden zu der Wiedergabefunktion gegeben, so dass ein Erfassen von einem unsichtbaren Brick verhindert und Null als Wert der Voxelabtastung zugegeben wird. Die Abtastungen, die von unterschiedlichen Datensätzen erfasst werden, werden gemäß einer benutzerspezifischen Fusionsgleichung kombiniert, also die Gleichung hängt von der realen Anwendung ab. Beispielsweise könnte dies lediglich ein Mittelwert bilden, Summieren, Differenzieren, oder irgendeine andere Art und Weise des Kombinierens von Voxelwerten sein, die von dem gleichen 3D Ort von unterschiedlichen Volumen erfasst worden sind.
- Gemäß der vorliegenden Erfindung werden ein gemeinsamer Grafikspeichermanager und ein Cachespeicher gemeinsam verwendet von mehreren GPU basierten Renderern, wie beispielsweise beschrieben in der
amerikanischen Patentanmeldung mit der Seriennr. 11/679,990 - Während in der oben genannten Patentanmeldung
11/235,410 - In dieser Erfindung wird der aufgeweitete Baum, der von dem Fusionsrenderer von verschachtelten Schnitten verwendet wird, angewendet; hier hat das Shader-Programm zugriff auf die Brick-Sichtbarkeitsmarkierungen (Flags). Ein Weg ist die Übergabe der Brick-Sichtbarkeitsmarkierungen als Argumente an den Shader. Wenn der gegenwärtige Brick eines Volumens unsichtbar ist, vermeidet der Shader einfach ein Abtasten des Volumens, und weist einen Nullwert der Variablen zu, die den Abtastwert speichert, und fährt mit der Fusionsberechnung fort. Dies erfordert Zweige innerhalb des Shader-Programms, und kann auf einigen GPUs nicht wirkungsvoll sein. Ein anderer Weg ist die Erzeugung mehrerer Versionen des Shader-Programms, wobei jede einem unterschiedlichen Nebensatz von unsichtbaren Volumen entspricht. Das korrekte Shader-Programm wird dann in Abhängigkeit von den Brick-Sichtbarkeitsmarkierungen ausgewählt.
- Ein unsichtbareres Raum-Shipping innerhalb eines Bricks für fusionierte Schnitte ist verschieden von einem Wiedergeben von verschachtelten Schnitten. Für verschachtelte Schnitte nimmt der Renderer mehrere Sätze von Polygone, die die Abtastorte darstellen. Jeder Satz von Polygone deckt alle sichtbaren Voxel eines Volumens ab. Für fusionierte Schnitte gibt es nur einen Satz von Polygone, die alle sichtbaren Voxel von allen Volumen abdecken sollten. Die Verwendung der aufgeweiteten Knoten stellt die Abdeckung des Raums außerhalb irgendeines Volumens sicher. Innerhalb eines Volumens, falls ein Brick unsichtbar ist, wird es nicht lediglich übergangen (ausgelassen), sondern führt notwendige Schnittebenen ein, und setzt die Brick-Sichtbarkeitsmarkierung auf „false" für das betreffende Volumen. Für das Wiedergeben von fusionierten Schnitten werden unsichtbare Blöcke innerhalb eines Bricks in ähnlicher Weise gehandhabt durch Einfügen von Schnittebenen und Setzen der Brick-Sichtbarkeitsmarkierung.
- Einzelheiten von einem oder von mehreren Ausführungsbeispielen der Erfindung werden im Folgenden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Andere Merkmale, Aufgaben und Vorteile der Erfindung werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen offensichtlich.
-
1 zeigt ein beispielhaftes fusioniertes Bild gemäß dem Stand der Technik; -
2 zeigt drei Hüllboxen für drei Bilddatensatzvolumen; -
3 zeigt ein Beispiel des Fusionierens von zwei Volumen, wobei jedes vier Bricks aufweist, die gepunkteten Linien stellen die Schnittebenen dar; -
4 zeigt einen Zustand, bei dem einige Bricks vollständig außerhalb des Darstellungsfelds sind, dann werden die Schnittebenen zwischen sichtbaren und unsichtbaren Bricks auch ignoriert, eine derartige Darstellung zeigt, dass es auch einen leeren Brick in der Mitte des Stapels gibt, und folglich wird eine Schnittebene zwischen dem leeren Brick und dessen benachbarten nicht leerer Brick entfernt (also wenn nur entlang einer Achse ein Bricking erfolgt, werden die GrenzBricks oder die Bricks entlang der sichtbaren Grenze expandiert, so dass der Gesamtraum abgedeckt wird durch die die Union des Brick-Satzes des Volumens); -
5 zeigt ein2D Beispiel, bei dem ein Ursprungswurzelknoten ausgepolstert (umgeben) ist von vier aufgeweiteten Knoten, um den gesamten Raum abzudecken, und Punktlinien, die die Grenzen angeben, die im Unendlichen liegen, und wobei die linke Hälfte das Auspolstern (Einschließen) anzeigt, während die rechte Hälfte den Baum zeigt, der die expandierten (aufgeweiteten) Knoten und die Wurzel enthält, hier wird ein Binärbaum zur Verdeutlichung verwendet; -
6 zeigt ein Flussdiagramm eines Gesamtprozesses; und -
7 zeigt ein Flussdiagramm des Wiedergabeteils des Prozesses gemäß dem Flussdiagramm in6 im Einzelnen. - Ähnliche Bezugszeichen werden in den verschiedenen Ansichten verwendet, um ähnliche Elemente anzugeben.
- Bevor genauer auf den Fusionsrenderer gemäß der Erfindung eingegangen wird, wird darauf hingewiesen, dass ein kurzer Überblick über Brick-basierte Wiedergeber (Renderer) für ein Einzelvolumen im Einzelnen beschrieben wird in der obigen veröffentlichten
amerikanischen Patentanmeldung mit der Seriennr. 2006/0164410 , veröffentlicht am 27. Juli 2006. Ein Volumendatensatz wird in gleichmäßig große Blöcke partitioniert. In diesem Beispiel wird eine Blockgröße von 32·32·32 ausgewählt. Die Blöcke werden dann vermengt und in einer hierarchischen Struktur organisiert, auch als Baum bezeichnet, wobei jeder Originalblock ein Blattknoten ist, und die Wurzel des Baumes die Vereinigung aller Blöcke ist, die dem Gesamtvolumen entspricht. Zwischen der Wurzel und den Blättern werden einige vermengte Blöcke als Bricks betrachtet. Die Bricks haben ebenfalls einheitliche Größe und eine typische Brick-Größe ist 64·64·64. Während des Wiedergebens wird der Baum von oben nach unten von der Wurzel an beginnend durchlaufen. Völlig unsichtbare Knoten werden übergangen (ausgelassen). Wenn das Durchqueren einen Brick erreicht, wird das entsprechende Nebenvolumen in den Grafikspeicher geladen, wenn es nicht in dem Brick-Cachespeicher existiert. Während der eingeschlossene Brick in dem Grafikspeicher ist, wählt der Renderer von den Nebenknoten des Bricks aus, um in Abhängigkeit von dem Prozentsatz der sichtbaren Voxel, die von dem Nebenknoten eingeschlossen sind, wiederzugeben. Innerhalb jedes Bricks kann das Wiedergeben entweder Block für Block oder Schnitt für Schnitt erfolgen, wie in der obigen Patentanmeldung mit der Nr.11/235,410 - Bei der Fusion können die Volumen unterschiedliche Größen haben und sind mit unabhängigen Rotationen und Translationen. Folglich ist der Domain (Bereich), den sie in 3D abdecken, normalerweise verschieden. Wie in
2 gezeigt, zeigen die drei Hüllboxen10 ,11 und12 die Regionen, die die drei Volumen besetzen. Wie in der oben beschriebenen Patentanmeldung11/235,410 - Gitter von unterschiedlichen Volumen sind üblicherweise nicht zueinander ausgerichtet, folglich sind sie unabhängig „gebrickt. Aus Einfachheitsgründen und Performancebetrachtungen sowie unter Berücksichtigung einer Hardwarebegrenzung, wird nur die Textur eines Bricks jedes Volumens erlaubt, um zu irgendeinem Zeitpunkt aktiv zu sein. Folglich sollte das Wiedergeben eingeschränkt sein innerhalb eines gemeinsamen Bereichs (Region) von gegenwärtig aktiven Bricks. Da Bricks von unterschiedlichen Volumen im Allgemeinen nicht ausgerichtet sind, er folgt dies durch Einfügen von Schnittebenen auf den Flächen der Bricks.
3 zeigt ein Beispiel des Fusionierens von zwei Volumen, die jeweils vier Bricks aufweisen. Die gepunkteten Linien stellen Schnittebenen dar, und die Regionen in unterschiedlicher numerischer Bezeichnung stehen jeweils für eine gemeinsame Region. Man beachte, dass der Zweck der Schnittebenen darin liegt den Raum in Regionen zu unterteilen. Jede Region, die definiert ist durch einen Satz von Schnittebenen eines Volumens, enthält mindestens einen Brick des gleichen Volumens. In dem Fall gemäß3 , bei dem ein Bricking nur in einer Richtung angewendet wird, werden die Schnittebenen, die mit Volumengrenzen ausgerichtet sind, ignoriert. Beispielsweise entspricht der oberste Brick in rot einem halben Raum, der definiert ist durch die Schnittebene auf der unteren Grenze des Bricks. Die gemeinsame Region, die definiert ist durch die Schnittebenen, sind immer konvex. Es ist wichtig, dass die Vereinigung aller Brick-Regionen eines Volumens den Gesamtraum abdeckt, oder mindestens den Raum, der alle anderen Volumen enthält. Im Übrigen wird nur die gemeinsame Region zwischen unterschiedlichen Volumen wiedergegeben. -
- Es ist möglich, dass einige Bricks vollständig aus dem Darstellungsfeld herausfallen, wie in
4 gezeigt, dann werden die Schnittebenen zwischen sichtbaren und unsichtbaren Bricks auch ignoriert. Es gibt auch einen leeren Brick in der Mitte des Stapels. Folglich wird eine Schnittebene zwischen dem leeren Brick und dessen benachbarten nicht-leeren Brick entfernt. Mit anderen Worten, wenn ein Bricking nur entlang einer Richtung erfolgt, werden die Grenz-Bricks oder die Bricks entlang der Sichtbarkeitsgrenze aufgeweitet, so dass der gesamte Raum abgedeckt wird durch die Union (Vereinigung) des Brick-Satzes des Volumens. - Wie in der obigen Patentanmeldung
11/235,410 - Wie oben erwähnt werden die Blöcke eines Volumens in einer Baumstruktur organisiert. Der Wurzelknoten des Baums ist exakt die Hüllbox des Volumens. Wir schlagen vor, den Baum aufzureiten, um den vollen Raum abzudecken. Der Prozess fügt eine aufgeweitete Wurzel hinzu, die den Gesamtraum abdeckt, sowie intern aufgeweitete Knoten, um die Baumstruktur zu vervollständigen. All diese aufgeweiteten Knoten haben eine oder mehrere ihrer Grenzflächen bei unendlich definiert.
5 zeigt ein Beispiel, bei dem der Originalwurzelknoten ausgepolstert ist mit vier aufgeweiteten Knoten, um den Gesamtraum abzudecken. Die Punktlinien geben die Grenzen in Unendlichkeit an. Die linke Seite zeigt die Auspolsterung, während die rechte den Baum zeigt, der die aufgeweiteten Knoten und die Wurzel enthält. Zur Verdeutlichung verwenden wir den Binärbaum. Das Prinzip ist ähnlich zu anderen Bäumen. Aber die Anzahl an internen Knoten kann verschieden sein. - Für die Brick-basierte Fusion ist dann der Startknoten die aufgeweitete Wurzel. Offensichtlich sind die aufgeweiteten Knoten alle unsichtbar, folglich erfolgt kein Texturladen und Wiedergeben. Sie werden nur verwendet, um Schnittebenen anzuwenden. Eine Schnittebene, die bei Unendlich lokalisiert ist, wird sicher ignoriert. Für einen realen Knoten der keiner Expansion unterliegt, aber sichtbar ist, ist die Handhabung ähnlich wie bei aufgeweiteten Knoten. Sie werden also nur verwendet für das Anwenden von Schnittebenen, aber die Knoten werden selbst nicht tatsächlich wiedergegeben.
- Bei einem Wiedergeben, indem jedes Volumen als Stapel von Schnitten behandelt wird, wie oben unter Bezugnahme auf die Anmeldung
11/235,410 - Die Blöcke, die in dem gegenwärtigen Brick enthalten sind, werden Schnitt für Schnitt wiedergegeben, wie in der oben genannten Patentanmeldung
11/235,410 - Beachte, dass das Bricking nur in Z-Achsenrichtung ein spezieller Fall ist für einen allgemeinen Brickingansatz. Folglich ist auch der Ansatz, der einen aufgeweiteten Baum verwendet, für die Z-Bricks anwendbar, so lange die Brickgröße in X und Y spezifiziert ist, um sich durch das gesamte Volumen zu erstrecken.
- Wiedergeben von fusionierten Schnitten (Schnittbildern)
- Wenn die mehreren Volumen als fusionierte Schnitte vor einem Zusammenfassen behandelt wird, sollte der Stapel von Schnitten eines Volumens mit dem anderer Volumen ausgerichtet sein. Das Shader-Programm tastet also mehrere Volumen an den gleichen Orten ab, anstatt eine Verschachtelung von Schnitten von unterschiedlichen Volumen zuzulassen. Wie in der obigen Patentanmeldung
11/235,410 11/235,410 - Durchqueren des Blockbaums
- Da unsichtbare Bricks und Blöcke nicht einfach übergangen werden können, wird das Traversalfilter des Blockbaums für den Fusions-Renderer ebenfalls eingestellt. Wenn unsichtbare Blöcke übergangen werden können, sucht das Traversal nach dem größten Knoten, der die Kriterien für die Wiedergabe erfüllt. Typischerweise ist ein Kriterium, dass der Knoten nicht vollständig von Schnittebenen geschnitten wird, und sein Prozentsatz an sichtbaren Voxeln größer als eine bestimmte Zahl ist. Wenn ein derartiger Knoten gefunden wird, oder ein Knoten vollständig leer oder vollständig geschnitten ist, werden alle „Kinder" des Knotens übersprungen. Für die Fusion sucht das Traversal auch nach einem vollständig unsichtbaren Knotenpunkt. Der unsichtbare Knoten wird als „guter Knoten" durch den Traversal-Iterator zurückgegeben (siehe die obige veröffentlichte
amerikanische Patentanmeldung 2006/0164410 ), aber mit einem speziellen Leerregionflag, das gesetzt wird, um anzugeben, dass dies ein unsichtbarer Block ist. - Ein Flussdiagramm des gesamten Prozesses ist in
6 gezeigt und ein Flussdiagramm des Wiedergabeteils des Prozesses ist im Einzelnen in dem Flussdiagramm gemäß7 gezeigt. - Folglich, unter Bezugnahme auf die
6 und7 , enthält das Verfahren (a) Bilden einer hierarchischen Struktur für jeden der mindestens zwei Datensätze, wobei jede Struktur Blöcke von Voxeln höheren Niveaus und Blöcke von Voxeln niedrigeren Niveaus enthält, wobei die Blöcke höheren Niveaus eine größere Anzahl an Voxeln haben, als die Blöcke niedrigeren Niveaus; (b) Aufweiten der Grenzen jeder der Strukturen in entsprechende aufgeweitete hierarchische Strukturen, wobei ein derartiges Grenzaufweiten ein Hinzufügen von zusätzlichen virtuellen Verarbeitungsbricks zu den Anfangsverarbeitungsbricks enthält, wobei derartige virtuelle Verarbeitungsbricks semi-unverbundene Blöcke enthalten, um die aufgeweiteten Grenzen der aufgeweiteten hierarchischen Strukturen zu schaffen; und (c) Wiedergeben jedes der Bricks in jeder der aufgeweiteten hierarchischen Strukturen in einem zweidimensionalen Bild. Das Wiedergeben enthält (i) Verarbeiten der Bricks jeder der aufgeweiteten hierarchischen Strukturen in der Reihenfolge der relativen Sichtbarkeit, wobei die derartige Sichtbarkeitsreihenfolge bezogen ist auf den Abstand von einer Betrachtungskamera, enthaltend Einstellungsflags für unsichtbare Bricks der Anfangsverarbeitungsbricks und für die virtuellen Verarbeitungsbricks, wobei die sichtbaren Bricks unmarkiert bleiben, und wobei zu jedem Zeitpunkt ein gegenwärtiges Brick wiedergegeben wird, Schnittebenen, die die Grenze des gegenwärtigen Bricks definieren, eingefügt werden, und wobei die Schnittebenen entfernt werden, wenn das gegenwärtige Brick nicht länger wiedergegeben wird; (ii) Teilen jeder der aufgeweiteten hierarchischen Strukturen, die darin das gegenwärtig nicht markierte Brick haben, in Stapel paralleler Schnitte entlang der Schnittebenen, wobei markierte Bricks ausgeschlossen werden von den parallelen Schnitten, und Sortieren der parallelen Schnitte in der Sichtbarkeitsreihenfolge; (iii) Wählen eines nächsten Schnitts in den sortierten parallelen Schnitten, wobei der nächste Schnitt zu einem gegenwärtig wiedergegebenen Brick gehört, (iv) Finden aller Blöcke in jedem der gegenwärtigen Bricks, die eine Ebene des nächsten Schnitts kreuzen, der in (iiii) gewählt worden ist; (v) Holen von Voxeln von den gefundenen Blöcken; (vi) Wiedergeben der geholten Voxel in dem zweidimensionalen Bild; (vi) Wiederholen von (iii) bis (v) bis alle sortierten parallelen Schnitte wiedergegeben sind; und (vii) Zurücksetzen des gegenwärtigen Bricks. - Die Schritte (i) bis (vii) werden wiederholt, bis alle Brickkombinationen wiedergegeben sind.
- Es sei erwähnt, dass die parallelen Schnitte unabhängig für jede der aufgeweiteten hierarchischen Strukturen gewählt werden können, um verschachtelte Schnitte wiederzugeben.
- Eine Anzahl an Ausführungsbeispielen der Erfindung wurde beschrieben. Nichtsdestotrotz soll verstanden werden, dass verschiedene Modifikationen vorgenommen werden können, ohne den Schutzbereich der Erfindung zu verlassen.
Claims (6)
- Verfahren zum Kombinieren von mindestens zwei Sätzen von dreidimensionalen Bilddaten, um ein Verbundbild aus den Datensätzen zu erzeugen, enthaltend: Teilen jedes der Datensätze in eine Mehrzahl von Bricks entlang dreier gegenseitig orthogonalen Achsen.
- Verfahren zum Kombinieren von Bilddatensätzen, um ein Verbundbild zu erzeugen, enthaltend: (a) Bilden einer hierarchischen Struktur für jeden der mindestens zwei Datensätze, wobei jede Struktur Blöcke von Voxeln höhere Niveaus und Blöcke von Voxeln niedrigeren Niveaus enthält, wobei die Blöcke höheren Niveaus eine größere Anzahl an Voxeln haben, als die Blöcke niedrigeren Niveaus; (b) Aufweiten von Grenzen von jeder der Strukturen in entsprechende aufgeweitete hierarchische Strukturen, wobei eine derartige Grenzaufweitung ein Hinzufügen von zusätzlichen virtuellen Verarbeitungsbricks zu den Anfangsverarbeitungsbricks enthält, derartige virtuelle Verarbeitungsbricks semi-ungebundene Blöcke enthält, um aufgeweitete Grenzen der aufgeweiteten hierarchischen Strukturen bereitzustellen; und (c) Wiedergeben von jedem der Bricks in jeder der aufgeweiteten hierarchischen Strukturen in einem zweidimensionalen Bild.
- Verfahren nach Anspruch 2, wobei das Wiedergeben aufweist: (i) Verarbeiten der Bricks jeder der aufgeweiteten hierarchischen Strukturen in der Reihenfolge der relativen Sichtbarkeit, wobei die Sichtbarkeitsreihenfolge bezogen ist auf den Abstand von einer Betrachtskamera, enthaltend Einstellungsflags für unsichtbare der Anfangsverarbeitungsbricks und für die virtuellen Verarbeitungsbricks, wobei die sichtbaren Bricks unmarkiert bleiben, und wobei zu jedem Zeitpunkt zu dem ein gegenwärtiges Brick wiedergegeben wird, Schnittebenen, die die Grenzen des gegenwärtigen Bricks definieren, eingefügt werden, und wobei die Schnittebenen entfernt werden, wenn das gegenwärtige Brick nicht langer wiedergegeben wird; (ii) Teilen jeder der aufgeweiteten hierarchischen Strukturen, die darin das gegenwärtige nicht markierte Brick haben, in Stapel paralleler Schnitte entlang der Schnittebenen, wobei markierten Bricks ausgeschlossen sind von den parallelen Schnitten, und Sortieren der parallelen Schnitte in der Sichtbarkeitsreihenfolge; (iii) Wählen eines nächsten Schnitts in den sortierten parallelen Schnitten, wobei der nächste Schnitt zu einem gegenwärtig wiedergegebenen der Bricks gehört; (iv) Finden aller Blöcke in jedem der gegenwärtigen Bricks, die eine Ebene des nächsten in (iii) gewählten Schnitts kreuzen; (v) Holen von Voxeln von den gefundenen Blöcken; (vi) Wiedergeben der geholten Voxel in dem zweidimensionalen Bild; (vi) Wiederholen von (iii) bis von (v) bis alle sortierten parallelen Schnitte wiedergegeben sind; (vii) Zurücksetzen des gegenwärtigen Bricks.
- Verfahren nach Anspruch 3, enthaltend ein Wiederholen von (i) bis (vii) bis alle Brickkombinationen wiedergegeben sind.
- Verfahren nach Anspruch 3 oder 4, wobei die parallelen Schnitte unabhängig für jede der aufgeweiteten hierarchischen Strukturen gewählt werden, um verschachtelte Schnitte wiederzugeben.
- Verfahren nach einem der Ansprüche 3 bis 5, wobei die parallelen Schnitte der aufgeweiteten hierarchischen Strukturen ausgewählt werden, um sich einen gemeinsamen Satz von parallelen Schnitten zu teilen, um fusionierte Schnitte zu erzeugen; wobei die unsichtbaren Markierungen an die Wiedergabefunktion gegeben werden, so dass das Holen von einem unsichtbaren Brick vermieden wird und null als Wert der Voxelabtastung zugewiesen wird.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US85386506P | 2006-10-24 | 2006-10-24 | |
US60/853,865 | 2006-10-24 | ||
US11/753,092 | 2007-05-24 | ||
US11/753,092 US7961186B2 (en) | 2005-09-26 | 2007-05-24 | Brick-based fusion renderer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102007050615A1 true DE102007050615A1 (de) | 2008-04-30 |
DE102007050615B4 DE102007050615B4 (de) | 2020-01-30 |
Family
ID=39244597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102007050615.7A Active DE102007050615B4 (de) | 2006-10-24 | 2007-10-23 | Brick-basierter Fusionsrenderer |
Country Status (2)
Country | Link |
---|---|
US (1) | US7961186B2 (de) |
DE (1) | DE102007050615B4 (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8497861B2 (en) * | 2008-05-30 | 2013-07-30 | Siemens Aktiengesellschaft | Method for direct volumetric rendering of deformable bricked volumes |
US20100138793A1 (en) | 2008-12-02 | 2010-06-03 | Microsoft Corporation | Discrete objects for building virtual environments |
US9836879B2 (en) * | 2013-04-16 | 2017-12-05 | Autodesk, Inc. | Mesh skinning technique |
US10616338B1 (en) * | 2017-09-25 | 2020-04-07 | Amazon Technologies, Inc. | Partitioning data according to relative differences indicated by a cover tree |
EP3727622B1 (de) * | 2017-12-22 | 2023-09-06 | Magic Leap, Inc. | Zwischenspeicherung und aktualisierung von dichten 3d-rekonstruktionsdaten |
EP3973513A4 (de) | 2019-05-21 | 2023-06-28 | Magic Leap, Inc. | Zwischenspeicherung und aktualisierung von dichten 3d-rekonstruktionsdaten |
JP2022539314A (ja) | 2019-06-26 | 2022-09-08 | マジック リープ, インコーポレイテッド | 稠密3d再構築データのキャッシュおよび更新 |
EP3991142A4 (de) | 2019-06-28 | 2023-06-28 | Magic Leap, Inc. | Schnelles hand-meshing für dynamische okklusion |
CN111339595B (zh) * | 2020-02-27 | 2023-10-03 | 杭州群核信息技术有限公司 | 云计算环境下扣板模型的切割系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556199B1 (en) * | 1999-08-11 | 2003-04-29 | Advanced Research And Technology Institute | Method and apparatus for fast voxelization of volumetric models |
WO2001063561A1 (en) * | 2000-02-25 | 2001-08-30 | The Research Foundation Of State University Of New York | Apparatus and method for volume processing and rendering |
WO2001093745A2 (en) * | 2000-06-06 | 2001-12-13 | The Research Foundation Of State University Of New York | Computer aided visualization, fusion and treatment planning |
CA2466809A1 (en) * | 2001-11-21 | 2003-06-05 | Viatronix Incorporated | System and method for visualization and navigation of three-dimensional medical images |
US7304645B2 (en) * | 2004-07-15 | 2007-12-04 | Harris Corporation | System and method for improving signal to noise ratio in 3-D point data scenes under heavy obscuration |
US7460119B2 (en) * | 2005-01-27 | 2008-12-02 | Siemens Medical Solutions Usa, Inc. | Invisible space skipping with adaptive granularity for texture-based volume rendering |
-
2007
- 2007-05-24 US US11/753,092 patent/US7961186B2/en active Active
- 2007-10-23 DE DE102007050615.7A patent/DE102007050615B4/de active Active
Also Published As
Publication number | Publication date |
---|---|
DE102007050615B4 (de) | 2020-01-30 |
US7961186B2 (en) | 2011-06-14 |
US20070247459A1 (en) | 2007-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102007050615B4 (de) | Brick-basierter Fusionsrenderer | |
DE69636599T2 (de) | Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild | |
DE10296401B4 (de) | Verbund-Rendering von 3-D-Graphikobjekten | |
DE102005023964A1 (de) | Volumenvisualisierung mittels Texturverschiebung | |
DE69233717T2 (de) | Verbesserungen in sichtbarkeit-berechnungen fuer 3d-rechner | |
DE69919497T2 (de) | Verfahren und Gerät zur Volumendarstellung mit mehreren Tiefenpuffern | |
DE69737780T2 (de) | Verfahren und Vorrichtung zur Bildverarbeitung | |
DE69908966T2 (de) | Schattierung von 3-dimensionalen rechner-erzeugten bildern | |
DE69821848T2 (de) | Echt-Zeit PC basiertes Volumendarstellungssystem | |
DE69836924T2 (de) | Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe | |
DE3872031T2 (de) | Verfahren zum berechnen und zur wiedergabe von sichtbildern eines objektes. | |
DE112005002076T5 (de) | Unterteilung von Geometriebildern in Grafikhardware | |
DE3712639A1 (de) | Verfahren und einrichtung zum abbilden von volumendaten | |
DE102005029240A1 (de) | System und Verfahren für ein schnelles Volumen-Rendern | |
DE102016103870A1 (de) | Systeme und Verfahren zur weichen Schattierung in 3D-Rendering | |
DE19917092A1 (de) | Verfahren zur Rasterisierung eines Graphikgrundelements | |
DE112012003243T5 (de) | Systeme und Verfahren für die Erzeugung und Aktualisierung für 3D-Szenenbeschleunigungsstrukturen | |
DE102015107869A1 (de) | Vergabe von Primitiven an Primitiv-Blöcke | |
DE19806985B4 (de) | Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht | |
DE102019118838A1 (de) | Virtuelle photogrammetrie | |
DE102013020810A1 (de) | Effiziente Super-Abtastung mit Schattierungs-Strängen pro Pixel | |
DE102008050449A1 (de) | Clipping Geometrien beim Raycasting | |
DE69531536T2 (de) | Synthetisches bilderzeugungsverfahren mit sphärischem puffer | |
DE102008050049B4 (de) | Verfahren zur Bestimmung einer die Objektgrenze eines Objekts in einem digitalen 3D-Datensatz annähernden 3D-Oberfläche | |
DE112022003547T5 (de) | Verschobene Mikronetz-Kompression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R081 | Change of applicant/patentee |
Owner name: SIEMENS HEALTHCARE GMBH, DE Free format text: FORMER OWNER: SIEMENS MEDICAL SOLUTIONS USA, INC., MALVERN, PA., US |
|
R082 | Change of representative |
Representative=s name: BALS & VOGEL PATENTANWAELTE PARTG MBB, DE Representative=s name: BALS & VOGEL PATENTANWAELTE, DE |
|
R082 | Change of representative |
Representative=s name: BALS & VOGEL PATENTANWAELTE PARTG MBB, DE Representative=s name: BALS & VOGEL PATENTANWAELTE, DE |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06T0015000000 Ipc: G06T0015080000 |
|
R020 | Patent grant now final | ||
R082 | Change of representative |
Representative=s name: BALS & VOGEL PATENTANWAELTE PARTG MBB, DE |
|
R081 | Change of applicant/patentee |
Owner name: SIEMENS HEALTHINEERS AG, DE Free format text: FORMER OWNER: SIEMENS HEALTHCARE GMBH, MUENCHEN, DE |