DE69907415T2 - Bestimmung sichtbarer objekte für interaktive visualisation - Google Patents

Bestimmung sichtbarer objekte für interaktive visualisation Download PDF

Info

Publication number
DE69907415T2
DE69907415T2 DE69907415T DE69907415T DE69907415T2 DE 69907415 T2 DE69907415 T2 DE 69907415T2 DE 69907415 T DE69907415 T DE 69907415T DE 69907415 T DE69907415 T DE 69907415T DE 69907415 T2 DE69907415 T2 DE 69907415T2
Authority
DE
Germany
Prior art keywords
cone
boundary
hierarchy
partial
distance
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.)
Expired - Fee Related
Application number
DE69907415T
Other languages
English (en)
Other versions
DE69907415D1 (de
Inventor
Henry Sowizral
Karel Zikan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69907415D1 publication Critical patent/DE69907415D1/de
Publication of DE69907415T2 publication Critical patent/DE69907415T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. TECHNISCHES UMFELD
  • Die vorliegende Erfindung bezieht sich auf den Bereich der Computergrafik und genauer gesagt auf das Problem, die Menge von Objekten/Oberflächen zu bestimmen, die von einem definierten Blickpunkt bzw. Aussichtspunkt in einer grafischen Umgebung aus sichtbar sind.
  • 2. ZUGRUNDELIEGENDER STAND DER TECHNIK
  • Visualisierungssoftware hat sich zum Auswerten bzw. Berechnen von dreidimensionalen Entwürfen lange vor der physikalischen Realisierung solcher Entwürfe als sehr nützlich erwiesen. Darüber hinaus hat Visualisierungssoftware ihre Kosteneffektivität gezeigt, indem sie Konstruktions- bzw. Technikbetrieben ermöglicht, Entwurfsprobleme früh im Entwicklungszyklus zu finden, wodurch ihnen beträchtliche Mengen an Geld gespart wird. Unglücklicherweise hat der Bedarf, immer komplexere Szenen zu betrachten bzw. zu prüfen, die Fähigkeit von Grafikhardwaresystemen, sie mit einer angemessenen Bildwiederholfrequenz anzuzeigen, hinter sich gelassen. Wenn die Komplexität von Szenen wächst, sind Entwickler von Visualisierungssoftware gezwungen, die Darstellungs- bzw. Wiedergabe-Ressourcen, die von grafischen Hardwarepipelines zur Verfügung gestellt werden, sorgfältig zu benutzen.
  • Eine Hardwarepipeline vergeudet Rendering- bzw. Darstellungsbandbreite, wenn sie das Ergebnis der Dreiecksbildung verwirft. Die Vergeudung von Darstellungsbandbreite kann gemindert werden, indem die Pipeline nicht dazu aufgefordert wird, Dreiecke zu zeichnen, die sie verwerfen wird. Verschiedene Softwareverfahren zur Reduktion von Pipelineausschuß haben sich über die Zeit entwickelt. Jede Technik reduziert den Ausschuß an einer anderen Stelle innerhalb der Pipeline. Zum Beispiel kann das Frustum Culling (Aussortieren von Objekten außerhalb des sichtbaren Bereichs) per Software in signifikanter Weise das Verwerten bei der Clipping-Berechnung in einer Pipeline reduzieren, während das Backface-Culling (Aussortieren von Rückseiten) per Software das Verwerfen bei der Beleuchtungsberechnung in einer Pipeline reduzieren kann.
  • Der z-Puffer ist der abschließende bzw. letzte Teil der Grafikpipeline, der Arbeitsaufwand bzw. -ergebnis verwirft. Im Wesentlichen behält der z-Puffer sichtbare Oberflächen bei und verwirft diejenigen, die nicht sichtbar sind. Wenn die Komplexität von Szenen zunimmt, speziell in Architekturvisualisierungs- bzw. Walk-through- und CAD-Umgebungen, dann steigt die Anzahl von verdeckten Oberflächen schnell an und als ein Ergebnis davon steigt die Anzahl von Oberflächen, die der z-Puffer verwirft, auch an. Die durchschnittliche Tiefenkomplexität eines Bildes bzw. Frames bestimmt ungefähr, wieviel Arbeitsaufwand bzw. -ergebnis (und somit Darstellungsbandbreite) der z-Puffer verwirft. In einem Frame mit eine Tiefenkomplexität pro Pixel von d ist die Effektivität der Pipeline 1/d. Wenn die Tiefenkomplexität zunimmt, wird die Hardwarepipeline proportional immer weniger effektiv.
  • Das Occlusion Culling bzw. das Aussortieren von Verdeckung in Software wurde als ein zusätzliches Werkzeug zum Verbessern der Darstellungseffektivität vorgeschlagen. Ein Visualisierungsprogramm, das das Aussortieren von Verdeckungen effektiv durchführt, vergrößert die gesamte Darstellungsbandbreite der Grafikhardware, indem die Hardwarepipeline nicht dazu gebracht wird, verdeckte Objekte zu zeichnen. Die sichtbaren Objekte einer Szene zu berechnen ist das komplementäre Problem zu dem des Aussortierens von Verdeckungen. Statt verdeckte Objekte aus der Menge der Objekte in einer Szene oder einer mit Frustrum Culling bearbeiteten Szene zu entfernen, berechnet ein Programm stattdessen, welche Objekte sichtbar sind und zeichnet nur diese. Ein einfaches Visualisierungsprogramm kann die Menge der sichtbaren Objekte berechnen und diese Objekt vom aktuellen Blickpunkt aus zeichnen, wodurch es der Pipeline möglich ist, Backfacing-Polygone zu entfernen, und es dem z-Puffer möglich ist, alle nicht-sichtbaren Oberflächen zu entfernen.
  • Eine Technik zum Berechnen der sichtbaren Objektmenge verwendet das Strahlenwerfen bzw. Ray Casting. RealEyes [Sowizral, N. A., Zikan. K., Esposito, C., Janin, A., Mizell, D. "RealEyes: A System for Visualizing Very Large Physical Structures", SIGGRAPH '94, Visual Proceedings, 1994, S. 228], ein System, das die Ray Casting Technik implementiert, wurde im BOOM-Raum bei der SIGGRAPH 1994 vorgeführt. Mit interaktiven Geschwindigkeiten konnten Besucher um das Innere einer Boeing 747"herumlaufen" oder die Strukturen, die das Labormodul der Weltraumstation Freedom enthält, erkunden.
  • Die Idee bzw. Intuition beim Gebrauch von Strahlen beim Bestimmen der Sichtbarkeit beruht auf den Eigenschaften von Licht. Das erste Objekt, das entlang eines Strahls angetroffen wird, ist sichtbar, da es allein Licht in das Auge des Beobachters reflektieren kann. Ferner stellt sich dieses Objekt zwischen den Beobachter und alle nachfolgenden Objekte entlang des Strahls und bewirkt, daß diese nicht sichtbar sind. In der diskreten Welt der Computergrafik ist es schwierig, ein Kontinuum von Strahlen zu verbreiten. Daher wird ausnahmslos eine diskrete Teilmenge von Strahlen verwendet. Natürlich führt das dazu, daß sichtbare Objekte oder Segmente von Objekten, die kleiner sind als die Auflösung der Strahlenauswahl verfehlt werden können und nicht entdeckt werden. Das liegt daran, daß Strahlen eine korrekte Bestimmung von sichtbaren Objekten nur bis zur Dichte der Strahlenauswahl garantieren. 1 veranschaulicht das strahlenbasierte Verfahren der Entdekkung sichtbarer Objekte. Strahlen, die auf ein oder mehrere Objekten einwirken, sind mit einem Punkt an der Stelle, an der sie zum ersten Mal Kontakt mit einem Objekt haben, gekennzeichnet. Es ist dieser Punkt des ersten Kontaktes, der den Wert des Bildschirmpixels, das dem Strahl entspricht, festlegt. Es ist ferner zu beobachten, daß das mit A bezeichnete Objekt klein genug ist, um vollkommen von der gegebenen Strahlenauswahl verfehlt zu werden.
  • Die Bestimmung von sichtbaren Objekten hat ihre Wurzeln in der Bestimmung von sichtbaren Oberflächen. Foley et al. [Foley, J., van Dam, A., Feiner, S. und Hughes, J. Computer Graphics: Principles and Practice, 2. Aufl. Addison-Wesley, Kapitel 15, S. 649–718, 1996] unterteilen Ansätze zur Bestimmung von sichtbaren Oberflächen in zwei große Gruppen: Bildraum- und Objektraum-Algorithmen. Bildraum-Algorithmen arbeiten typischerweise mit der Auflösung der Anzeigeeinrichtung und tendieren dazu, eine höhere Berechnungsleistung zu haben. Objektraum-Ansätze (object precision) arbeiten in einem Objektraum – und führen gewöhnlich Vergleiche zwischen Objekt und Objekt durch.
  • Ein prototypischer Bildraum-Algorithmus zur Bestimmung von sichtbaren Oberflächen wirft Strahlen vom Blickpunkt aus durch das Zentrum jedes Anzeigepixels, um die nächstgelegene sichtbare Oberfläche entlang jedes Strahls zu bestimmen. Die Liste der Anwendungen des Strahlenwerfens (oder der Strahlenverfolgung) ist lang und unterschiedlich. Appel ["Some Techniques for Shading Machine Rendering of Solids", SJCC'68, S. 375, 1968] verwendet das Strahlenwerfen für das Shading. Goldstein und Nagel [Mathematical Applications Group, Inc., "3-D Simulated Graphics Offered by Service Bureau", Datamation, 13(1), Februar 1968, S. 69.; siehe auch Goldstein, R. A. und Nagel, R. "3-D Visual Simulation", Simulation, 16(1), S. 25–31, 1971] verwenden das Strahlenwerfen für Boole'sche Mengenoperationen. Kay et. al. [Kay, D. S. und Greenberg, D., "Transparency for Computer Synthesized Images", SIGGRAPH'79, S. 158–168] und Whitted ["An Improved Illumination Model for Shaded Display", CACM, 23(6), S. 343–349, 1980] verwenden die Strahlenverfolgung für Berechnungen der Brechung und der Spiegel-Reflexion. Airey et al. [Airey, J. M., Rohlf, J. H. und Brooks, Jr. F. P. "Towards Image Realism with Interactive Update Rates in Complex Virtual Building Environments". ACM SIGGRAPH Symposium on Interactive 3D Graphics, 24, 2(1990), S. 41–50] verwendet das Strahlenwerten zum Berechnen des Teils eines Musters, das von einer gegebenen Zelle aus sichtbar ist.
  • Ein weiterer Ansatz zur Bestimmung sichtbarer Oberflächen stützt sich auf das Senden von Leitstrahlen oder Konen in eine Datenbank von Oberflächen [siehe Dadoun et al., "Hierarchical approaches to hidden surface intersection testing." Proceedings of Graphics Interface '82, Toronto, Mai 1982, 49–56; siehe auch Dadoun et al., "The geometry of beam tracing." In Joseph O'Rourke, ed., Proceedings of the Symposium on Computational Geometry, S. 55–61, ACM Press, New York, 1985]. Im Wesentlichen werden Leitstrahlen zu einem Ersatz für Strahlen. Der Ansatz führt gewöhnlich dazu, daß kompakte Leitstrahlen in eine Menge möglicherweise nicht-zusammenhängender Konen zerfallen, nachdem sie auf ein Objekt eingewirkt haben.
  • Eine Vielfalt von räumlichen Unterteilungsschemata wurde verwendet, um den Objekten einer Szene eine räumliche Struktur aufzuerlegen. [Die folgenden vier Referenzen beziehen sich auf räumliche Unterteilungsschemata: (a) Glassner, "Space subdivision for fast ray tracing", IEEE CG&A, 4(10): 15–22, Okt. 1994; (b) Jevans et al., "Adaptive voxel subdivision for ray tracing", Proceedings Graphics Interface '89, 164–172, Juni 1989; (c) Kaplan, M. "The use of spatial coherence in ray tracing", in Techniques for Computer Graphics ..., Rogers, D. and Earnshaw R. A. (eds), Springer-Verlag, New York, 1987; and (d) Rubin, S. M. und Whitted, T. "A 3-dimensional representation for fast rendering of complex scenes", Computer Graphics, 14(3): 110–116, Juli 1980.]
  • Kay et al. [Kay, T. L. und Kajiya, J. T. "Ray Tracing Complex Scenes", SIGGRAPH 1986, S. 269–278, 1986] verwenden unter Konzentration auf die Berechnungsaspekte des Strahlenwerfens eine Hierarchie von räumlichen Begrenzungsvolumina bzw. bounding volumes in Verbindung mit Strahlen, um die sichtbaren Objekte entlang jedes Strahls zu bestimmen. Natürlich muß die räumliche Hierarchie zuvor berechnet werden. Sobald dies jedoch erfolgt ist, erleichtert eine solche Hierarchie eine rekursive Berechnung zum Auffinden von Objekten. Wenn die Umgebung stationär ist, erleichtert dieselbe Datenstruktur das Auffinden der sichtbaren Objekte entlang jedes beliebigen Strahls von jedem beliebigen Ursprung aus.
  • Naruse T. et al.: "Ray Tracing Using Dynamic Subtree Algorithm and Speed Evaluation", Systems & Computers in Japan, Vol. 24, No. 4,1. Januar 1993, Seiten 65–77, verwendet einen ähnlichen Algorithmus zusammen mit einer Zerteilung bzw. Zerlegung der Bildebene in ein Netz von Unterregionen.
  • Teller et al. [Teller, S. und Sequin, C. H. "Visibility Preprocessing for Interactive Walkthroughs", SIGGRAPH '91, S. 61–69] nutzen die Vorverarbeitung bei der Berechnung sichtbarer Objekte voll aus, indem sie von Zelle zu Zelle die Sichtbarkeit im voraus berechnen. Ihr Ansatz ist im wesentlichen ein Objektraum-Ansatz und sie berichten von über 6 Stunden Vorverarbeitungszeit, um 58 Mbyte von Sichtbarkeitsinformation für ein aus 250000 Polygonen bestehendes Modell auf einer 50 MIP Maschine zu berechnen [Teller, S. und Sequin, C. N. "Visibility computations in polyhedral three-dimensional environments", U. C. Berkley Report No. UCB/CSD 92/680, April 1992].
  • In einem anderen Ansatz zur Sichtbarkeitsberechnung verwenden Greene et al. [Greene, N., Kass, M. und Miller, G. "Hierarchical z-Buffer Visibility", SIGGRAPH '93, S. 231–238] eine Vielfalt von hierarchischen Datenstrukturen, um die räumliche Struktur, die im Objektraum (ein Octree (rekursive Aufteilung eines Würtels) von Objekten) inhärent ist, die in Pixeln inhärente Bildstruktur (eine Z-Pyramide) und die zeitliche Struktur, die einer Einzelbild-per-Einzelbild-Darstellung inhärent ist (eine Liste von zuvor sichtbaren Octree-Knoten), ausnutzen zu helfen. Die Z-Pyramide erlaubt das schnelle Aussortieren großer Teile des Modells durch Testen der Sichtbarkeit unter Verwendung einer schnellen Abfrageumwandlung der Würtel im Octree.
  • Die Tiefenkomplexität grafischer Umgebungen nimmt weiterhin als Reaktion auf die Forderung der Konsumenten nach Realismus bzw. Realitätsnähe und Performanz zu. Daher hat die Effizienz eines Algorithmus' zur Bestimmung sichtbarer Objekte einen direkten Einfluß auf die Marktgängigkeit bzw. Absetzbarkeit eines Visualisierungssystems. Die vom Algorithmus zur Bestimmung sichtbarer Objekte benötigte Berechungsbandbreite bestimmt die Klasse von Prozessoren, die für das Visualisierungssystems benötigt wird, und beeinflußt damit die Gesamtkosten des Systems. Daher ist ein System oder Verfahren zur Verbesserung der Effizienz der Bestimmung sichtbarer Objekte im hohen Maße wünschenswert.
  • OFFENBARUNG DER ERFINDUNG
  • Die vorliegende Erfindung umfaßt ein System und ein Verfahren zum Anzeigen sichtbarer Objekte in einer grafischen Umgebung. Im besonderen wird hier ein System und ein Verfahren zur Durchführung der Bestimmung sichtbarer Objekte basierend auf einem dualen bzw. doppelten Durchsuchen einer Konushierarchie und einer Begrenzungshierarchie offenbart. Das System enthält einen Prozessor, eine Anzeigeeinheit, einen Systemspeicher und optional einen Grafikbeschleuniger. Der Prozessor führt Visualisierungssoftware aus, die eine Visualisierung einer Zusammenstellung bzw. Sammlung von dreidimensionalen Objekten auf der Anzeigeeinheit liefert. Die Objekte befinden sich in einem dreidimensionalen Raum und bieten daher die Möglichkeit, sich gegenseitig zu verdecken.
  • Die Visualisierungssoftware stellt den Raum mittels einer Hierarchie von Konen dar, die vom Blickpunkt ausgehen. In einer Ausführungsform schneiden die Blattkonen der Hierarchie, d. h. die Konen auf der höchsten Stufe der Verfeinerung, eine Fläche, die einem Bruchteil eines Pixels in der Bildschirmfläche entspricht. Zum Beispiel können zwei Konen in geeigneter Weise die Fläche eines Pixels ausfüllen. Alternativ kann sich der Blattkonus Flächen schneiden, die ein oder mehrere Pixel einschließen.
  • Ein anfängliches Sichtvolumen oder eine Umgebung des Sichtvolumens wird rekursiv tesselliert bzw. schachbrettartig eingeteilt (d. h. verfeinert), um eine Hierarchie von Konen zu erzeugen. Alternativ kann der gesamte Raum um den Sicht- bzw. Blickpunkt rekursiv tesselliert werden, um die Hierarchie von Konen zu erzeugen. In diesem Fall braucht die Hierarchie von Konen für Änderungen des Blickpunktes oder der Blickrichtung nicht neu berechnet zu werden.
  • Die Visualisierungssoftware erzeugt auch eine Hierarchie von Umgrenzungen aus der Zusammenstellung von Objekten. Im besonderen wird die Umgrenzungshierarchie erzeugt durch: (a) sich rekursiv gruppierende Cluster, die mit den Objekten selbst beginnen als Cluster der Ordnung Null, (b) Umgeben bzw. Umgrenzen jedes Objektes und Cluster (aller Ordnungen) mit einer entsprechenden Umgrenzung, z. B. eine polytope bzw. vielflächige Hülle bzw. Polyederhülle, (c) Zuordnen bzw. Belegen eines Knotens in der Umgrenzungshierarchie zu jedem Objekt und Cluster, und (d) Organisieren der Knoten in der Umgrenzungshierarchie, damit sie die Clusterzugehörigkeit widerspiegeln. Wenn zum Beispiel Knoten A der Elternknoten von Knoten B ist, enthält der dem Knoten A entsprechende Cluster einen Teilcluster (oder Objekt), der Knoten B entspricht. Jeder Knoten speichert Parameter, welche die Umgrenzung des entsprechenden Clusters oder Objekts beschreiben bzw. kennzeichnen.
  • Die Visualisierungssoftware führt eine Suche in der Konus- und Umgrenzungshierarchie durch, wobei sie beim Wurzelkonus und der Wurzelumgrenzung anfängt. Jedem Blattkonus wird ein Wert des Sichtbarkeitsabstandes zugewiesen, der den Abstand zum nächstgelegenen, bekannten Objekt, wie es von innerhalb des Blattkonus wahrgenommen wird, darstellt. Jedem Blattkonus wird ebenso ein Objektattribut zugewiesen, welches das nächstgelegene, bekannte Objekt innerhalb der Ansicht des Blattkonus angibt. In ähnlicher Weise wird jedem Nicht-Blattkonus ein Wert des Sichtbarkeitsabstandes zugewiesen. Jedoch wird der Wert des Sichtbarkeitsabstandes eines Nicht-Blattkonus gleich den maximalen Werten des Sichtbarkeitsabstandes seiner Unterkonus-Kinder gesetzt. Dies führt dazu, daß der Wert des Sichtbarkeitsabstandes bei jedem Nicht-Blattkonus gleich dem Maximum der Werte des Sichtbarkeitsabstandes seiner Blattkonus-Nachkommen bzw. -Abkömmlinge ist.
  • Die Sichtbarkeitssoftware arbeitet auf Konus-Umgrenzungs-Paaren. Bevor ein gegebenes Konus-Umgrenzungs-Paar untersucht wird, wird der Abstand zwischen dem Konus und der Umgrenzung gemessen. Das schließt die Bestimmung des minimalen Abstandes zu Punkten ein, die sich von der Spitze des Konus aus sowohl innerhalb der Umgrenzung als auch innerhalb des Konus befinden. Dieser Konus-Umgrenzungs-Abstand wird daraufhin mit dem Wert des Sichtbarkeitsabstandes des Konus verglichen. Wenn der Konus-Umgrenzungs-Abstand größer als der Wert des Sichtbarkeitsabstandes des Konus ist, haben alle Blattkonus-Abkömmlinge des gegebenen Konus einen kürzeren Abstand zu bekannten sichtbaren Objekten als die gegebene Umgrenzung aufgrund der Definition des Wertes des Sichtbarkeitsabstandes. Daher kann aus einer Untersuchung des Konus-Umgrenzungs-Paares kein Nutzen gezogen werden. Wenn im Gegensatz dazu der Konus-Umgrenzungs-Abstand kleiner als der Wert des Sichtbarkeitsabstandes des Konus ist, kann die Umgrenzung Objekte enthalten, welche die Werte des Sichtbarkeitsabstandes eines oder mehrerer Blattkonus-Abkömmlinge des gegebenen Konus beeinflussen. Das Konus-Umgrenzungs-Paar muß durchsucht werden. Entsprechend der vorliegenden Erfindung werden Konus-Umgrenzungs-Paare vorteilhafterweise nur durchsucht, wenn es eine Möglichkeit gibt, daß die gegebene Umgrenzung die Sichtbarkeit der Abkömmlinge des Konus beeinflußt. Daher vermeidet der Suchalgorithmus der vorliegenden Erfindung unnötige Konus-Umgrenzungs-Untersuchungen und spart dadurch in beträchtlichem Umfang Rechenbandbreite ein.
  • Angenommen, daß die Suchbedingung erfüllt ist, dann wird die Umgrenzung im Hinblick auf den gegebenen Konus untersucht. Wenn der Konus und die Umgrenzung beide Blätter ihrer entsprechenden Hierarchien sind, gibt die Umgrenzung ein Objekt an, das näher liegt als das für den Blattkonus nächstgelegene bekannte Objekt. Daher wird der Wert des Sichtbarkeitsabstandes des Blattkonus mit dem Konus-Umgrenzungs-Abstand zwischen dem Konus und der Umgrenzung aktualisiert. Ebenso wird das Objektattribut für den Konus aktualisiert, um auf die gegebene Umgrenzung zu zeigen.
  • Im Fall, daß der Konus ein Blattkonus und die Umgrenzung keine Blattumgrenzung ist, prüft der Suchalgorithmus die Untergrenzen und untersucht unter Vorbehalt diese Unterumgrenzen in ansteigender Reihenfolge ihres Konus-Umgrenzungs-Abstandes vom gegebenen Konus. Wiederum ist eine Untersuchung einer Untergrenze davon abhängig, ob die Untergrenzung einen Konus-Umgrenzungs-Abstand zum gegebenen Konus erzielt, der kleiner als der Wert des Sichtbarkeitsabstandes des Konus ist.
  • Im Fall, daß der Konus kein Blattkonus und die Umgrenzung eine Blattumgrenzung ist (d. h. eine, die ein einzelnes Objekt umgrenzt), untersucht der Suchalgorithmus unter Vorbehalt Unterkonen des gegebenen Konus bezogen auf die gegebene Umgrenzung. Eine Untersuchung eines Unterkonus ist abhängig davon, ob der Unterkonus einen Konus-Umgrenzungs-Abstand zur gegebenen Umgrenzung erzielt, der kleiner als der Sichtbarkeitsabstand des Unterkonus ist.
  • Im Fall, daß der Konus kein Blattkonus und die Umgrenzung keine Blattumgrenzung ist, untersucht der Suchalgorithmus unter Vorbehalt Unterumgrenzungen der gegebenen Umgrenzung in Abhängigkeit von den Unterkonen des gegebenen Konus. Betrachten wir einen bestimmten Unter konus des gegebenen Konus zum Zweck der Diskussion. Die Unterumgrenzungen der gegebenen Umgrenzung werden unter Vorbehalt Im Vergleich zu dem Unterkonus in aufsteigender Reihenfolge ihres Konus-Umgrenzungs-Abstandes vom Unterkonus untersucht. Da die nächstgelegene Unterumgrenzung zuerst durchsucht wird und möglicherweise den Wert des Sichtbarkeitsabstandes des gegebenen Unterkonus verkleinert, haben nachfolgende (weiter entfernte) Unterumgrenzungen größere Schwierigkeiten, die Suchbedingung zu erfüllen, d. h. einen Konus-Umgrenzungs-Abstand zum gegebenen Unterkonus zu haben, der kleiner als der Wert des Sichtbarkeitsabstandes des gegebenen Unterkonus ist. Daher wird die Wahrscheinlichkeit maximiert, daß die kleinste Anzahl von Unterumgrenzungen untersucht werden muß, indem die bedingten Untersuchungen entsprechend des Konus-Umgrenzungs-Abstandes angeordnet werden.
  • Wenn das Durchsuchen der beiden Bäume abgeschlossen ist, zeigen die Objektattribute jedes Blattkonus auf das Objekt, das für den Blattkonus sichtbar ist, und der Sichtbarkeitsabstand des Blattkonus gibt den Abstand zu dem sichtbaren Objekt an. Diese Information zur Sichtbarkeit wird an den Grafikbeschleuniger übergeben, so daß der Grafikbeschleuniger die sichtbaren Objekte (oder sichtbare Teile von sichtbaren Objekten) auf der Anzeigeeinrichtung darstellen kann.
  • In einer Ausführungsform sieht die Visualisierungssoftware interaktive Visualisierung durch Lesen von Benutzereingaben zur Steuerung des aktuellen Blickpunktes und der Blickrichtung in der grafischen Umgebung vor. Zusätzliche Software stellt effiziente Berechnung durch die Verwendung einer sorgfältigen Zustandsverwaltung und der Parallelität sicher.
  • In einer alternativen Ausführungsform werden die Konushierarchie und die Umgrenzungshierarchie iterativ durchsucht. In einer zweiten alternativen Ausführungsform wird eine stufenweise geordnete Durchsuchung auf der Konushierarchie und der Umgrenzungshierarchie vorgenommen.
  • Die vorliegende Erfindung betrachtet eine große Vielfalt von Techniken zum Messen der Größe des Abstandes oder der Nähe zwischen Umgrenzung und Konus. Ein Satz von Ausführungsformen konzentriert sich auf die Minimierung einer ansteigenden Funktion des Abstandes zwischen der Spitze bzw. dem Vertex des Konus und Punkten im Schnitt bzw. in der Schnittmenge zwischen dem Konus und der Umgrenzung. Ein anderer Satz von Ausführungsformen schließt das Maximieren einer abfallenden Funktion des Abstandes zwischen der Spitze des Konus und Punkten in der Schnittmenge zwischen dem Konus und der Umgrenzung ein. Im allgemeinen kann jede Wellenfront mit einer Grenze, die eine gemäßigte bzw. sanfte "Sternform"-Bedingung einhält, die Grundlage für eine Messung des Abstandes zwischen einer Umgrenzung und einem Konus darstellen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt das strahlenbasierte Verfahren der Erfassung sichtbarer Objekte nach dem Stand der Technik dar;
  • 2A stellt ein grafisches Computersystem gemäß der vorliegenden Erfindung dar;
  • 2B ist eine Blockdiagramm, das eine Ausführungsform des grafischen Computersystems der vorliegenden Erfindung darstellt;
  • 3 stellt verschiedene Hauptphasen der Visualisierungssoftware gemäß der vorliegenden Erfindung dar;
  • 4A stellt eine Sammlung von Objekten in einer grafischen Umgebung dar;
  • 4B stellt einen ersten Schritt der ersten Bildung einer Hüllenhierarchie dar, d. h. den Schritt, Objekte mit enthaltenden Hüllen zu umgrenzen und den enthaltenden Hüllen Hüllenknoten zuzuordnen;
  • 4C stellt den Prozeß des Gruppierens von Hüllen zum Bilden von Hüllen höherer Ordnung und des Zuordnens von Knoten in der Hüllenhierarchie dar, die den Hüllen höherer Ordnung entsprechen;
  • 4D stellt den Höhepunkt des rekursiven Gruppierungsprozesses dar, wobei alle Objekte in einer universellen, umfassenden Hülle enthalten sind, die dem Wurzelknoten der Hüllenhierarchie entspricht;
  • 5A stellt die mathematischen Ausdrücke dar, die Linien und Halbebenen im zweidimensionalen Raum beschreiben;
  • 5B stellt die Beschreibung eines rechteckigen Bereiches als den Schnittpunkt von vier Halbebenen in einem zweidimensionalen Raum dar;
  • 6 stellt einen zweidimensionalen Konus dar, der in eine Anzahl von Unterkonen unterteilt ist, die mit einer Zusammenstellung von Objekten mittels Wellenfronten, die sich innerhalb jedes Unterkonus fortpflanzen, wechselwirken;
  • 7 stellt vielflächige Konen mit rechteckigen und dreieckigen Querschnitten dar, die vom Ursprung ausgehen;
  • 8A stellt die mathematischen Ausdrücke dar, die eine Linie durch den Ursprung und eine entsprechende Halbebene bei gegebenem Normalenvektor im zweidimensionalen Raum beschreiben;
  • 8B stellt die Spezifikation eines zweidimensionalen Konusbereiches als den Schnittpunkt zweier Halbebenen dar;
  • 9A9C stellen die Bildung einer Konushierarchie gestützt auf wiederholte Unterteilung eines anfänglichen Konus mit rechteckigem bzw. rechtwinkligem Querschnitt dar;
  • 10 stellt einen Sichtbarkeitssuchalgorithmus gemäß der vorliegenden Erfindung dar;
  • 11 stellt ein Verfahren zum Anzeigen von sichtbaren Objekten in einer grafischen Umgebung dar;
  • 12 stellt den Prozeß der rekursiven Clusterbildung einer Zusammenstellung von Objekten zur Bildung der Umgrenzungshierarchie dar;
  • 13 stellt die Verarbeitungsschritte dar, die auszuführen sind, wenn die Sichtbarkeitssuche bei einem Endkonus und einer Endumgrenzung ankommt;
  • 14 stellt die Verarbeitungsschritte dar, die auszuführen sind, wenn die Sichtbarkeitssuche bei einem Endkonus und einer Nicht-Endumgrenzung ankommt;
  • 15 verfeinert Schritt 712 von 14 weiter, d. h. den Schritt des bedingten Untersuchens der Unterumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Konus;
  • 16 verfeinert Schritt 722 von 15 weiter, d. h. den Schritt des bedingten Durchsuchens der Unterumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Konus, zum Beispiel mittels einer generischen Unterumgrenzung;
  • 17 stellt die Verarbeitungsschritte dar, die auszuführen sind, wenn die Sichtbarkeitssuche bei einer Endumgrenzung und einem Nicht-Endkonus ankommt;
  • 18 verfeinert Schritt 742 von 17 weiter, d. h. den Schritt des bedingten Durchsuchens der Unterkonen des ersten Konus in Bezug auf die erste Umgrenzung mittels eines generischen Unterkonusbeispiels;
  • 19 stellt die Verarbeitungsschritte dar, die auszuführen sind, wenn die Sichtbarkeitssuche bei einer Nicht-Endumgrenzung und einem Nicht-Endkonus ankommt;
  • 20 verfeinert Schritt 762 von 19 weiter, d. h. den Schritt des bedingten Untersuchens der Unterumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Unterkonus; und
  • 21 verfeinert Schritt 772 von 20 weiter, d. h. den Schritt des bedingten Durchsuchens der Unterumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Unterkonus mittels eines generischen Unterhüllenbeispiels.
  • ART(EN) DER REALISIERUNG DER ERFINDUNG
  • 2A stellt ein grafisches Computersystem 80 gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung dar. Das grafische Computersystem 80 umfaßt eine Systemeinheit 82 und eine mit der Systemeinheit 82 verbundene Anzeigeeinrichtung 84. Die Anzeigeeinrichtung 84 kann mittels verschiedener Arten von Videomonitoren oder grafischen Displays realisiert werden. Das grafische Computersystem 80 enthält weiter eine Tastatur 86 und vorzugsweise eine Maus 88.
  • 2B ist ein Blockdiagramm, das eine Ausführungsform des grafischen Computersystems 80 veranschaulicht. Wie dargestellt enthält das grafische Computersystem 80 eine zentrale Host-Prozessoreinheit (Central Processing Unit, CPU) 102, die an einen Hochgeschwindigkeitsbus oder Systembus 104 angeschlossen ist. Ein Systemspeicher 106 ist vorzugsweise auch an den Systembus 104 angeschlossen. Der Systemspeicher 106 kann beliebige verschiedenartige Speichersubsysteme einschließlich Direktzugriffsspeicher (RAM), nur lesbarem Speicher (ROM) und/oder Massenspeichereinrichtungen enthalten. Der Hostprozessor 102 führt ein Visualisierungssoftwareprogramm aus, das die Menge der sichtbaren Objekte in einer Szene ermittelt. Das Visualisierungssoftwareprogramm ist im Systemspeicher 106 gespeichert. Nach einer alternativen Ausführungsform wird das Visualisierungssoftwareprogramm auf einem Prozessor innerhalb des Grafikbeschleunigers 112 ausgeführt.
  • Ein optionaler 3-D Grafikbeschleuniger 112 kann an den Systembus 104 angeschlossen sein. Wenn der 3D-Beschleuniger 112 nicht im grafischen Computersystem 80 enthalten ist, dann kann die Anzeigeeinrichtung 84 direkt an den Systembus 104 angeschlossen sein. Es wird angenommen, daß verschiedene andere Peripherieeinrichtungen oder andere Busse mit dem Systembus 104 verbunden sein können, wie es nach dem Stand der Technik wohlbekannt ist. Die Anzeigeeinrichtung 84 ist auch an den 3-D Grafikbeschleuniger 112 angeschlossen. Die CPU 102 kann Infor mation zum und vom Grafikbeschleuniger 112 gemäß einem programmierten Eingabe-/Ausgabe (I/O) Protokoll über den Systembus 104 übertragen. Darüber hinaus kann der Grafikbeschleuniger 112 auf den Systemspeicher 106 gemäß einem Speicherdirektzugriffs- (Direct Memory Access, DMA) Protokoll oder durch intelligentes Busmastering zugreifen.
  • Der 3-D Grafikbeschleuniger 112 ist ein spezialisiertes Subsystem zur grafischen Darstellung, das dafür ausgelegt ist, den Hostprozessor von den 3-D Darstellungsfunktionen zu entlasten und damit eine verbesserte Systemleistung bereitzustellen. In einem System mit einem 3-D Grafikbeschleuniger erzeugt ein Grafikanwendungsprogramm, das auf dem Hostprozessor 102 ausgeführt wird, dreidimensionale, geometrische Daten, die dreidimensionale Grafikelemente für die Ausgabe auf der Anzeigeeinrichtung 84 definieren. Das Anwendungsprogramm überträgt die Geometriedaten zum Grafikbeschleuniger 112. Der Grafikbeschleuniger 112 empfängt die Geometriedaten und stellt die entsprechenden Grafikelemente auf der Anzeigeeinrichtung dar. Ein grundlegendes Ziel der Computergrafik ist es, Objekte darzustellen, die dem Benutzer wirklichkeitsnah bzw. realistisch erscheinen. Das Problem der visuellen Wirklichkeitsnähe ist jedoch recht kompliziert. Objekte in der "realen Welt" enthalten eine unglaubliche Menge von Details einschließlich feiner Variationen bzw. Schwankungen in der Farbe, Spiegelungen und Unregelmäßigkeiten der Oberfläche. Anwendungen, die dreidimensionale Grafik anzeigen, benötigen eine enorme Menge von Verarbeitungsbandbreite. Zum Beispiel muß ein Computersystem zur Erzeugung glatter bzw. gleichmäßig bewegter 3-D Bilder bzw. bewegter Videodarstellungen eine Bildwiederholrate oder Aktualisierungs- bzw. Erneuerungsrate zwischen 20 und 30 Bildern bzw. Frames pro Sekunde aufrechterhalten. Dies erfordert typischerweise einen 3-D Grafikbeschleuniger, der in der Lage ist, über eine Million Dreiecke pro Sekunde zu verarbeiten.
  • Das Computersystem 80 enthält Visualisierungssoftware gemäß der vorliegenden Erfindung. Die Visualisierungssoftware wird vorzugsweise auf einem Hostprozessor 102 ausgeführt oder kann alternativ auf einem Prozessor, der im Grafikbeschleuniger 112 enthalten ist, ausgeführt werden.
  • Architektur der Visualisierungssoftware
  • Wie in 3 dargestellt umfaßt die Visualisierungssoftware der vorliegenden Erfindung drei Hauptphasen. In einem ersten Schritt 210 lädt die Visualisierungssoftware eine Szene. Die Szene enthält eine Mehrzahl von Objekten. Das Laden der Szene umfaßt das Aufbauen einer Objekthierarchie – wenn sie nicht bereits aufgebaut wurde. In Schritt 220 findet die Visualisierungssoftware die Menge von sichtbaren Objekten in der Szene bezogen auf einen aktuellen Blickpunkt heraus. Nach einer bevorzugten Ausführungsform ist die Visualisierungssoftware darauf ausgelegt, die Sichtbarkeit dreidimensionaler Objekte von einem Blickpunkt aus in einem dreidimensionalen Koordinatenraum zu berechnen. Jedoch läßt sich die Methodik, die hier beschrieben wird, natürlich auf Räume beliebiger Dimension verallgemeinern.
  • Nach einer Ausführungsform der Visualisierungssoftware kann der Sicht- bzw. Blickpunkt in der grafischen Umgebung durch Benutzereingaben verändert werden. Zum Beispiel kann der Benutzer durch Handhaben der Maus 88 und/oder Drücken von Tasten auf der Tastatur 86 veranlas sen, daß sich der Blickpunkt und die Blickrichtung ändern. Folglich berechnet die Visualisierungssoftware vorzugsweise die Menge der sichtbaren Objekte neu, wann immer sich der Blickpunkt oder die Blickrichtung ändern.
  • In Schritt 230 zeigt die Visualisierungssoftware in Verbindung mit dem Grafikbeschleuniger 112 die sichtbaren Objekte an, d. h. erteilt dem Grafikbeschleuniger 112 den Befehl, diese Objekte auf dem Anzeigebildschirm darzustellen. Durch Ausführen der Ermittlung sichtbarer Objekte in der Software auf dem Hostcomputer kann der Grafikbeschleuniger 112 mit weit-gehend verbesserter Effizienz betrieben werden. Dadurch wird die Gesamtverarbeitungskapazität des grafischen Systems 80 verbessert. Das Auffinden und Anzeigen der Menge von sichtbaren Objekte tritt wiederholt auf, während sich der Blickpunkt und die Blickrichtung (d. h. die Orientierung) ändern. Die Schritte zum Auffinden und zur Anzeige werden vorzugsweise als gleichzeitige Prozesse ausgeführt. Jedoch werden sie nach einer alternativen Ausführungsform sequentiell ausgeführt.
  • Falls nicht anders angegeben, wird davon ausgegangen, daß alle Objekte in dem Modell undurchsichtige, konvexe Vielflache bzw. Polyeder sind. Ein dreidimensionaler Körper wird als konvex bezeichnet, wenn je zwei Punkte innerhalb des Körpers (oder auf der Oberfläche des Körpers) durch ein Strecken- bzw. Geradensegment verbunden werden können, das vollständig innerhalb des Körpers liegt. Daher ist ein Würfelkörper konvex, während ein Donut nicht konvex ist. Ein Polyeder ist ein Objekt mit ebenen Seiten bzw. Flächen (z. B. Würfel, Tetraeder, etc.). Die hier beschriebenen Methoden für undurchsichtige Objekte lassen sich natürlich auf transparente oder halbtransparente Objekte ausdehnen, indem es nicht erlaubt wird, daß solche Objekte eine Konusberechnung beenden. Die Annahme bzgl. Konvexität stellt eher ein Problem dar. Jedoch kann jedes Objekt als ein Zusammenschluß von konvexen Polyedern angenähert werden. Es ist hilfreich anzumerken, daß die Berechnung der Menge sichtbarer Objekte keine exakte, sondern vielmehr eine konservative Berechnung benötigt. Mit anderen Worten ist es zulässig, die Menge sichtbarer Objekt zu hoch einzuschätzen.
  • Aufstellen der Objekthierarchie
  • Anfänglich werden die Objekte in einer Szene in eine Hierarchie gegliedert bzw. aufgebaut, welche die Objekte räumlich gruppiert. Ein Octree ist eine Möglichkeit zur Erzeugung der Objekthierarchie. Jedoch wird nach einer bevorzugten Ausführungsform ein Algorithmus zur Clusterbildung verwendet, der nahe beieinander liegende Objekte gruppiert und dann rekursiv Paare von Gruppen in größere, umfassende Räume zu Clustern zusammenfaßt. Der Algorithmus zur Clusterbildung verwendet ein einfaches Abstandsmaß und eine Schwellwertoperation, um die Clusterbildung der Objekte zu erreichen. Die 4A4D veranschaulichen den Prozeß der Clusterbildung für eine Zusammenstellung von vier Objekten J00 bis J11. Die Objekte sind in einer Weise indiziert, die ihre endgültige Position bzw. Anordnung in einem Binärbaum von Objektgruppen vorwegnimmt. Die Objekte sind als in einer Ebene gelegene Polygone abgebildet (siehe 4A). Jedoch sollte sich der Leser diese Objekte als beliebige dreidimensionale Objekte vorstellen. Nach einer Ausführungsform sind diese Objekte dreidimensionale Polyeder.
  • Jedes Objekt wird von einer entsprechenden umgrenzenden Oberfläche, auf die hier als eine Umgrenzung Bezug genommen wird, umgrenzt, d. h. eingeschlossen. Nach einer bevorzugten Ausführungsform ist die Umgrenzung für jedes Objekt eine polyederförmige Hülle (d. h. eine Hülle mit ebenen Flächen) wie in 4B abgebildet. Die Hüllen H00 bis H11 sind mit Markierungen bzw. Bezeichnungen versehen, die mit den Objekten, die sie umgrenzen, konsistent sind. Zum Beispiel umgrenzt die Hülle H00 das Objekt J00. Die Hüllen werden als Rechtecke dargestellt, deren Seiten bzw. Kanten zu einem Paar von Koordinatenachsen parallel sind. Diese Hüllen sollen rechteckige Behälter (Quader bzw. Parallelflächner) in drei Dimensionen darstellen, deren Seiten bzw. Flächen Normalen zu einem festen Satz von Koordinatenachsen sind. Zu jeder Hülle wird eine entsprechende Knotendatenstruktur erzeugt. Der Knoten speichert Parameter, welche die entsprechende Hülle beschreiben.
  • Da eine Hülle eine Oberfläche hat, die aus einer endlichen Anzahl von ebenen Komponenten besteht, ist die Beschreibung der Hüllen eng mit der Beschreibung einer Ebene im dreidimensionalen Raum verbunden. In 5A wird ein zweidimensionales Beispiel gegeben, aus dem die Gleichung einer beliebigen Ebene verallgemeinert werden kann. Ein Einheitsvektor n [jeder Vektor ist ausreichend, aber ein Vektor der Länge eins ist für die Diskussion bequem] definiert eine Gerade L durch den Ursprung des zweidimensionale Raumes. Indem das Skalarprodukt eines Vektors v mit dem Einheitsvektor n gebildet wird, bezeichnet als v·n, erhält man die Länge der Projektion von Vektor v in der Richtung, die durch den Einheitsvektor n definiert wird. Daher folgt bei einer gegebenen Konstanten c, daß die Gleichung x·n = c, wobei x eine Vektorvariable ist, eine Gerade M senkrecht zu einer Geraden L und in einem Abstand c vom Ursprung entlang der Geraden L definiert. Im Kontext eines dreidimensionalen Raumes definiert diese selbe Gleichung eine Ebene senkrecht zur Geraden L, wiederum um einen Abstand c vom Ursprung entlang der Geraden L verschoben. Man beachte, daß die Konstante c negativ sein kann, in welchem Fall die Gerade (oder Ebene) M vom Ursprung um den Abstand |c| entlang der Geraden L in der Richtung entgegengesetzt zum Einheitsvektor n verschoben ist.
  • Die Gerade x·n = c teilt die Ebene in zwei Halbebenen. Durch Ersetzen des Gleichheitszeichens in der obigen Gleichung durch ein Ungleichheitszeichen erhält man die Beschreibung einer dieser Halbebenen. Die Ungleichung x·n < c definiert die Halbebene, welche das negative Ende im Unendlichen der Geraden L enthält. [Der Einheitsvektor n definiert die positive Richtung der Geraden L.] In drei Dimensionen teilt die Ebene x·n = c den dreidimensionalen Raum in zwei Halbräume. Die Ungleichung x·n < c definiert den Halbraum, der das negative Ende im Unendlichen der Geraden L enthält.
  • 5B zeigt, wie eine rechteckige Region als Schnitt zwischen vier Halbebenen definiert werden kann. Gegeben sind vier Normalenvektoren n1 bis n4 und vier zugehörige Konstanten c1 bis c4, dann wird ein rechteckiges Gebiet als die Menge der Punkte definiert, die gleichzeitig die Menge von Ungleichungen x·ni < ci erfüllen, wobei i von eins bis vier reicht. Dieses System von Ungleichungen kann durch den Matrix-Vektor-Ausdruck N·x < c zusammengefaßt werden, wobei die Zeilen der Matrix N die Normalenvektoren n1 bis n4 und die Komponenten des Vektors c die ent sprechenden Konstanten c1 bis c4 sind. Wenn die Normalenvektoren so gewählt werden, daß sie in den positiven und negativen Achsenrichtungen liegen (wie in 5B gezeigt), hat das daraus resultierende rechteckige Gebiet seine Flächen parallel zu den Achsen. Es wird darauf hingewiesen, daß die rechteckigen Hüllen H00 bis H11, die in 4b abgebildet sind, alle eine gemeinsame Menge von Normalenvektoren verwenden. Daher wird jede Hülle durch ihren eindeutigen Vektor c beschrieben.
  • Im dreidimensionalen Raum kann ein rechteckiger Behälter in analoger Weise als der Schnitt von sechs Halbräumen definiert werden. Gegeben sind sechs Normalenvektoren n1 bis n6, die in jede der drei positiven und drei negativen Achsrichtungen orientiert sind, und sechs entsprechende Konstanten c1 bis c6, dann definiert die gleichzeitige Lösung der Ungleichungen x·n1 < c1, wobei i von eins bis sechs läuft, einen rechteckigen Behälter mit den Flächen parallel zu den Koordinatenebenen. Daher kann ein rechteckiger Behälter mit demselben Matrix-Vektor-Ausdruck Nx < c kompakt dargestellt werden, wobei die Matrix N nun sechs Zeilen für die sechs Normalenvektoren und der Vektor c sechs Elemente für die sechs entsprechenden Konstanten hat.
  • Um eine Objekthierarchie aufzubauen, werden die Hüllen H00 bis H11 wie in 4C dargestellt zu Paaren zusammengestellt. Jedes Paar von Objekthüllen wird durch eine umfassende Hülle umgrenzt. Zum Beispiel werden die Hüllen H00 und H01 paarweise zusammengestellt und durch die umfassende Hülle H0 umgrenzt. Die umfassende Hülle H0 enthält effizienterweise die zwei Komponentenhüllen H00 und H01. In gleicher Weise werden die Objekthüllen H10 und H11 paarweise zusammengestellt und durch die umfassende Hülle H1 umgrenzt. Darüber hinaus werden in der Objekthierarchie zwei Elternknoten erzeugt, einer für jede der umfassenden Hüllen H0 und H1. Der Einfachheit halber werden die Elternknoten üblicherweise wie ihre entsprechenden umfassenden Hüllen gekennzeichnet. Daher zeigt der Elternknoten H0 auf seine Kindknoten H00 und N01, während der Elternknoten H1 auf seine Kindknoten H10 und H11 zeigt. Jeder Elternknoten enthält den beschreibenden Vektor c für die entsprechende umfassende Hülle.
  • Auf die umfassenden Hüllen H0 und H1 kann als umfassende Hüllen erster Ordnung Bezug genommen werden, da sie das Ergebnis einer ersten Operation des paarweisen Zusammenstellens auf den ursprünglichen Objekthüllen sind. Eine zweite Operation des paarweisen Zusammenstellens wird auf die umfassenden Hüllen erster Ordnung angewandt, um umfassende Hüllen zweiter Ordnung zu erhalten. Jede umfassende Hülle zweiter Ordnung enthält effizienterweise zwei Hüllen erster Ordnung. Für jede der umfassenden Hüllen zweiter Ordnung wird ein Elternknoten in der Objekthierarchie erzeugt. Der Elternknoten spiegelt dieselbe Eltern-Kind-Beziehung wieder wie die entsprechende umfassende Hülle zweiter Ordnung. Zum Beispiel enthält in 4D die umfassende Hülle zweiter Ordnung H effizienterweise die umfassenden Hüllen erster Ordnung H0 und H1. Daher zeigt der Elternknoten H in der Objekthierarchie auf die Kindknoten H0 und H1. Der Elternknoten H speichert den beschreibenden Vektor c für die umfassende Hülle H. In dem in den 4A4D vorliegenden Beispiel ist die Objekthierarchie nach zwei Operationen des paarweisen Zusammenstellens vollständig, da die ursprüngliche Zusammenstellung nur vier Objekte enthielt.
  • Im allgemeinen wird eine Abfolge von Operationen des paarweisen Zusammenstellens durchgeführt. Bei jeder Stufe wird eine Menge von umfassenden Hüllen höherer Ordnung und entsprechende Knoten für die Objekthierarchie erzeugt. Jeder Knoten enthält den beschreibenden Vektor c für die entsprechende umfassende Hülle. Am Ende des Prozesses enthält die Objekthierarchie einen Binärbaum mit einem einzelnen Wurzelknoten. Der Wurzelknoten entspricht einer gesamtumfassenden Hülle, die alle Unterhüllen aller Ordnungen einschließlich der ursprünglichen Objekthüllen enthält. Da die Objekthierarchie eine Hierarchie von umgrenzenden Hüllen enthält, wird sie auch als die Hüllenhierarchie bezeichnet. Nach der bevorzugten Ausführungsform basieren die Operationen des paarweisen Zusammenstellens auf Nähe, d. h. Objekte (und Hüllen derselben Ordnung) werden auf der Grundlage ihrer Nähe zueinander paarweise zusammengestellt. Auf Nähe basierendes paarweises Zusammenstellen führt zu einem effizienteren Algorithmus zur Bestimmung sichtbarer Objekte. Dieser Baum von umfassenden Hüllen liefert uns eine recheneffiziente, hierarchische Darstellung der gesamte Szene. Wenn zum Beispiel ein Konus die umfassende Hülle eines Knotens völlig verfehlt, braucht keiner der Abkömmlinge des Knotens geprüft zu werden.
  • Umgrenzende Hüllen (d. h. umfassende Hüllen) dienen dem Zweck der Vereinfachung und Approximation von Objekten. Im Prinzip funktioniert jede beliebige Hierarchie von umfassenden Hüllen. Jedoch sind Hierarchien von Hüllen, die auf einer gemeinsamen Menge von Normalenvektoren basieren, besonders recheneffizient. Eine Zusammenstellung von Hüllen, die auf einer gemeinsamen Menge von Normalenvektoren basieren, wird hier als eine Zusammenstellung mit fester Richtung oder eine gemeinsam erzeugte Zusammenstellung bezeichnet. Wie oben beschrieben wird eine Polyederhülle durch ein umgrenzendes System von linearen Ungleichungen {x : Nx ≤ c} beschrieben, wobei die Zeilen der Matrix N eine Menge von Normalenvektoren sind und die Elemente des Vektors c die Entfernungen sind, um die man sich entlang jedes Normalenvektors zu bewegen hat, um zu einer entsprechenden Fläche des Polyeders zu gelangen. In einer Zusammenstellung von Hüllen mit fester Richtung ist die Normalenmatrix N allen Hüllen in der Zusammenstellung gemeinsam, während der Vektor c eindeutig für jede Hülle in der Zusammenstellung ist. Das Problem der Berechnung des Koeffizientenvektors c für eine umfassende Hülle bei gegebener Zusammenstellung von Unterhüllen wird in großem Maße vereinfacht, wenn eine gemeinsame Menge von Normalenvektoren verwendet wird. Darüber hinaus kommen die Knoten der Hüllenhierarchie vorteilhafterweise mit weniger Speicherplatz aus, da die Normalenmatrix N nicht in den Knoten gespeichert zu werden braucht. Nach der bevorzugten Ausführungsform der Erfindung enthält die Hüllenhierarchie eine Sammlung bzw. Zusammenstellung von Hüllen fester Richtung.
  • Nach einer ersten Ausführungsform werden sechs Normalenvektoren, die in die drei positiven und drei negativen Achsenrichtungen ausgerichtet bzw. orientiert sind, verwendet, um eine Hüllenhierarchie mit fester Richtung zu erzeugen, die wie rechtwinklige Behälter mit den Flächen parallel zu den Koordinatenebenen geformt sind. Diese an den Achsen ausgerichteten, umgrenzenden Hüllen liefern eine einfache Darstellung, die ausgezeichnete, lokale Berechnungseigenschaften aufweist. Es ist leicht, zwei an den Achsen ausgerichtete Hüllen zu transformieren oder zu vergleichen.
  • Jedoch neigt die Annäherung, die durch an den Achsen ausgerichtete Hüllen geliefert wird, dazu, ziemlich grob zu sein, was sich auf globaleren Stufen häufig als aufwendig erweist.
  • Nach einer zweiten Ausführungsform werden acht Normalenvektoren, die auf die Ecken eines Kubus gerichtet sind, verwendet, um eine Hierarchie von achtseitigen bzw. achtflächigen Hüllen zu erzeugen. Zum Beispiel können die acht Vektoren (± 1, ± 1, ± 1) verwendet werden, um die achtseitigen Hüllen zu erzeugen. Das Oktaeder ist ein spezieller Fall dieser Hüllenfamilie.
  • Nach einer dritten Ausführungsform werden vierzehn Normalenvektoren, d. h. die sechs Normalen, welche die rechteckigen Behälter erzeugen, plus die acht Normalen, welche die achtseitigen Behälter erzeugen, verwendet, um die Hüllenhierarchie mit vierzehnseitigen Hüllen zu erzeugen. Diese vierzehnseitigen Hüllen können als rechteckige Behälter mit abgeschnittenen Ecken beschrieben werden. Es wird darauf hingewiesen, daß mit Zunahme der Anzahl von Normalenvektoren und damit von Seiten die Genauigkeit der Annäherung an die bzw. Approximation der zugrundeliegenden Objekte durch die Hüllen steigt.
  • Nach einer vierten Ausführungsform werden zwölf weitere Normalen zu den vierzehn gerade beschriebenen Normalen hinzugefügt, um eine Menge von sechsundzwanzig Normalenvektoren zu erhalten. Die zwölf zusätzlichen Normalen dienen dazu, die zwölf Kanten der rechteckigen Behälter zusätzlich zu den Ecken, die bereits abgeschnitten wurden, abzuschneiden. Dies führt zu sechsundzwanzigseitigen Hüllen. Zum Beispiel können die zwölf Normalenvektoren (±1, ±1, 0), (±1, 0, ±1) und (0, ±1, ±1) als die zusätzlichen Vektoren verwendet werden.
  • In dem oben angegebenen Beispiel werden die Hüllen rekursiv zu Paaren gruppiert, um einen Binärbaum zu erzeugen. Jedoch werden nach den anderen Ausführungsformen die Hüllen in Gruppen der Größe G zusammengruppiert, wobei G größer als zwei ist. Nach einer Ausführungsform ändert sich die Gruppengröße von Gruppe zu Gruppe. Dies kann besonders für Szenen vorteilhaft sein, die eine nicht-gleichförmige Objektdichte aufweisen. Wenn zum Beispiel eine große Anzahl von kleinen Objekten in einer Szene zu einem Cluster zusammengefaßt ist, kann es vorteilhaft sein, diese in einer einzelnen Gruppe zusammenzufassen, d. h. sie mit einer einzelnen enthaltenden Hülle zu umgrenzen. Größere Objekte können zu Gruppen mit weniger Mitgliedern zusammengestellt werden.
  • Obwohl sich die vorangegangene Diskussion auf die Verwendung von Polyederhüllen als Umgrenzungen für Objekte und Cluster konzentriert hat, wird darauf hingewiesen, daß jeder beliebige Typ von umgrenzenden Oberflächen verwendet werden kann, wobei eine Hierarchie von Umgrenzungen erzeugt wird, die hier als eine Umgrenzungshierarchie bezeichnet wird. Jeder Knoten der Umgrenzungshierarchie entspricht einem Objekt oder Cluster und speichert Parameter, welche die entsprechende Umgrenzung für dieses Objekt oder dieses Cluster kennzeichnen. Zum Beispiel können Polynom-Oberflächen wie zum Beispiel quadratische Oberflächen bzw. Oberflächen zweiter Ordnung verwendet werden, um die Umgrenzungen für Objekte und/oder Cluster zu erzeugen. Kugeln und Ellipsoide sind Beispiele von quadratischen Oberflächen.
  • Konen bei der Bestimmung der sichtbaren Objekte
  • Zusätzlich zur oben diskutierten Umgrenzungshierarchie (z. B. Hüllenhierarchie) macht die vorliegende Erfindung Gebrauch von einer Hierarchie von räumlichen Konen. Ein anfänglicher Konus, der das Sichtvolumen (view frustrum) darstellt, wird rekursiv in eine Hierarchie von Unterkonen unterteilt. Danach wird eine gleichzeitige, doppelte Rekursion durch das Paar von Bäumen (der Objektbaum und der Konusbaum) durchgeführt, um schnell die Menge der sichtbaren Objekt zu bestimmen. Dieses konusbasierte Verfahren liefert einen wesentlichen Gewinn beim Berechnungsaufwand gegenüber dem Verfahren, das nach dem Stand der Technik mit Strahlenwurf bzw. Ray Casting arbeitet. Dies ist besonders der Tatsache zu verdanken, daß die Ray Casting Verfahren mehrere, nichf-zusammenhängende Sichtbarkeitsabfragen benötigen, um einen Bereich äquivalent zu einem Konus abzudecken.
  • Konen diskretisieren das räumliche Kontinuum anders als Strahlen. Betrachten wir die gleichzeitige Ausbreitung aller möglicher Strahlen von einem Punkt aus und die sich ergebende kugelförmige Wellenfront. Das erste Objekt, das von jedem Strahl getroffen bzw. aufgefunden wird, ist sichtbar. Wenn die Betrachtung auf jene Strahlen eingeschränkt wird, die einen Konus bilden, trifft dieselbe Beobachtung immer noch zu. Das erste Objekt, mit dem die Wellenfront des Konus in Berührung kommt, ist sichtbar. Wenn nun der Blickkegelstumpf in eine bestimmte Anzahl von Konen unterteilt wird, können die Objekte, die von dem Blickpunkt aus sichtbar sind, bis zur Auflösung der Konen bestimmt werden.
  • 6 veranschaulicht einen zweidimensionalen Konus C in einer zweidimensionalen Umgebung. Konus C wird vom Bereich im Innern der Strahlen R1 und R2 (und einschließlich dieser Strahlen) definiert. Der Konus C wird in eine Anzahl von Unterkonen unterteilt. Der umgebende Raum ist mit einer Zusammenstellung von zweidimensionalen Objekten bestückt. Eine Wellenfront breitet sich in jedem der Unterkonen aus. Jede Wellenfront endet bei ihrer ersten Wechselwirkung mit einem Objekt. Drei von diesen Unterkonen sind besonders hervorgehoben, d. h. die Unterkonen C1, C2 und C3. Unterkonus C1 wechselwirkt mit zwei Objekten, d. h. einer Ellipse und einem sternförmigen Objekt. Jedoch endet die sich in Unterkonus C1 ausbreitende Wellenfront aufgrund der Definition bei der ersten Wechselwirkung mit einem Objekt. Da die Wellenfront zuerst mit der Ellipse wechselwirkt, endet die Wellenfront an der Ellipse und das Sternobjekt ist, bezogen auf diesen Unterkonus, laut Definition unsichtbar. Wenn höhere Auflösung gewünscht wird, kann der Unterkonus C1 in eine Menge kleinerer Unterkonen weiter unterteilt werden. Einige dieser kleineren Unterkonen würden dann an der Ellipse enden, während andere an dem sternförmigen Objekt enden würden. Der Unterkonus C2 wechselwirkt mit nur einem Objekt, d. h. dem Objekt B. Die sich mit dem Unterkonus C2 ausbreitende Wellenfront endet an dem Punkt des ersten Kontaktes mit dem Objekt B.
  • Es wird darauf hingewiesen, daß die konusbasierte Sichtbarkeitsabfrage von Objekten (modelliert nach dem Konzept der Ausbreitung einer Wellenfront) von Natur aus eine räumliche Berechnung ist. Daher erfaßt die Sichtbarkeitsabfrage von Objekten mit dem Unterkonus C3 das kleine Objekt A, obwohl dieses Objekt vollständig im Inneren des Unterkonus C3 liegt. Die Berechnung der Sichtbarkeitsabfrage wird später im Detail erläutert.
  • Vielflächige Konen
  • Die räumlichen Konen, die nach der bevorzugten Ausführungsform verwendet werden, sind vielflächige Konen. Der generische, vielflächige Konus hat einen polygonalen Querschnitt. 7 gibt zwei Beispiele von vielflächigen Konen. Der erste vielflächige Konus PC1 hat einen rechteckigen Querschnitt, während der zweite vielflächige Konus PC2 einen dreieckigen Querschnitt hat. Das Sichtvolumen ist ein Konus mit einem rechteckigen Querschnitt wie Konus PC1. Vielflächige Konen werden durch homogene lineare Ungleichungen definiert. Ist ein Normalenverktor n gegeben, so definiert die Gleichung n·x = 0, die das Vektorargument x enthält, eine Ebene durch den Ursprung und senkrecht zum Normalenvektor n. Diese Ebene teilt den Raum in zwei Halbräume. Die lineare Ungleichung n·x < 0 definiert den Halbraum, von dem aus der Normalenvektor n nach außen zeigt. 8A gibt ein zweidimensionales Beispiel. Wie gezeigt spezifiziert die Gleichung n·x = 0 die Menge der Punkte (interpretiert als Vektoren), die senkrecht zur Normalen n stehen. Diese senkrechte Gerade L teilt die Ebene in zwei Halbebenen. Die Halbebene, die durch die Ungleichung n·x < 0 definiert ist, ist durch Schraffierung gekennzeichnet. Man beachte, daß der Normalenvektor n aus dieser Halbebene herauszeigt.
  • Ein vielflächiger Konus wird durch einen Schnitt mehrerer Halbebenen miteinander konstruiert. Zum Beispiel ist der Konuskörper PC2 aus 7 der Schnitt bzw. der Schnittkörper dreier Halbräume. Ähnlich ist der Konuskörper PC1 der Schnitt bzw. der Schnittkörper von vier Halbräumen. 8B liefert ein zweidimensionales Beispiel von zwei sich schneidenden Halbebenen, um einen Konusbereich zu erzeugen. Die zwei Normalenvektoren n1 und n2 definieren die senkrechten Geraden L1 bzw. L2. Die Ungleichung n1·x < 0 spezifiziert die Halbebene, die südwestlich (d. h. links und unterhalb) von der Geraden L, liegt. Die Ungleichung n2·x < 0 spezifiziert die Halbebene, die rechts von der Geraden L2 liegt. Die Lösung des simultanen Systems von Ungleichungen n1·x < 0 und n2·x < 0 ist die Schnittregion, die durch Schraffierung angezeigt wird. Dieses System von Ungleichungen kann durch die Matrixungleichung Sx ≤ 0 zusammengefaßt werden, wobei die Zeilen der Matrix S die Normalenvektoren sind. Aufgrund dieser Diskussion kann festgestellt werden, daß der Konuskörper PC1 von 7 durch vier Normalenvektoren festgelegt wird. Die Normalenmatrix S würde dann vier Zeilen (für die vier Normalenvektoren) und drei Spalten entsprechend der Dimension des umgebenden Raumes haben.
  • Daher wird ein vielflächiger Konus, der vom Ursprung ausgeht, als die Menge von Punkten definiert, die einem System von linearen Ungleichungen Sx ≤ 0 genügen. [Ohne Beschränkung der Allgemeinheit kann der Ursprung als Blickpunkt angenommen werden.] Gemäß dieser Definition können Halbräume, Ebenen, Strahlen und der Ursprung selbst als vielflächige Konen betrachtet werden. Darüber hinaus kann der gesamte Raum als ein vielflächiger Konus betrachtet werden, d. h. derjenige Konus, der durch eine leere Matrix S definiert ist.
  • Abstandsmessung
  • Aus der Sicht der Diskussion über die Wellenausbreitung ist der Abstand eines Objektes, einer Hülle oder einer Umgrenzung von einem bestimmten Blickpunkt aus definiert als der minimale Abstand des Objektes, der Hülle oder der Umgrenzung vom Blickpunkt. Daher ist unter der Annahme, daß der Blickpunkt im Ursprung liegt, der Abstand eines Objektes, einer Hülle oder einer Umgrenzung X vom Blickpunkt definiert als f(X) = min min∥x∥, x ? X
    wobei ∥x∥ die Norm des Vektors x ist. Wenn das Objekt, die Hülle oder die Umgrenzung X leer ist, wird der Abstand als positiv unendlich angenommen.
  • Jede beliebige Vektornorm kann zur Messung des Abstandes gewählt werden. Nach einer Ausführungsform wird die Euklidische Norm zur Abstandsmessung gewählt. Die Euklidische Norm führt zu einer kugelförmigen Wellenfront. Jede Wellenfrontform kann verwendet werden, solange ein gemäßigtes bzw. sanftes "Sternform"-Kriterium erfüllt ist: die gesamte Umgrenzung der Wellenfront muß unverdeckt sein, wenn sie vom Ursprung aus betrachtet wird. Alle konvexen Wellenfronten erfüllen diese Bedingung und viele nicht-konvexen tun es auch. Im allgemeinen werden die Niveaulinien einer Norm als die Wellenfrontformen empfohlen. Von einem Berechnungsstandpunkt liefern die kugelförmige Wellenfrontform, die durch die L2-Norm gegeben ist, und die stückweise linearen Wellenfrontformen, die durch die L1- und L-Normen gegeben werden, gute Wahlmöglichkeiten für die Sichtbarkeitsentdeckung. Es ist nicht überraschend, daß auch stückweise lineare Annäherungen solcher Normen funktionieren, zum Beispiel die Annäherung an die L2-Norm: eine solche Approximation ist in 6 dargestellt.
  • Konen und Sichtbarkeit
  • Von einem Blickpunkt aus, der innerhalb einer großen Menge von Objekten liegt, gibt es mindestens einen Punkt (auf irgendeinem Objekt), der dem Blickpunkt am nächsten ist. Da dieser Punkt (oder die Menge von Punkten) dem Blickpunkt am nächsten gelegen ist, kann nichts die Sicht auf diesen Punkt (oder diese Punkte) verstellen bzw. verdecken. Dies führt dazu, daß das Objekt (oder die Objekte), das bzw. die den nächstgelegenen Punkt (oder die Punkte) enthält bzw. enthalten, zumindest teilweise sichtbar ist (sind).
  • Nun betrachten wir einen beliebigen Konus K, der vom Ursprung als dem Blickpunkt ausgeht. Das Argument der ungehinderten Sichtbarkeit gilt sogar dann, wenn alle Abstandsmessungen eingeschränkt sind auf Punkte, die innerhalb des Konus liegen. Wir definieren den Abstand eines Objektes, einer Hülle oder einer Umgrenzung X relativ zum Konus K als fk(X) = min ∥x∥, x ∊ X ∩ K
  • Wenn der Abstand fK für jedes Objekt in der Szene berechnet wird, ist das nächstgelegene Objekt, d. h. das Objekt, das einen minimalen Abstandswert erzielt, sichtbar in Bezug auf den Konus K. In der Tat ist ein Objekt X dann und nur dann sichtbar, wenn es einen Konus K gibt, so daß (a)fK (X) endlich ist und (b) fK(X) ≤ fK(Y) für alle Objekte Y in der Menge der Objekte gilt.
  • Es wird darauf hingewiesen, daß Strahlen als entartete Konen betrachtet werden können, die vom Blickpunkt ausgehen und durch das Zentrum jedes Pixels gehen. Das nächstgelegene Objekt auf einem Strahl ist sichtbar und bestimmt daher den Wert des entsprechenden Pixels. In ähnlicher Weise ist es möglich, Konen zu konstruieren, die vom Blickpunkt ausgehen und jedes Pixel überdecken. Zum Beispiel können zwei oder mehr Konen mit dreieckigem Querschnitt sauber die Fläche eines Pixels überdecken. Das nächstgelegene Objekt innerhalb jedes Konus ist sichtbar und erzeugt den Wert des entsprechenden Pixels.
  • Wie oben diskutiert sind die strahlenbasierten Verfahren nach dem Stand der Technik in der Lage, Objekte nur bis zur Auflösung der Strahlenabtastung zu erkennen. Kleine sichtbare Objekte oder kleine Teile größerer Objekte können aufgrund unzureichender Strahlendichte als Ganzes verfehlt werden. Im Gegensatz dazu können Konen den Raum vollständig ausfüllen. Daher kann das konusbasierte Verfahren der vorliegenden Erfindung vorteilhafterweise kleine sichtbare Objekte oder Teile von Objekten entdecken, die von einem strahlenbasierten Verfahren mit gleicher Winkelauflösung verfehlt würden.
  • Verallgemeinerte Abstandsmessung
  • Zur Durchführung einer Sichtbarkeitssuchprozedur ist es notwendig, ein Verfahren zum Messen der Größe des Abstandes (oder umgekehrt der Nähe) von Objekten, Umgrenzungen oder Hüllen mit Bezug auf Konen zu haben. Es gibt eine große Vielfalt solcher Verfahren zusätzlich zu denen, die auf der Minimierung von Vektornormen wie oben definiert beruhen. Wie oben erwähnt kann ein Meßwert, der die Größe der Abstandes zwischen einer Menge X und einem Konus K angibt, dadurch erhalten werden, daß sich eine Wellenfront innerhalb des Konus von der Spitze des Konus aus ausbreitet und der Radius der ersten Interaktion der internen Wellenfront mit der Menge X festgestellt wird. Wie oben erwähnt muß die Wellenfront eine gemäßigte bzw. sanfte "Sternform"-Bedingung erfüllen: die gesamte Umgrenzung der Wellenfront muß von der Spitze des Konus sichtbar sein.
  • Nach einer Ausführungsform wird der Meßwert durch Berechnen eines Abzugs bezüglich des Abstandes zwischen der Menge X und dem Konus K erhalten. Der Abzug des Abstandes wird ermittelt, indem eine ansteigende Funktion des Abstandes zwischen der Spitze des Konus K und Punkten im Schnitt bzw. in der Schnittmenge von Konus K und der Menge X minimiert wird. Zum Beispiel führt jede positive Potenz einer Vektornorm zu solch einer ansteigenden Funktion.
  • Nach einer weiteren Ausführungsform wird der Meßwert durch Berechnen eines Bonus bezüglich der Nähe zwischen der Menge X und dem Konus K erhalten. Der Bonus des Abstandes wird ermittelt, indem eine abfallende Funktion des Abstandes zwischen der Spitze des Konus K und Punkten im Schnitt bzw. in der Schnittmenge von Konus K und der Menge X maximiert wird. Zum Beispiel führt jede negative Potenz einer Vektornorm zu solch einer abfallenden Funktion.
  • Eine Konushierarchie
  • Das Verfahren zur Bestimmung der Sichtbarkeit der vorliegenden Erfindung beruht auf der Verwendung einer Hierarchie von Konen zusätzlich zu der oben beschriebenen Hierarchie von Hüllen. Die Klasse von vielflächigen Konen ist zur Erzeugung einer Konushierarchie besonders gut geeignet: vielflächige Konen lassen sich auf natürliche Weise durch des Einsetzen einer oder mehrerer trennender bzw. teilender Ebenen in vielflächige Unterkonen zerlegen. Die Möglichkeit, Konen in eine hierarchische Struktur zu verschachteln, ermöglicht eine sehr schnelle Prüfung der Objektsichtbarkeit. Als Beispiel betrachten wir zwei benachbarte Konen, die sich eine gemeinsame Fläche teilen. Indem diese zwei Konen zusammengefaßt werden, wird ein neuer, zusammengesetzter Konus erzeugt. Der zusammengesetzte Konus enthält genau seine Kinder und ist daher in der Lage, beim Suchen in exakt demselben Raum wie seine zwei Kinder verwendet zu werden. Mit anderen Worten haben die Kindkonen keine inneren Punkte gemeinsam und füllen den Vorgänger vollständig aus, ohne irgendeinen leeren Raum zu lassen.
  • Eine typische Anzeige und ihr zugeordnetes Sichtvolumen (view frustrum) haben einen rechteckigen Querschnitt. Es gibt eine Unmenge von Möglichkeiten diesen rechteckigen Querschnitt zu tessellieren, um ein System von Unterkonen zu erzeugen. Zum Beispiel läßt sich das Rechteck auf natürliche Weise in vier rechteckige Querschnitte oder zwei dreieckige Querschnitte zerlegen. Auch wenn diese Beispiele Zerlegungen unter Verwendung regelmäßiger Komponenten darstellen, können genauso gut unregelmäßige Komponenten verwendet werden.
  • Die 9A9C veranschaulichen eine hierarchische Zerlegung eines anfänglichen Sichtvolumens C. 9A zeigt den rechteckigen Querschnitt des Sichtvolumens und seine Zweiteilung in zwei Konen mit dreieckigem Querschnitt, d. h. die Konen C0 und C1. Das Sichtvolumen C entspricht dem Wurzelknoten eines Konusbaumes. Konen und ihre entsprechenden Knoten im Konusbaum sind der Einfachheit halber identisch beschriftet. Jeder Knoten des Konusbaumes speichert die Matrix S von Normalenvektoren, die den entsprechenden Konus erzeugt. Der Wurzelknoten zeigt auf zwei Kindknoten, die den Konen C0 und C1 entsprechen. 9B veranschaulicht eine zweite Zerlegungsstufe. Jeder der Konen C0 und C1 wird zweigeteilt in zwei Unterkonen (wiederum mit dreieckigem Querschnitt). Konus C0 zerlegt sich in die zwei Unterkonen C00 und C01. In ähnlicher Weise wird Konus C1 zweigeteilt in die zwei Unterkonen C10 und C11. Knoten werden an den Konusbaum angefügt, um die Struktur dieser Zerlegung widerzuspiegeln. Die Eltern-Kind-Beziehung der Knoten im Konusbaum spiegelt die Obermengen-Untermengen-Beziehung der entsprechenden Konen im Raum wider. 9C veranschaulicht das Muster der schrittweisen Zweiteilung der Konen gemäß einer Ausführungsform. Jeder Konus in der Hierarchie kann mittels einer zweiteilenden Ebene in zwei Unterkonen zerlegt werden. 9C veranschaulicht verschiedene, aufeinanderfolgende, absteigende Zweiteilungen, welche die Konen C0, C10, C110 und C1110 und so weiter erzeugen. Der anfängliche Konus C (d. h. das Sichtvolumen in Form eines Kegelstumpfes) kann bis zu jeder gewünschten Auflösung zerlegt werden. Nach einer Ausführungsform enden die Zweiteilungen, wenn die daraus resultierenden Konen einen gewissen Bruchteil eines Pixels überdecken, zum Beispiel ½ Pixel. Die entsprechenden Endknoten des Konusbaumes werden Blätter genannt. Alternative Ausführungsformen werden betrachtet, bei denen die Zweiteilungen enden, wenn die daraus resultierenden Blattkonen Flächen überdecken, die (a) einen Teil eines Pixels wie zum Beispiel 1/N begrenzen, wobei N eine positive ganze Zahl ist, oder (b) Flächen begrenzen, die ein oder mehrere Pixel enthalten.
  • Die in den 9A9C abgebildete dreieckige, hierarchische Zerlegung hat eine Reihe von nützlichen Eigenschaften. Durch Zerlegung des ursprünglichen, rechteckigen Konus basierend auf einer rekursiven Zweiteilung bzw. Bisektion wird ein binärer Konusbaum beliebiger Tiefe erzeugt. Dreieckige Konen haben die wenigsten Flächen, was sie aus Sicht der Berechnung attraktiver macht. Schließlich können dreieckige Konen auch den Einheitswürfel (oder die Einheitskugel) tessellieren. Daher ist es möglich, eine hierarchische Konusrepräsentation des gesamten Raumes, der den Blickpunkt umgibt, zu erzeugen.
  • Es wird darauf hingewiesen, daß jede beliebige Strategie zur Zerlegung in Konen verwendet werden kann, um eine Konushierarchie zu erzeugen. Nach eine zweiten Ausführungsform wird der Blickkegelstumpf in vier ähnliche, rechteckige Konen zerlegt; jeder dieser Unterkonen wird in vier weitere, rechteckige Unterkonen zerlegt, und so weiter. Dies führt zu einem Konusbaum mit vierfachen Zweigen.
  • Entdecken der Menge sichtbarer Objekte
  • Sobald die Hüllenhierarchie und die Konushierarchie aufgestellt wurden, wird die Menge der sichtbaren Objekte vom aktuellen Blickpunkt aus berechnet. Nach einer Ausführungsform wird die Menge der sichtbaren Objekte für eine aufeinanderfolgende Reihe von Blickpunkten und Blickrichtungen wiederholt neu berechnet. Die aufeinanderfolgenden Blickpunkte und Blickrichtungen können von einem Benutzer durch eine Eingabeeinrichtung wie zum Beispiel eine Maus, einen Joystick eine Tastatur, einen Trackball oder jede beliebige Kombination davon angegeben werden. Das Verfahren der vorliegenden Erfindung zur Bestimmung sichtbarer Objekte wird als ein gleichzeitiges Durchsuchen des Hüllenbaumes und des Konusbaumes durchgeführt. Der Suchprozeß geht mit rekursiv durchgeführten Konus-Hüllen Abfragen einher. Ist ein Konusknoten K und ein Hüllenknoten H gegeben, so untersucht eine Konus-Hüllen-Abfrage auf dem Konus K und der Hülle H die Sichtbarkeit von der Hülle N und ihren Hüllenabkömmlingen mit Bezug auf Konus K und seinen Konusabkömmlingen. Der Suchprozeß hat eine Rechenkomplexität der Ordnung log M, wobei M gleich der Anzahl von Konusknoten mal der Anzahl von Hüllenknoten ist. Darüber hinaus können viele Konus-Hüllen-Abfragen parallel auftreten, was den offensiven Gebrauch von mehreren Prozessoren beim Aufbau der Menge von sichtbaren Objekten erlaubt.
  • Betrachten der Szene
  • Unabhängig und ebenso gleichzeitig kann die Menge sichtbarer Objekte vom aktuellen Blickpunkt aus auf einer oder mehreren Anzeigen dargestellt werden. Das Darstellen kann gleichzeitig erfolgen, weil die Menge sichtbarer Objekte ziemlich konstant bleibt zwischen Einzelbildern im Umfeld einer bzw. im Zusammenhang mit einer Architekturvisualisierungsumgebung. Daher liefert die vorhergehende Menge sichtbarer Objekte eine ausgezeichnete Approximation für die aktuelle Menge sichtbarer Objekte.
  • Verwalten der Menge sichtbarer Objekte
  • Die Visualisierungssoftware muß die Menge sichtbarer Objekte verwalten. Im Laufe der Zeit würde, während ein Endbenutzer durch ein Modell navigiert, das Einfügen von Objekten in die Menge sichtbarer Objekte allein zu einer Menge sichtbarer Objekte führen, die zu viele Objekte enthält. Um eine gute Darstellungsleistung sicherzustellen, muß der Visualisierungsprozeß daher Objekte aus der Menge sichtbarer Objekte entfernen, wenn solche Objekte nicht mehr zu der Menge gehören – oder kurz danach. Eine Vielfalt von Lösungen für das Entfernen von Objekten ist möglich. Eine Lösung beruht auf Objektalterung. Das System entfernt jedes Objekt aus der Menge sichtbarer Objekte, das nicht innerhalb einer bestimmten Anzahl von Neuzeichnungszyklen erneut von einer Konus-Abfrage entdeckt wurde.
  • Berechnen der Sichtbarkeit unter Verwendung von Konen
  • Eine wesentliche Hebelwirkung für die Berechnung wird durch das rekursive Durchsuchen des hierarchischen Baumes von Konen in Verbindung mit dem hierarchischen Baum von Hüllen bereitgestellt. Ganze Gruppen von Konen können gegenüber ganzen Gruppen von Hüllen in einer einzelnen Abfrage geprüft werden. Wenn zum Beispiel ein Elternkonus sich nicht mit einer Elternhülle schneidet, ist es offensichtlich, daß sich kein Kind des Elternkonus mit irgendeinem Kind der Elternhülle schneiden kann. In einer solchen Situation können die Elternhülle und alle ihre Abkömmlinge bei weiteren Sichtbarkeitsbetrachtungen im Hinblick auf den Elternkonus außer acht gelassen werden.
  • Sichtbarkeitssuchalgorithmus
  • Nach der bevorzugten Ausführungsform wird der Sichtbarkeitssuchalgorithmus der vorliegenden Erfindung in einem im Speicher 106 gespeicherten Sichtbarkeitssuchprogramm realisiert. Daher werden hier die Begriffe Sichtbarkeitssuchprogramm und Sichtbarkeitssuchalgorithmus austauschbar verwendet. Das Sichtbarkeitssuchprogramm führt ein rekursives Durchsuchen von zwei Bäumen durch (des Objektbaumes und des Konusbaumes), um sichtbare Objekte jedem der Blattkonen des Konusbaumes zuzuweisen. Der Hostprozessor 102 führt das Sichtbarkeitssuchprogramm aus. Nach einer alternativen Ausführungsform wird das Sichtbarkeitssuchprogramm auf einem Prozessor ausgeführt, der innerhalb des Grafikbeschleunigers 112 enthalten ist.
  • Das rekursive Durchsuchen der zwei Bäume liefert eine Reihe von Möglichkeiten für ein energisches Beschneiden des Suchraumes. Von zentraler Bedeutung für die Suche ist das oben definierte Objekt-Konus-Abstandsmaß, d. h. wenn ein Konus K und ein Objekt (oder eine Hülle) X gegeben ist, dann ist der Objekt-Konus-Abstand definiert als fK(X) = min ∥X∥ x ∊ X ∩ K
  • Es wird darauf hingewiesen, daß die Minimierung im allgemeinen ein Problem der nicht-linearen Programmierung darstellt, da die Konen und Objekthüllen durch Gleichungen mit Nebenbedingungen definiert sind. d. h. Ebenen im dreidimensionalen Raum. Wenn die Vektornorm ∥x∥ die L1-Norm ist (d. h. die Norm, die als die Summe der Absolutwerte der Komponenten von Vektor x definiert ist), wird das Problem der nicht-linearen Programmierung auf ein Problem der linearen Programmierung reduziert. Wenn die Vektornorm ∥x∥ die Euklidische Norm ist, wird das Problem der nicht-linearen Programmierung auf ein Problem der quadratischen Programmierung reduziert. Ist eine Zusammenstellung von Objekten gegeben, dann ist das Objekt X, das den kleinsten Abstand fK(X) erzielt, das nächstgelegene zum Blickpunkt des Konus und muß daher zumindest teilweise sichtbar sein.
  • Das rekursive Durchsuchen beginnt mit der Wurzel H des Hüllenbaumes und der Wurzel C des Konusbaumes (siehe 4 und 9). Wir erinnern uns, daß jeder Knoten des Hüllenbaumes eine umgrenzende Hülle angibt, welche die Hüllen aller ihrer nachfolgenden Knoten enthält. Zu Beginn wird der Abstand zwischen dem Wurzelkonus und der Wurzelhülle berechnet. Wenn dieser Abstand unendlich ist, dann schneidet sich kein Konus in der Konushierarchie mit irgendeiner Hülle in der Hüllenhierarchie und es gibt keine sichtbaren Objekte. Wenn der Abstand endlich ist, dann ist weiteres Durchsuchen nötig. Jeder der beiden Bäume kann zu diesem Zeitpunkt verfeinert werden. Nach der bevorzugten Ausführungsform werden beide Bäume in einer zuvor festgelegten Reihenfolge verfeinert.
  • Der Abschneide- bzw. Ausräummechanismus ist auf einigen grundlegenden Elementen aufgebaut. Eine Abstandsmessungsfunktion berechnet den Abstand fK(X) einer Hülle X vom Blickpunkt eines Konus K. Mit anderen Worten bestimmt die Funktion den auf einen Konus eingeschränkten Abstand zu der Hülle X. Nach der bevorzugten Ausführungsform wird die Minimierung, die mit der Auswertung der Abstandsmessungsfunktion verbunden ist, durch das Lösen eines zugeordneten Problems der linearen Programmierung implementiert.
  • Um den Suchprozeß zu erleichtern, wird jedem Blattkonus, d. h. jedem Endknoten des Konusbaumes, ein Ausdehnungswert zugewiesen, der seinen Abstand zur nächstgelegenen, bekannten Objekthülle darstellt. Daher kann dieser Ausdehnungswert als der Sichtbarkeitsabstand bezeichnet werden. Der Sichtbarkeitsabstand eines Blattkonus ist nicht-ansteigend, d. h. er verringert sich, sobald näherliegende Objekte (d. h. Objekthüllen) im Suchprozess entdeckt werden. Sichtbarkeitsabstände für alle Blattkonen werden mit positiv unendlich initialisiert. [Eine Objekthülle ist eine Hülle, die direkt ein Objekt umgrenzt. Daher sind Objekthüllen Endknoten des Hüllenbaumes.] Zusätzlich zu einem Wert des Sichtbarkeitsabstandes wird jedem Blattkonus-Knoten Speicher für ein aktuell sichtbares Objekt zugewiesen. Dieses Objektattribut wird mit NO OBJECT oder BACK-GROUND abhängig vom Kontext der Szene initialisiert.
  • Darüber hinaus wird jedem Nicht-Blattkonus, d. h. jedem Konus auf einer nicht-endgültigen Verfeinerungsstufe, ein Ausdehnungswert zugewiesen, der gleich dem Maximum seiner Unterkonen ist. Oder gleichwertig, der Ausdehnungswert für einen Nicht-Blattkonus ist gleich dem Maximum seiner Blattkonus-Abkömmlinge. Diese Ausdehnungswerte werden auch als Werte des Sichtbarkeitsabstandes bezeichnet. Die Werte des Sichtbarkeitsabstandes für alle Nicht-Blattkonen werden auch mit positiv unendlich initialisiert (konsistent mit der Initialisierung der Blattkonen). Nehmen wir an, ein gegebener Nicht-Blattkonus K und eine Hülle H erzielen einen Konus-Objekt-Abstand fK(X). Wenn dieser Abstand fK(X) größer als der Sichtbarkeitsabstand des Konus K ist, dann haben alle Blattkonus-Abkömmlinge von Konus K bereits bekannte Objekte, die näher liegen als die Hülle H. Daher kann kein Vorteil dadurch erzielt werden, daß die Hülle H gegen den Konus K und seine Abkömmlinge durchsucht wird. Wenn im Gegensatz dazu eine Hülle H einen Abstand fK(X) von Konus K erzielt, der kleiner als der Sichtbarkeitsabstand des Konus K ist, ist es möglich, daß die Hülle H Objekte enthält, die den Sichtbarkeitsabstand von einem Blattkonus-Abkömmling von Konus K strikt verkleinern. Daher sollten die Hülle H und ihre Abkömmlinge nach dem Konus K und seinen Abkömmlinge durchsucht werden.
  • Das folgende Codefragment veranschaulicht den Beginn des Suchprozesses. Die Variablen hullTree und coneTree zeigen auf die Wurzelknoten des Hüllenbaumes bzw. des Konusbaumes.
  • Figure 00240001
  • Die DIST-Funktion wertet den Abstand zwischen der Wurzelhülle und dem Wurzelkonus aus. Wenn dieser Abstand kleiner als positiv Unendlich ist, wird die Funktion findVisible mit der Wurzelhülle, dem Wurzelkonus und ihrem Hüllen-Konus-Abstand als Argumenten aufgerufen. Die Funktion findVisible führt das rekursive Durchsuchen der zwei Bäume aus.
  • Die 10A10C veranschaulichen eine Ausführungsform der Funktion findVisible (auch als Kontraktion FV bezeichnet). Siehe Anhang wegen einer Quellcode-Ausführungsform der Funktion findVisible. Die Funktion findVisible erhält verschiedene Eingabevariablen von einer aufrufenden Routine, wie durch den folgenden Funktionsprototyp dargestellt:
    findVisible(H, C, d)
    wobei H ein Hüllenknoten ist, der nach dem Konusknoten C untersucht werden soll. Der Wert d gibt den Konus-Hüllen-Abstand zwischen Konus C und Hülle H an. In Schritt 300 bestimmt die Funktion findVisible, ob der Konus C und die Hülle H beides Blattknoten sind, d. h. Endknoten ihrer zugehörigen Bäume. Wenn dies der Fall ist, wird der Wert des Sichtbarkeitsabstandes dc für den Blattkonus C gleich dem aktuellen Abstand zur Objekthülle H gesetzt. Darüber hinaus wird dem Objektattribut des Blattkonus C der Wert der Hülle H zugewiesen. Dann wird die Kontrolle an die aufrufende Routine zurückgegeben.
  • Wenn die Hülle H und der Konus C nicht beide Blätter sind, wird Schritt 302 ausgeführt. In Schritt 302 stellt die Funktion findVisible fest, ob der Konus C selbst ein Blattknoten des Konusbaumes ist. Wenn dies der Fall ist, werden die Schritte 304 bis 310 ausgeführt. In Schritt 304 werden die Kinder der Hülle H untersucht, d. h. die Abstände von Konus C zu den Unterhüllen H0 und H1 werden verglichen. [Die Kinder bzw. Nachfolger der Hülle H werden generisch als H0 und H1 bezeichnet.] Wenn der Abstand zur Unterhülle H0 kleiner ist als der Abstand zur Unterhülle H1, werden die Schritte 306 und 308 ausgeführt. Ansonsten wird Schritt 310 ausgeführt. Schritt 304 wird ausgeführt, um festzustellen, welcher Unterhülle die Gelegenheit der ersten Interaktion mit Konus C gegeben wird. Nach der bevorzugten Ausführungsform der Erfindung wird die nähergelegene Unterhülle zuerst durchsucht.
  • In Schritt 306 stellt die Funktion findVisible fest, ob der Konus-Hüllen-Abstand der Unterhülle H0 von Konus C kleiner als der Wert des Sichtbarkeitsabstandes dc von Konus C ist. Wenn dies der Fall ist, dann wird die Funktion findVisibility erneut aufgerufen, um die Unterhülle H0 nach dem Konus C zu durchsuchen. Der Konus-Hüllen-Abstand zwischen Konus C und Unterhülle H0 wird als das Abstandsargument für den Funktionsaufruf übergeben. Wenn der Abstand zur Unterhülle H0 nicht kleiner als der aktuelle Sichtbarkeitsabstand ist, wird Schritt 308 ausgeführt.
  • In Schritt 308 stellt die Funktion findVisible fest, ob der Konus-Hüllen-Abstand der Unterhülle H1 von Konus C kleiner als der Wert des Sichtbarkeitsabstandes von Konus C ist. Wenn er kleiner ist, wird die Funktion findVisibility erneut aufgerufen, um die Unterhülle H1 gegen den Konus C zu durchsuchen. Der Konus-Hüllen-Abstand zwischen Konus C und Unterhülle H1 wird als das Abstandsargument für den Funktionsaufruf übergeben. Wenn der Abstand zur Unterhülle H1 nicht kleiner als der aktuelle Sichtbarkeitsabstand ist, kehrt die Programmkontrolle bzw. -steuerung zum aufrufenden Programm zurück.
  • Es wird darauf hingewiesen, daß der Aufruf der Funktion findVisible in Schritt 306 dazu führen kann, daß der Wert des Sichtbarkeitsabstandes für Konus C kleiner wird. Daher kann der Wert des Sichtbarkeitsabstandes für Konus C tatsächlich einen kleineren Wert haben, wenn er in Schritt 308 abgefragt bzw. verglichen wird, als wenn er in Schritt 306 abgefragt wird. Dies unterstreicht die Wichtigkeit der Abfrage bzw. des Vergleichs, der in Schritt 304 durchgeführt wird, um die Unterhülle zu bestimmen, die näher an Konus C liegt. Die nähergelegene Hülle wird zuerst durchsucht und es wird ihr ermöglicht, der weiter entfernten Unterhülle zuvorzukommen. Mit anderen Worten kann es sein, daß nach dem Durchsuchen der nähergelegenen Unterhülle die weiter entfernte Unterhülle nicht durchsucht zu werden braucht. Daher verbessert die abstandsabhängige Suchreihenfolge der Unterhüllen vorteilhafterweise die Effizienz des Sichtbarkeitssuchalgorithmus'.
  • In Schritt 310 werden die Unterhüllen in umgekehrter Reihenfolge durchsucht als Reaktion auf die Bestimmung in Schritt 304, daß die Unterhülle H0 einen Konus-Hüllen-Abstand von Konus C erzielt, der nicht kleiner als der entsprechende Abstand für die Unterhülle H1 ist. Wiederum wird die nähergelegene Unterhülle H1 zuerst durchsucht und es wird ihr ermöglicht, die Durchsuchung der weiter entfernten Unterhülle H0 entbehrlich bzw. überflüssig zu machen.
  • Wenn in Schritt 302 festgestellt wird, daß Konus C kein Blatt ist, wird Schritt 320 ausgeführt (siehe 10B). In Schritt 320 stellt die Funktion findVisibility fest, ob der Hüllenknoten N ein Blattknoten, d. h. eine Objekthülle, der Hüllenhierarchie ist. Wenn dies der Fall ist, dann werden die Kinder von Konus C in Bezug auf die Objekthülle H in den Schritten 322 bis 326 untersucht. In Schritt 322 stellt die Funktion findVisibility fest, ob der Konus-Hüllen-Abstand zwischen der Hülle H und dem Kind-Unterkonus C0 kleiner als der Wert des Sichtbarkeitsabstandes von Kind-Unterkonus C0 ist. Wenn dies der Fall ist, dann wird die Funktion findVisibility erneut aufgerufen, um die Hülle H in Bezug auf den Unterkonus C0 zu untersuchen. Daher werden die Hülle H, der Unterkonus C0 und der Konus-Hüllen-Abstand zwischen diesen beiden der Funktion findVisibility als Parameter geliefert. Wenn die Funktion findVisibility zurückkehrt, geht die Kontrolle bzw. Steuerung an Schritt 324 über. Die Kontrolle geht auch dann an Schritt 324 über, wenn der Ungleichheitstest in Schritt 322 fehlschlägt.
  • In Schritt 324 stellt die Funktion findVisibility fest, ob der Konus-Hüllen-Abstand der Hülle H von Unterkonus C1 kleiner als der Wert des Sichtbarkeitsabstandes für Unterkonus C1 ist. Wenn dies der Fall ist, dann wird die Funktion findVisibility erneut aufgerufen, um die Hülle H in Bezug auf den Unterkonus C1 zu untersuchen. Daher werden die Hülle H, der Unterkonus C1 und der Konus-Hüllen-Abstand zwischen diesen zweien der Funktion findVisibility als Parameter geliefert. Wenn die Funktion findVisibility zurückkehrt, geht die Kontrolle an Schritt 326 über. Die Kontrolle geht auch dann an Schritt 326 über, wenn der Ungleichheitstest in Schritt 324 fehlschlägt.
  • Da die Werte der Sichtbarkeitsabstände für die Unterkonen C0 und C1 durch die Interaktion mit der Hülle H in den Schritten 322 bzw. 324 kleiner geworden sein kann, muß der Wert des Sichtbarkeitsabstandes für Konus C aktualisiert werden. Daher wird in Schritt 326 der Wert des Sichtbarkeitsabstandes für Konus C gleich dem Maximum der Werte der Sichtbarkeitsabstände der Unterkonen C0 und C1 gesetzt. Nach Schritt 326 kehrt die Programmkontrolle bzw. -steuerung an die aufrufende Routine zurück.
  • Wenn in Schritt 320 festgestellt wird, daß der Hüllenknoten H kein Blattknoten ist, dann wird Schritt 330 ausgeführt (siehe 10C). Daher können Schritt 330 und die nachfolgenden Schritte davon ausgehen, daß weder die Hülle H noch der Konus C Blattknoten in ihren entsprechenden Hierarchien sind. Die Schritte 332, 334, 335 und 336 untersuchen die Kinder von Hülle H bezogen auf den Konus C0 abhängig vom Ergebnis des Tests in Schritt 330. In ähnlicher Weise untersucht Schritt 340 die Kinder der Hülle N bezogen auf den Unterkonus C1 abhängig vom Ergebnis des Tests in Schritt 338.
  • In Schritt 330 stellt die Funktion findVisibility fest, ob der Konus-Hüllen-Abstand der Hülle H vom Unterkonus C0 kleiner als der aktuelle Wert des Sichtbarkeitsabstandes für Unterkonus C0 ist. Wenn dies der Fall ist, dann wird Schritt 332 ausgeführt. In Schritt 332 werden die Konus-Hüllen-Abstände der Unterhüllen H0 und H1 von Unterkonus C0 verglichen. Der nähergelegenen Unterhülle wird die Gelegenheit zur ersten Interaktion mit dem Unterkonus C0 gegeben. Daher wird, wenn der Konus-Hüllen-Abstand der Unterhülle H0 von Unterkonus C0 kleiner als der Konus-Hüllen-Abstand der Unterhülle H1 von Unterkonus C0 ist, Schritt 334 ausgeführt. Ansonsten wird Schritt 336 ausgeführt.
  • In Schritt 334 stellt die Funktion findVisibility fest, ob der Konus-Hüllen-Abstand der Unterhülle H0 von Unterkonus C0 kleiner als der aktuelle Wert des Sichtbarkeitsabstandes von Unterkonus CO ist. Wenn dies der Fall ist, dann wird die Funktion findVisibility erneut aufgerufen, um die Unter hülle H0 nach dem Unterkonus C0 zu untersuchen. Daher werden die Unterhülle H0, der Unterkonus CO und der Konus-Hüllen-Abstand zwischen diesen zweien der Funktion findVisibility als Parameter geliefert. Wenn dieser Aufruf der Funktion findVisibility zurückkehrt, wird Schritt 335 ausgeführt.
  • Wenn in Schritt 334 festgestellt wird, daß der Konus-Hüllen-Abstand der Unterhülle H0 vom Unterkonus C0 nicht kleiner als der Wert des Sichtbarkeitsabstandes von Unterkonus CO ist, wird Schritt 335 ausgeführt. In Schritt 335 stellt die Funktion findVisibility fest, ob der Konus-Hüllen-Abstand der Unterhülle H1 vom Unterkonus C0 kleiner als der Wert des Sichtbarkeitsabstandes von Unterkonus C0 ist. Wenn dies der Fall ist, dann wird die Funktion findVisibility erneut aufgerufen, um die Unterhülle H1 bezogen auf den Unterkonus C0 zu untersuchen. Daher werden die Unterhülle N1, der Unterkonus C0 und der Konus-Hüllen-Abstand zwischen ihnen der Funktion findVisibility als Parameter geliefert. Wenn dieser Aufruf der Funktion findVisibility zurückkehrt, geht die Programmkontrolle zu Schritt 338 über. Darüber hinaus wird der Schritt 338 ausgeführt, wenn der Ungleichheitstest von Schritt 335 fehlschlägt.
  • Da der nähergelegenen Unterhülle H0 die erste Interaktion mit Konus C0 ermöglicht wird, kann dies den Wert des Sichtbarkeitsabstandes von Unterkonus C0 ändem (d. h. verkleinern). Daher kann die entferntere Unterhülle H1 größere Schwierigkeiten haben, den Ungleichheitstest von Schritt 335 zu bestehen, aufgrund der vorherigen Interaktion von Unterhülle H0. Im Hinblick auf die vorherige Interaktion mit der nähergelegenen Unterhülle H0 kann es mit anderen Worten sein, daß die Untersuchung der Unterhülle H1 bezogen auf den Unterkonus C0 nicht durchgeführt zu werden braucht und vorteilhafterweise übersprungen wird. Daher wird die Sucheffizienz des Verfahrens zur Sichtbarkeitsbestimmung durch Vermeiden unnötiger Unterhüllenuntersuchungen verbessert.
  • Schritt 336 wird als Reaktion auf eine Bestimmung in Schritt 332 ausgeführt, daß der Konus-Hüllen-Abstand der Unterhülle H0 vom Unterkonus C0 nicht kleiner als der Konus-Hüllen-Abstand der Unterhülle H1 vom Unterkonus C0 ist. Mit anderen Worten wird Schritt 336 ausgeführt, wenn die Unterhülle H1 näher am Unterkonus C0 liegt als die Unterhülle H0. Schritt 336 schließt Operationen ähnlich denjenigen ein, die in Schritt 334 und 335 ausgeführt wurden. Jedoch wird das bedingte Durchsuchen der Unterhülle H1 vor dem bedingten Durchsuchen der Unterhülle H0 ausgeführt, d. h. die nähergelegene Unterhülle wird zuerst durchsucht. Im Anschluß an Schritt 336 geht die Kontrolle an Schritt 338 über.
  • Wenn im Schritt 330 festgestellt wird, daß der Konus-Hüllen-Abstand der Hülle H vom Konus CO nicht kleiner als der Sichtbarkeitsabstandes vom Unterkonus CO ist, geht die Steuerung an Schritt 338 über. In Schritt 338 stellt die Funktion findVisibility fest, ob der Konus-Hüllen-Abstand der Hülle H vom Unterkonus C1 kleiner als der Wert des Sichtbarkeitsabstandes von Unterkonus CO ist. Wenn dies der Fall ist, dann wird Schritt 340 ausgeführt. Schritt 340 führt bedingte Untersuchungen der Unterhüllen H0 und H1 in Bezug auf den Unterkonus C1 durch. Daher schließt Schritt 340 Operationen ähnlich zu denjenigen ein, die in den Schritten 332, 334, 335 und 336 beschrieben sind, wobei die Rollen von Unterkonus C0 und Unterkonus C1 vertauscht sind. Im Anschluß an Schritt 340 wird Schritt 342 ausgeführt. Darüber hinaus wird der Schritt 342 ausgeführt, wenn der Ungleichheitstest von Schritt 338 fehlschlägt.
  • In Schritt 342 wird der Wert des Sichtbarkeitsabstandes von Konus C gleich dem Maximum der Werte der Sichtbarkeitsabstände der Unterkonen C0 und C1 gesetzt. Im Anschluß an Schritt 342 kehrt die Programmsteuerung an die aufrufende Routine zurück.
  • Wie oben erläutert ist der Wert des Sichtbarkeitsabstandes, der jedem Konus im Konusbaum zugewiesen ist, gleich dem Maximum der Werte der Sichtbarkeitsabstände, die seinen Unterkonen-Kindern zugewiesen sind. Daher ist, wenn ein gegebener Hüllenknoten einen Abstand zu einem Konus erzielt, der größer ist als des Konus aktueller Wert des Sichtbarkeitsabstandes, sofort offensichtlich, daß keiner der Hüllenabkömmlinge für irgendeinen der Abkömmlinge des Konus von Interesse ist. Der gegebene Hüllenknoten kann übersprungen werden, soweit es diesen Konus betrifft.
  • Der Wert des Sichtbarkeitsabstandes eines Konus wird kleiner, während die Rekursion mehr und mehr Objekt-Konus Blattpaare überprüft. Wenn nahegelegene Objekte entdeckt werden, nimmt der Wert des Sichtbarkeitsabstandes eines Konus ab und die Wahrscheinlichkeit steigt, daß aussichtslose Hüllenknoten übersprungen werden. Ein Blatt im Hüllenbaum umgrenzt das Volumen des zugeordneten Objektes und approximiert auch den Inhalt dieses Objektes. Daher sind die Werte der Sichtbarkeitsabstände von Konen, die während der Rekursion gesetzt werden, üblicherweise nicht die wirklichen Abstände von den Objekten, sondern eine konservative bzw. vorsichtige Approximationen dieser Abstände. Wenn die konservative Approximation für die Verwendung in einer Anwendung nicht geeignet ist, dann kann diese Anwendung eine exakte Berechnung für die Werte der Sichtbarkeitsabstände aufrufen.
  • Während der obigen Diskussion des Sichtbarkeitssuchalgorithmus wurde unterstellt, daß die DIST-Funktion, die verwendet wird, um den Konus-Hüllen-Abstand zu berechnen, auf der Minimierung einer anwachsenden Funktion des Abstandes zwischen der Spitze des gegebenen Konus und Punkten im Schnitt des gegebenen Konus und der gegebenen Umgrenzung/Hülle basiert. Jedoch wird darauf hingewiesen, daß die DIST-Funktion dazu programmiert werden kann, einen Bonus der Nähe zwischen einem gegebenen Konus und einer gegebenen Umgrenzung/Hülle zu berechnen. Der resultierende Bonuswert steigt mit größerer Nähe und fällt mit größerer Entfernung, entgegengesetzt zum typischen Verhalten einer Abstandsfunktion. In diesem Fall führt der Sichtbarkeitssuchalgorithmus ein Durchsuchen der Umgrenzung/Hülle H nach dem Konus K nur aus, wenn der Bonuswert des Abstandes zwischen Konus K und Umgrenzung/Hülle H größer ist als der aktuelle Bonuswert, der dem Konus K zugeordnet ist. Weiterhin wird, nachdem ein Durchsuchen der Unterkonen des Konus K abgeschlossen ist, der Bonuswert, der Konus K zugeordnet ist, aktualisiert, um gleich dem Minimum der Bonuswerte seiner Teilkonuskinder zu sein.
  • Im allgemeinen bestimmt die DIST-Funktion einen Konus-Hüllen-Meßwert des Abstandes durch Berechnen des Extremwertes (d. h. Minimum oder Maximum) einer bestimmten monotonen (ansteigenden oder abfallenden) Funktion des Abstandes zwischen der Spitze des Konus K und Punkten im Schnitt des Konus K und der Umgrenzung/Hülle H. Das Durchsuchen des Konus K nach einer Umgrenzung/Hülle H ist abhängig davon, ob die Umgrenzung/Hülle H einen Konus-Hüllen- Meßwert bezogen auf den Konus K erreicht, der einer Ungleichheitsbedingung bezogen auf den Konus K zugewiesenen Meßwert genügt. Die Richtung der Ungleichheit, d. h. kleiner als oder größer als, hängt davon ab, ob die DIST-Funktion eine ansteigende oder abfallende Funktion des Abstandes verwendet.
  • Während das oben beschriebene Durchsuchen der Hüllen- und Konushierarchie eine rekursive Form unterstellt, wird darauf hingewiesen, daß jede beliebige Suchstrategie verwendet werden kann. In einer alternativen Ausführungsform werden die Hüllen- und/oder Konushierarchien iterativ durchsucht. Eine solche Brute-Force-Lösung kann von Vorteil sein, wenn eine große Anordnung bzw. ein großes Array von Prozessoren zur Verfügung steht, um die iterative Suche zu implementieren. In einer weiteren Ausführungsform wird eine Suche mit einer Stufenordnung bzw. -reihenfolge auf den Hüllen- und/oder Konushierarchien durchgeführt.
  • Verfahren zur Anzeige sichtbarer Objekte
  • Ein Verfahren zur Anzeige sichtbarer Objekte in einer grafischen Umgebung ist in dem Flußdiagramm von 11 beschrieben. Ein Sichtbarkeitssuchalgorithmus, der auf der CPU 102 oder optional auf dem Grafikbeschleuniger 112 ausgeführt wird, steuert die Bestimmung einer Menge von sichtbaren Objekten zur Anzeige auf dem Anzeigebildschirm 84. In Schritt 501 wird auf eine Zusammenstellung von Objekten aus dem Speicher 106 zugegriffen. In Schritt 502 wird eine Umgrenzungshierarchie aus der Zusammenstellung von Objekten aufgebaut. Der Aufbau der Umgrenzungshierarchie wird unten im Detail in Verbindung mit 12 beschneben. In Schritt 503 wird eine Konushierarchie durch Verfeinern eines anfänglichen Konus aufgebaut. Siehe die obige Diskussion in Verbindung mit den 6-9 hinsichtlich weiterer Information zum Aufbau einer Konushierarchie. In einer Ausführungsform ist der anfängliche Konus der gesamte Raum. In einer zweiten Ausführungsform entspricht der anfängliche Konus einer Umgebung, die den Blickkegelstumpf und eine benachbarte Umgebung um den Blickkegelstumpf enthält. Wenn die Blickorientierung (d. h. die Richtung) sich ändert, so daß der neue Blickkegelstumpf in der Umgebung des anfänglichen Konus bleibt, braucht die Konushierarchie nicht erneut aufgebaut zu werden, wodurch Rechenbandbreite eingespart wird. Jedem Konus in der Konushierarchie wird ein Meßwert zugeordnet, der völlig unverdeckter Sichtbarkeit entspricht.
  • In Schritt 504 wird ein Durchsuchen der Konushierarchie und der Umgrenzungshierarchie durchgeführt. Die Suchprozedur bestimmt das nächstgelegene Objekt für jeden der Blattkonen der Konushierarchie. Es wird darauf hingewiesen, daß einige Blattkonen nicht mit irgendeinem Objekt in der gegebenen Zusammenstellung interagieren können. In diesem Fall kann das nächstgelegene Objekt als der Hintergrund interpretiert werden.
  • Die Suchprozedur führt bedingte Untersuchungen der Konus-Umgrenzungspaare durch, wobei sie mit dem Wurzelkonus der Konushierarchie und der Wurzelumgrenzung der Umgrenzungshierarchie beginnt. Ist ein erster Konus in der Konushierarchie und eine erste Umgrenzung in der Umgrenzungshierarchie gegeben, dann bestimmt der Suchalgorithmus einen ersten Meßwert, der eine Größe des Abstandes zwischen dem ersten Konus und der ersten Umgrenzung angibt, wie in Schritt 504A gezeigt.
  • In Schritt 504B wird der erste Meßwert mit dem Meßwert, der dem ersten Konus zugeordnet ist, verglichen. Wenn der erste Meßwert eine Ungleichheitsbedingung bezogen auf den Meßwert, der dem ersten Konus zugeordnet ist, erfüllt, wird, wie in Schritt 504C gezeigt, die erste Umgrenzung bezogen auf den ersten Konus durchsucht. Im allgemeinen spiegelt der Meßwert, der einem Nicht-Blattknoten zugeordnet ist, das Maximum der Meßwerte seiner Blattkonus-Abkömmlinge, und der Meßwert, der einem Blattkonus zugeordnet ist, zeigt die Größe des Abstandes zwischen dem Blattkonus und seinem nächstgelegenen, bekannten Objekt an. Daher kann aus dem Durchsuchen der ersten Umhüllung bezogen auf den ersten Konus kein Vorteil gezogen werden, wenn der Vergleich aus Schritt 504B anzeigt, daß die erste Umgrenzung weiter entfernt ist als das nächste, bekannte Objekt für jeden der Blattkonus-Abkömmlinge des ersten Konus. Die Schritte 504B und 504C werden gemeinsam als bedingte Suche bezeichnet. Daher werden die erste Umgrenzung und der erste Konus nur untersucht, wenn es einen Hinweis darauf bzw. ein Anzeichen dafür gibt, daß die erste Umgrenzung näher als das nächste, bekannte Objekt für zumindest einen Blattabkömmling des ersten Konus ist.
  • In Schritt 506 werden die nächstgelegenen Objekte für eine Teilmenge von Konen der Konushierarchie auf der Anzeigeeinrichtung 84 angezeigt. Nach der bevorzugten Ausführungsform umfaßt die Teilmenge von Konen die Blattkonen der Konushierarchie, d. h. das nächstgelegene Objekt für jeden Blattkonus in der Konushierarchie wird auf der Anzeigeeinrichtung 84 angezeigt. Eine enorme Verarbeitungsbandbreite wird dadurch eingespart, daß Berechnungen zur Darstellung nur für die Objekte angefordert werden, die sichtbar sind. Das zu einem Blattkonus nächstgelegene Objekt ist das sichtbare Objekt für diesen Konus. Es wird darauf hingewiesen, daß die Sichtbarkeitssuche in Schritt 504 wiederholt für verschiedene Blickpunkte und/oder Blickrichtungen ausgeführt werden kann. Daher kann der Anzeigeschritt 506 vorteilhafterweise parallel zum Schritt 504 ausgeführt werden. Während die Sichtbarkeitssuche 504 für eine(n) aktuellen Blickpunkt/Blickrichtung durchgeführt wird, können die Ergebnisse einer früheren Sichtbarkeitssuche gleichzeitig in Schritt 506 angezeigt werden.
  • Nach einer Ausführungsform umfaßt der erste Meßwert einen Abzug bzw. Malus des Abstandes zwischen dem ersten Konus und der ersten Umgrenzung, der durch Minimieren einer ansteigenden Funktion des Abstandes zwischen der Spitze des ersten Konus und Punkten im Schnitt des ersten Konus und der ersten Umgrenzung bestimmt wird. In diesem Fall bestimmt Schritt 504B, ob der erste Meßwert kleiner ist als der Meßwert, der dem ersten Konus zugeordnet ist, da kleinere Meßwerte eine größere Nähe anzeigen. Mit anderen Worten ist die Ungleichheitsbedingung von Schritt 504B erfüllt, wenn der erste Meßwert kleiner ist als der Meßwert, der dem ersten Konus zugeordnet ist. Die ansteigende Funktion des Abstandes kann durch eine Vektornorm spezifiziert werden. Zum Beispiel definiert der Ausdruck ∥s∥ eine ansteigende Funktion des Abstandes, wobei s ein Verschiebungsvektor ist, der die Vektordifferenz zwischen der Spitze des ersten Konus und einem beliebigen Punkt im Schnitt des ersten Konus und der ersten Umgrenzung ist, und ∥·∥ eine Vektor norm bezeichnet. Beispiele von Vektornormen umfassen die L1-Norm, die L2-Norm, die L-Norm und im allgemeinen jede der Lp-Normen, wobei p irgendeine reelle Zahl im Bereich von eins bis einschließlich unendlich ist. Die L1-Norm eines Vektors ist definiert als die Summe der Absolutwerte seiner Komponenten. Die L2-Norm eines Vektor ist definiert als die Quadratwurzel der Summe der Quadrate der Vektorkomponenten. Die L-Norm eines Vektors ist definiert als das Maximum der Absolutwerte der Vektorkomponenten.
  • Nach der bevorzugten Ausführungsform wird der erste Meßwert des Abstandes zwischen der ersten Umgrenzung und dem ersten Konus durch Lösen eines Problems der linearen Programmierung unter Verwendung der linearen Randbedingungen berechnet, die durch die Normalenmatrix S für den ersten Konus gegeben sind, und die linearen Randbedingungen, die durch die Normalenmatrix N und den Ausdehnungsvektor c für die erste Umgrenzung gegeben sind. Es wird an die Dis- kussion in Verbindung mit den 9A-9C erinnert.
  • Nach einer alternativen Ausführungsform enthält der erste Meßwert einen Bonus der Nachbarschaft (d. h. Nähe) zwischen dem ersten Konus und der ersten Umgrenzung, der durch Maximieren einer abfallenden Funktion des Abstandes zwischen der Spitze des ersten Konus und Punkten im Schnitt des ersten Konus und der ersten Umgrenzung bestimmt wird. In diesem Fall bestimmt Schritt 504B, ob der erste Meßwert größer ist als der Meßwert, der dem ersten Konus zugeordnet ist, da größere Meßwerte größere Nähe anzeigen. Mit anderen Worten wird die Ungleichheitsbedingung von Schritt 504B erfüllt, wenn der erste Meßwert größer ist als der Meßwert, der dem ersten Konus zugeordnet ist.
  • 12 veranschaulicht Schritt 502 , d. h. den Aufbau der Umgrenzungshierarchie aus der Zusammenstellung der Objekte. In Schritt 602 werden die Objekte in der grafischen Szene rekursiv zu Clustern zusammengefaßt. Objekte werden vorzugsweise aufgrund ihrer Nähe zu Clustern zusammengestellt. Diese Cluster erster Ordnung werden ihrerseits zu Clustern zweiter Ordnung zusammengestellt. Cluster aufeinanderfolgender höherer Ordnungen werden gebildet, bis alle Objekte in einem universellen Cluster enthalten sind. Die Objekte selbst können als Cluster der Ordnung Null betrachtet werden. In Schritt 604 wird jeder Cluster von allen Ordnungen mit entsprechenden Umgrenzungen umgeben. Die Umgrenzungen sind vorzugsweise vielflächige Hüllen wie oben in Verbindung mit den 4 und 5 beschrieben. Jedoch werden auch andere Arten von Umgrenzungen in Betracht gezogen wie zum Beispiel quadratische Oberflächen, verallgemeinerte vielflächige Umgrenzungen, etc.
  • In Schritt 606 wird ein hierarchischer Baum von Umgrenzungen durch Zuordnen eines Knotens für jedes der Objekte und Cluster erzeugt. In Schritt 608 werden jedem Knoten Parameter zugewiesen, welche die entsprechende Umgrenzung beschreiben (charakterisieren). Nach einer Ausführungsform umfaßt die Parameterzuweisung das Speichern des Ausdehnungsvektors c, der die vielflächigen Hüllenflächen, wie in Verbindung mit den 5A und 5B beschrieben, anordnet bzw. örtlich festlegt. In Schritt 610 werden die Knoten so organisiert, daß Beziehungen zwischen Knoten der Clusterzugehörigkeit entsprechen. Wenn zum Beispiel Knoten A der Elternknoten von Knoten B in der Umgrenzungshierarchie ist, dann enthält der Cluster, der Knoten A entspricht, einen Untercluster, der Knoten B entspricht, und die Umgrenzung für Knoten A enthält die Umgrenzung für Knoten B.
  • Obwohl der Aufbau der obigen Konushierarchie mittels rekursiver Clusterbildung beschrieben wurde, wird darauf hingewiesen, daß alternative Ausführungsformen in Betracht gezogen werden, die andere Arten der Clusterbildung wie zum Beispiel iterative Clusterbildung verwenden.
  • Ein endständiges Konus-Umgrenzungs-Paar
  • 13 veranschaulicht einen ersten Abschnitt von Schritt 504C, d. h. den Schritt des Durchsuchens der ersten Umgrenzung im Bezug auf den ersten Konus, wenn die erste Umgrenzung und der erste Konus beide Blätter ihrer entsprechenden Hierarchien sind. In Schritt 702 stellt der Sichtbarkeitssuchalgorithmus fest, ob der erste Konus und die erste Umgrenzung Blätter ihrer entsprechenden Hierarchien sind. Wenn sie beide Blätter sind, setzt der Sichtbarkeitssuchalgorithmus (a) den dem ersten Konus zugeordneten Meßwert gleich dem ersten Abstandsmeßwert zwischen der ersten Umgrenzung und dem ersten Konus wie in Schritt 704 dargestellt und (b) ein Attribut "sichtbares Objekt", das dem ersten Konus zugeordnet ist, gleich der ersten Umgrenzung wie in Schritt 706 dargestellt. Es wird darauf hingewiesen, daß die Schritte 704 und 706 in jeder beliebigen Reihenfolge oder parallel ausgeführt werden können.
  • Ein endständiger Konus mit einer nicht-endständigen Umgrenzung
  • 14 veranschaulicht einen zweiten Abschnitt von Schritt 504C, d. h. den Schritt des Durchsuchens der ersten Umgrenzung im Bezug auf den ersten Konus, wenn der erste Konus ein Blatt der Konushierarchie ist und die erste Umgrenzung kein Blatt der Umgrenzungshierarchie ist. In Schritt 710 stellt der Sichtbarkeitssuchalgorithmus fest, ob der erste Konus ein Blattkonus der Konushierarchie ist und die erste Umgrenzung eine Nicht-Blattumgrenzung der Umgrenzungshierarchie, d. h. eine nicht-endständige Umgrenzung, ist. Als Reaktion auf die positive Feststellung, daß der erste Konus ein Blattkonus und die erste Umgrenzung keine Blattumgrenzung ist, werden die Unterumgrenzungen der ersten Umgrenzung bezogen auf den ersten Konus bedingt untersucht.
  • 15 veranschaulicht Schritt 712, d. h. den Schritt des bedingten Untersuchens der Unterumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Konus. In Schritt 720 berechnet der Sichtbarkeitssuchalgorithmus einen Wert des Konus-Umgrenzungs-Abstandes für jede der Teilumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Konus. Nach einer Ausführungsform werden die Werte der Konus-Umgrenzungs-Abstände in derselben Weise berechnet wie der erste Meßwert. In Schritt 722 durchsucht der Sichtbarkeitssuchalgorithmus bedingt die Unterumgrenzungen der ersten Umgrenzung in Bezug auf den ersten Konus in aufsteigender Reihenfolge ihrer Abstände vom ersten Konus. Die Werte der Konus-Umgrenzungs-Abstände werden verwendet, um die aufsteigende Reihenfolge festzulegen. Mit anderen Worten wird die Unterumgrenzung A vor der Unterumgrenzung B bedingt durchsucht, wenn die Unterumgrenzung A dem ersten Konus näher ist als die Unterumgrenzung B.
  • 16 veranschaulicht Schritt 722, d. h. das bedingte Durchsuchen der Unterumgrenzungen der ersten Umgrenzung bezogen auf den ersten Konus mittels einer generischen ersten Unterumgrenzung der ersten Umgrenzung. In Schritt 730 stellt der Sichtbarkeitssuchalgorithmus fest, ob der Wert des Konus-Umgrenzungs-Abstandes der ersten Unterumgrenzung eine Ungleichheitsbedingung bezogen auf den dem ersten Konus zugeordneten Meßwert erfüllt. Die Richtung der Ungleichheit, die in Schritt 730 geprüft wird, kann dieselbe sein wie die Richtung der Ungleichheit, die in Schritt 504B geprüft wird.
  • In Schritt 732 durchsucht der Sichtbarkeitssuchalgorithmus die erste Unterumgrenzung bezogen auf den ersten Konus in Reaktion auf die positive Feststellung, daß der Wert des Konus-Umgrenzungs-Abstandes der ersten Unterumgrenzung die Ungleichheitsbedingung bezüglich des Meßwertes des ersten Konus erfüllt.
  • Eine endständige Hülle mit einem nicht-endständigen Konus
  • 17 veranschaulicht einen dritten Abschnitt von Schritt 504C, d. h. den Schritt des Durchsuchens der ersten Umgrenzung im Bezug auf den ersten Konus, wenn die erste Umgrenzung eine Blattumgrenzung der Umgrenzungshierarchie ist und der erste Konus ein Nicht-Blattkonus der Konushierarchie ist. In Schritt 740 stellt der Sichtbarkeitssuchalgorithmus fest, ob die erste Umgrenzung ein Blatt der Umgrenzungshierarchie ist und der erste Konus ein Nicht-Blatt der Konushierarchie ist. In Schritt 742 durchsucht der Sichtbarkeitssuchalgorithmus bedingt die Unterkonen des ersten Konus in Bezug auf die erste Umgrenzung als Reaktion auf eine positive Feststellung, daß die erste Umgrenzung eine Blattumgrenzung und der erste Konus kein Blattkonus ist.
  • 18 veranschaulicht Schritt 742, d. h. den Schritt des bedingten Durchsuchen der Unterkonen des ersten Konus mit Bezug auf die erste Umgrenzung mittels eines generischen ersten Unterkonus. Der generische Stellvertreter soll den Prozeß des bedingten Durchsuchen von jedem der Unterkonen des ersten Konus beispielhaft darstellen. In Schritt 749 berechnet der Sichtbarkeitssuchalgorithmus einen Wert des Konus-Umgrenzungs-Abstandes für die erste Umgrenzung bezogen auf den ersten Unterkonus. In Schritt 750 stellt der Sichtbarkeitssuchalgorithmus fest, ob der Wert des Konus-Umgrenzungs-Abstandes eine Ungleichheitsbedingung bezogen auf den dem ersten Unterkonus zugeordneten Meßwert erfüllt. Nach einer Ausführungsform wird der Wert des Konus-Umgrenzungs-Abstandes unter Verwendung desselben Verfahrens berechnet, das verwendet wird, um in Schritt 504A den ersten Meßwert zu berechnen. In diesem Fall kann die Richtung der Ungleichheit, die in Schritt 750 geprüft wird, konsistent sein mit der Richtung der Ungleichheit, die in Schritt 504B geprüft wird.
  • In Schritt 752 durchsucht der Sichtbarkeitssuchalgorithmus den ersten Unterkonus mit Bezug auf die erste Umgrenzung als Reaktion auf die positive Feststellung, daß der Wert des Konus-Umgrenzungs-Abstandes die Ungleichheitsbedingung bezogen auf den dem ersten Unterkonus zugeordneten Meßwert erfüllt.
  • Nachdem die Unterkonen des ersten Konus gegen die erste Umgrenzung durchsucht wurden, wird der Meßwert, der dem ersten Konus zugeordnet ist, aktualisiert. Der Meßwert, der dem ersten Konus zugeordnet ist, kann nämlich gleich einem Extremwert (d. h. Maximum oder Minimum) der Meßwerte, die den Unterkonen des ersten Konus zugeordnet sind, gesetzt werden. Die Auswahl des Maximums als dem Extremwert ist mit den Ausführungsformen verbunden, die den Konus-Umgrenzungs-Abstand auf der Grundlage einer ansteigenden Funktion des Abstandes berechnen. Die Auswahl des Minimums als dem Extremwert ist mit den Ausführungsformen verbunden, die den Konus-Umgrenzungs-Abstand auf der Grundlage einer abfallenden Funktion des Abstandes berechnen.
  • Ein nicht-endständiger Konus mit einer nicht-endständigen Umgrenzung
  • 19 veranschaulicht einen vierten Abschnitt von Schritt 504C, d. h. den Schritt des Durchsuchens der ersten Umgrenzung in Bezug auf den ersten Konus, wenn weder der erste Konus noch die erste Umgrenzung Blattknoten ihrer entsprechenden Hierarchien sind. In Schritt 759 berechnet der Sichtbarkeitssuchalgorithmus einen ersten Wert des Konus-Umgrenzungs-Abstandes für die erste Umgrenzung in Bezug auf den ersten Unterkonus des ersten Konus. In Schritt 760 stellt der Sichtbarkeit (suchalgorithmus fest, ob der erste Wert des Konus-Umgrenzungs-Abstandes eine Ungleichheitsbedingung bezogen auf einen dem ersten Unterkonus zugeordneten Meßwert erfüllt. Nach einer Ausführungsform wird der erste Wert des Konus-Umgrenzungs-Abstandes unter Verwendung desselben Verfahrens berechnet, das verwendet wurde, um den ersten Meßwert in Schritt 504A zu berechnen. In diesem Fall kann die Richtung der Ungleichheit, die in Schritt 760 geprüft wird, konsistent sein zur Richtung der Ungleichheit, die in Schritt 504B geprüft wird. In Schritt 762 untersucht der Sichtbarkeitssuchalgorithmus bedingt die Unterumgrenzungen der ersten Umgrenzung bezogen auf den ersten Unterkonus als Reaktion auf die positive Feststellung, daß der erste Wert des Konus-Umgrenzungs-Abstandes die Ungleichheitsbedingung bezüglich des Meßwertes, der dem ersten Unterkonus zugeordnet ist, erfüllt.
  • 20 veranschaulicht Schritt 762, d. h. den Schritt des bedingten Untersuchens der Unterhüllen der ersten Hülle bezogen auf den ersten Unterkonus. In Schritt 770 berechnet der Sichtbarkeitssuchalgorithmus einen zweiten Wert des Konus-Umgrenzungs-Abstandes für jede der Unterumgrenzungen der ersten Umgrenzung bezogen auf den ersten Unterkonus. Die zweiten Werte des Konus-Umgenzungs-Abstandes können unter Verwendung desselben Verfahrens berechnet werden, das verwendet wird, um in Schritt 504A den ersten Meßwert zu berechnen. In Schritt 772 durchsucht der Sichtbarkeitssuchalgorithmus bedingt die Unterumgrenzungen der ersten Umgrenzung mit Bezug auf den ersten Unterkonus in aufsteigender Reihenfolge ihrer Abstände vom ersten Unterkonus, d. h. Unterumgrenzungen, die näher am ersten Unterkonus liegen, werden zuerst durchsucht. Diese Reihenfolge bei der Durchsuchung ermöglicht es vorteilhafterweise, daß nähergelegene Unterumgrenzungen die Durchsuchung weiter entfernter Unterhüllen verhindern, und somit wird unnötiges Durchsuchen vermieden.
  • 2 veranschaulicht Schritt 772, d. h. den Schritt des bedingten Durchsuchens von Unterumgrenzungen der ersten Umgrenzung bezogen auf den ersten Unterkonus. Eine generische Unterhülle der ersten Hülle wird verwendet, um das bedingte Durchsuchen zu veranschaulichen. In Schritt 780 stellt der Sichtbarkeitssuchalgorithmus fest, ob der zweite Wert des Konus-Hüllen-Abstandes der ersten Unterumgrenzung unter den Unterumgrenzungen der ersten Umgrenzung eine Ungleichheitsbedingung bezogen auf den dem ersten Unterkonus zugeordneten Meßwert erfüllt. Es wird darauf hingewiesen, daß die Richtung der Ungleichheit, die in Schritt 780 geprüft wird, ähnlich der Richtung der Ungleichheit, die in Schritt 504B geprüft wird, sein kann, insbesondere wenn das Verfahren, das zur Berechnung des zweiten Wertes des Konus-Hüllen-Abstandes verwendet wird, dasselbe ist wie das, welches zur Berechnung des ersten Meßwertes verwendet wurde.
  • In Schritt 782 durchsucht der Sichtbarkeitssuchalgorithmus die erste Unterumgrenzung in Bezug auf den ersten Unterkonus in Reaktion auf die positive Feststellung, daß der zweite Wert des Konus-Hüllen-Abstandes für die erste Unterumgrenzung die Ungleichheitsbedingung bezüglich des Meßwertes, der dem ersten Unterkonus zugeordnet ist, erfüllt.
  • Nachdem die Unterumgrenzungen der ersten Umgrenzung nach dem ersten Unterkonus durchsucht wurden, wird ein zweiter Unterkonus des ersten Konus geprüft. Im besonderen berechnet der Sichtbarkeitssuchalgorithmus ein Maß des Abstandes der ersten Umgrenzung vom zweiten Unterkonus. Wenn dieses Maß des Abstandes eine Ungleichheitsbedingung bezüglich des Meßwertes, der dem zweiten Unterkonus zugeordnet ist, erfüllt, dann können die Unterumgrenzungen der ersten Umgrenzung mit Bezug auf den zweiten Unterkonus bedingt untersucht werden. Die bedingte Untersuchung des zweiten Unterkonus ist ähnlich zur bedingten Untersuchung des ersten Unterkonus, die in Verbindung mit den 20 und 21 beschrieben wurde.
  • Nachdem alle Unterkonen des ersten Konus geprüft und bedingt durchsucht wurden wie oben beschrieben, wird der Meßwert, der dem ersten Konus zugeordnet ist, gleich einem Extremwert der Meßwerte, die den Unterkonen zugeordnet sind, gesetzt. Wie oben angemerkt wird in Ausführungsformen, die eine ansteigende Funktion des Abstandes verwenden, um die Werte der Konus-Umgrenzungs-Abstände zu berechnen, das Maximum als der Extremwert ausgewählt, und das Minimum wird ausgewählt in Ausführungsformen, die eine abfallende Funktion des Abstandes verwenden, um die Werte der Konus-Umgrenzungs-Abstände zu berechnen.
  • In einer alternativen Ausführungsform erstrecken sich die Blattkonen über Winkelsektoren, die größer als ein Pixel sind. Daher können die Blattkonen nach Beendigung des oben beschriebenen Sichtbarkeitssuchalgorithmus mit einem strahlenbasierten Untersuchungsverfahren weiter bearbeitet werden, um die Werte der individuellen Pixel innerhalb der Blattkonen zu bestimmen.
  • Obwohl das oben beschriebene Durchsuchen der Umgrenzungshierarchie und der Konushierarchie von einer rekursiven Form ausgeht, werden alternative Ausführungsformen in Betracht gezogen, bei denen ein Durchsuchen in Ordnungsstufen oder ein iteratives Durchsuchen auf einer von beiden von der Umgrenzungshierarchie und der Konushierarchie oder auf beiden gemeinsam ausgeführt wird.
  • Berechnen der auf einen Konus eingeschränkten Abstandsfunktion
  • Wir erinnern uns, daß die Auswertung des Konus-Hüllen-Abstandes fc(H) einer Hülle H von einem Konus C die Minimierung von ∥X∥ unter den Hüllen-Randbedingungen Ax ≤ b und den Konus-Randbedingungen Sx ≤ 0 erfordert. Die Zeilen der Matrix A enthalten Normalen der Hüllenoberflächen. Die Zeilen der Matrix S enthalten Normalen der Konusoberflächen. Diese Minimierung kann als ein Problem der nicht-linearen Programmierung formuliert werden. Zum Beispiel reduziert sich das Problem der nicht-linearen Programmierung auf ein Problem der quadratischen Programmierung, wenn eine Euklidische Norm verwendet wird, und zu einem Problem der linearen Programmierung, wenn die L1-Norm verwendet wird. Die Berechnung des Konus-Hüllen-Abstandes wird hier als geometrische Abfrage bezeichnet.
  • Es wird auch darauf hingewiesen, daß der Konus-Hüllen-Abstand durch Maximieren einer ansteigenden Abstandsfunktion wie zum Beispiel ∥X∥–1 für Punkte x, die den Umgrenzungs-/Hüllen-Randbedingung und den Konus-Randbedingungen genügen, gemessen werden kann. Folglich kann im allgemeinen ein Wert des Konus-Hüllen-Abstandes durch Bestimmen eines Extremwertes (d. h. Minimalwert oder Maximalwert) der Abstandsfunktion unter den Konus-Randbedingungen und den Umgrenzungs-/Hüllen-Randbedingung berechnet werden.
  • Die Verwendung einer Hierarchie von Konen anstelle einer Sammlung von Strahlen beruht auf dem Wunsch nach Berechnungs- bzw. Recheneffizienz. Dank der frühen Aussortierung von Kandidaten, die aus der zuvor dargestellten doppelten Rekursion resultiert, werden weniger geometrische Abfragen ausgeführt. Diese Abfragen sind jedoch teurer als die Abfragen, die in dem Strahlenwurf- bzw. Ray Casting Verfahren verwendet werden. daher muß die Berechnung von Konusabfragen akribisch geplant bzw. gestaltet werden. Ein nachlässiger Algorithmus kann schließlich den größten Teil des Berechnungsvorteils, der durch die Verbesserungen in dem doppelten bzw. dualen Baumdurchsuchen zur Verfügung gestellt wird, aufzehren. Für den Fall der linearen Programmierung wird nun ein Verfahren skizziert, mit dem ein knapper bzw. straffer Berechnungsaufwand für eine Anfrage bzw. eine Anfrage mit knappem bzw. straffem Berechnungsaufwand erreicht wird bzw. werden kann.
  • Eine stückweise lineare Formulierung des Abstandes fc führt zu dem folgenden linearen Programm:
    min(VT X)
    eingeschränkt durch Ax ≤ b , Sx ≤ 0.
  • Der Vektor v ist ein bestimmter Teil bzw. ein bestimmtes Mitglied des Konus, der bzw. das polar bzw. entgegengesetzt zum Konus C ist. Zum Beispiel v = –ST e, wobei e der aus lauter Einsen bestehende Vektor ist. [Es wird darauf hingewiesen, daß die Matrix S von Konusnormalen S nach außen gerichtete Normalen zur Konusoberfläche sind. Daher ergibt die Negation der Summe der Normalenvektoren einen polaren Vektor.] Die Bedingung Ax ≤ b impliziert, daß der Punkt x innerhalb der umgrenzenden Hülle liegt. Die Bedingung Sx ≤ 0 impliziert, daß der Punkt x innerhalb des Konus C liegt. Für ein Verfahren zur effizienten Lösung wird das Problem der linearen Programmierung mittels seines Dualen neu aufgesetzt:
    max(bT y)
    eingeschränkt durch ATy + STz = v, 0 ≤ y, 0 ≤ z .
  • Die duale Zielgröße, bT y, ist unendlich, wenn sich der Konus und die umgrenzende Hülle nicht schneiden (die Variablen y und z sind die Lagrange-Multiplikatoren der Randbedingungen des vorstehenden Problems).
  • Nach der bevorzugten Ausführungsform haben die umgrenzenden Hüllen Flächen, die zu einer festen Menge von Normalenvektoren senkrecht bzw. normal sind. Daher ist die Matrix AT dieselbe für alle Hüllen. Für einen gegebenen Konus sind die Matrix ST und der Vektor v ebenso fest. Aufgrund dieser Beobachtung ist offensichtlich, daß das mehrdimensionale Polyeder bzw. Vielflach {(y, z) : ATy + STz = v, 0 ≤ y, 0 ≤ z } dem Konus zugeordnet ist. (In einer Ausführungsform hat dieses Polyeder siebzehn Dimensionen. Vierzehn von diesen Dimensionen stammen von der Art der in fester Richtung liegenden umgrenzenden Hülle und drei zusätzliche Dimensionen stammen von Konus.) Da das Polyeder nur von der Konusmatrix S abhängt, ist es möglich, die Extremstruktur des Polygons für jeden Konus in der Konushierarchie vollständig vorab zu berechnen. Durch komplementäres Nachlassen haben die Spitzen des Polyeders höchstens drei Elemente. Die Kanten und Extremstrahlen haben höchstens vier von Null verschiedene Elemente. Eine abgekürzte, simplexbasierte Steigetechnik kann verwendet werden, um die Anfrage unter diesen Randbedingungen schnell zu lösen.
  • Um die Randbedingungen aufzustellen, muß die Orientierung der Konushierarchie festgefegt bzw. fixiert werden. Dies ist nicht machbar, wenn die Konushierarchie die Orientierung mit der Änderung der Orientierung des Sichtvolumens ändert. Daher wird der gesamte Raum mit Konen tesselliert und sichtbare Objekte werden im gesamten Raum entdeckt. Erst nach dieser Berechnung für den gesamten Raum wird die Menge der sichtbaren Objekte selektiv reduziert, um dem aktuellen Sichtvolumen zu entsprechen.
  • In einer alternativen Ausführungsform kann ein weniger aggressiver bzw. energischer Ansatz verfolgt werden. Durch Beachten bzw. Vermerken, welche Teilmengen der Konen der aktuellen Orientierung bzw. Ausrichtung des Sichtvolumens in Kegelstumpfform entsprechen, braucht nämlich nur diese Teilmenge in die Berechnung der Menge von sichtbaren Objekten aufgenommen zu werden.
  • Speichermedien
  • Wie oben beschrieben werden die Sichtbarkeitssoftware und das Sichtbarkeitssuchprogramm der vorliegenden Erfindung für den Zugriff durch Prozessor 102 vorzugsweise im Speicher 106 gespeichert. Darüber hinaus können die Sichtbarkeitssoftware und das Sichtbarkeitssuchprogramm in jedem beliebigen gewünschten Speichermedium wie zum Beispiel einem Installationsmedium (z. B. CD-ROM, Floppydisk, etc.), einem permanenten Speicher (z. B. Festplatte, optischer Speicher, Magnetband, ZIP-Drive-Speicher, ROM, etc.), verschiedenen Arten von flüchtigem Speicher, wie zum Beispiel RAM, oder jeder beliebigen Kombination davon gespeichert werden. Die vorliegende Erfindung zieht die Ablage und Speicherung der Sichtbarkeitssoftware und des Sichtbarkeitssuchprogramms auf Speichermedien zur Verteilung an Endnutzer und/oder Kunden bzw. Käufer in Betracht bzw. in Erwägung.
  • Mehrere Objekte pro Konus
  • Gemäß dem Sichtbarkeitssuchalgorithmus wird ein einzelnes, nächstes Objekt für jeden Blattkonus (d. h. Endkonus bzw. endständigen Konus) identifiziert. Wenn jeder von den Blattkonen eine ultimative Auflösung hat, d. h. die Auflösung eines Pixels, dann entdeckt die Strategie zur Identifizierung des nächstgelegenen Objektes in jedem Blattkonus garantiert alle sichtbaren Objekte. Jedoch ist die Sichtbarkeitssuche in der vollständig aufgelösten Konushierarchie rechnerisch aufwendig. Der rechnerische Aufwand kann durch weniger Verfeinerungsstufen in der Konushierarchie gesenkt werden. Aber weniger Verfeinerungsstufen führen dazu, daß die Größe bzw. Ausdehnung der Blattkonen größer ist. Mit dem Anwachsen der Größe der Blattkonen gibt es eine ansteigende Wahrscheinlichkeit, daß zwei oder mehr Objekte für einen einzelnen Blattkonus sichtbar sind, d. h. daß das nächstgelegene Objekt nicht das einzige für den Konus sichtbare Objekt ist. Daher gibt es eine gestiegene Wahrscheinlichkeit, daß mit dem Ansteigen der Größe der Blattkonen oder äquivalent, wenn weniger Stufen der Konusverfeinerung in der Konushierarchie verwendet werden, weniger als die vollständige Menge von sichtbaren Objekten berichtet wird.
  • Um die Wahrscheinlichkeit zu erhöhen, die vollständige Menge von sichtbaren Objekten zu erfassen, kann der Sichtbarkeitssuchalgorithmus modifiziert werden, um die ersten K nächstgelegenen Objekte für jeden Blattkonus zu bestimmen, wobei K eine ganze Zahl größer als oder gleich zwei ist. Vorteilhafterweise kann die ganze Zahl K eine Funktion der Konusgröße sein. Wenn die Konushierarchie nahe an der ultimativen Auflösung liegt, kann K folglich nahe an eins liegen. Umgekehrt kann die ganze Zahl K größer sein, wenn die Konushierarchie schwach aufgelöst ist, d. h. nur wenige Verfeinerungsstufen enthält.
  • Die vorliegende Erfindung zieht die Maximierung der Berechnungseffizienz entlang der Achse "hohe Konusauflösung/niedriger K-Wert" auf der einen Seite und "niedrige Konusauflösung/hoher K-Wert" auf der anderen Seite in Betracht.
  • Adaptive Verfeinerung der Konushierarchie
  • In der vorstehenden Diskussion wird die Konushierarchie beschrieben, als wenn sie vor dem Beginn der Suche nach sichtbaren Objekte durch den Sichtbarkeitssuchalgorithmus aufgebaut bzw. erstellt wurde und während der Suche statisch bleibt. Eine weitere Alternative ist es, die Konushierarchie während der Suchprozedur adaptiv zu verfeinern. Auf diese Weise braucht die Konushierarchie nicht Speicherplatz für Konen zu vergeuden, die niemals mit irgendeinem Objekt wechselwirken werden. Die Konushierarchie kann als Reaktion auf Benutzereingaben verfeinert werden. Zum Beispiel können Konen, die der aktuellen Blickrichtung des Benutzers entsprechen, zusätzliche Verfei nerung rechtfertigen. Ein gegebener Konus kann unverfeinert bleiben, bis die Suchprozedur eine Umgrenzung entdeckt, die mit dem gegebenen Konus interagiert, und der Konus kann dann zu diesem Zeitpunkt verfeinert werden. Die Verfeinerung eines gegebenen Konus kann weiter verfeinert werden, sobald zusätzliche interagierende Objekte/Umgrenzungen entdeckt werden, um die Objekte adäquater zu unterscheiden. In dem Kontext, bei dem Objekte in Bewegung sind, kann die Bewegung eines Objekts in das Blickfeld eines gegebenen Konus eine erhöhte Verfeinerung des gegebenen Konus veranlassen. Wenn der Benutzer in einer virtuellen Umgebung anhält, um auf ein gegebenes Objekt zu blicken, können die Konen, die dieses Objekt definieren, zunehmend verfeinert werden.
  • Verfeinerung der Konushierarchie kann der Verfügbarkeit von Berechnungszyklen unterworfen sein bzw. von der Verfügbarkeit von Berechnungszyklen abhängig sein. Entsprechend dem Paradigma des sukzessiven Erwärmens kann der anfängliche Konusbaum nur einen oder wenige Konen haben und damit eine grobe, anfängliche Abschätzung der Menge von sichtbaren Objekten, die sofort angezeigt werden, ermöglichen. In dem Maße, in dem Berechnungszyklen verfügbar werden, kann die Konushierarchie sukzessiv verfeinert und durchsucht werden, um eine zunehmend genauere Anzeige der Menge von sichtbaren Objekten zur Verfügung zu stellen.
  • Im allgemeinen können die Konen einer Konushierarchie auf verschiedenen Verfeinerungsstufen liegen. Konusverfeinerung ist nur zulässig, wenn der Konus mit einem Objekt oder einer Umgrenzung (z. B. einer Hülle) interagiert. Die adaptive Konusverfeinerung endet, wenn die Konusauflösung der eines Pixels entspricht oder wenn kein Objekt im Konus erscheint.
  • Es wird darauf hingewiesen, daß eine Kombination von fester Verfeinerung und adaptiver Verfeinerung der Konushierarchie verwendet werden kann.
  • Die vorliegende Erfindung zieht ebenso adaptives Verfeinern der Konushierarchie und Identifizieren der K nächstgelegenen Objekte/Umgrenzungen für jeden Konus in Betracht, wobei K sich ändert, wenn sich die Verfeinerungsstufe ändert.
  • Nicht-verdeckende Objekte
  • Nicht-verdeckende Objekte sind Objekte, die andere Objekte nicht vollständig verdecken (d. h. deren Sichtbarkeit blockieren). Zum Beispiel kann ein transparentes, halbtransparentes oder durchscheinendes bzw. lichtdurchlässiges Objekt ein Nicht-Verdecker sein. Eine Schaufenster- bzw. Glastür, getöntes Glas, ein Fenster mit Sprossen können als Nicht-Verdecker klassifiziert werden. Objekte hinter einem Nicht-Verdecker können teilweise sichtbar sein. Die vorliegende Erfindung zieht gewisse Modifikationen des Sichtbarkeitssuchalgorithmus' in Betracht, um das Vorhandensein von nicht-verdeckenden Objekten (Non-Occluding Object, NOOs) in der Zusammenstellung von Objekten, die durchsucht werden soll, zu erlauben bzw. zu ermöglichen. Im besonderen kann der Sichtbarkeitssuchalgorithmus eingerichtet werden, um in jedem Blattkonus die ersten K nächstgelegenen, verdeckenden Objekte und jedes NOO, das näher als der K-te Verdecken liegt, zu suchen, wobei K eine Funktion der Größe der Blattkonen sein kann.
  • INDUSTRIELLE ANWENDBARKEIT
  • Diese Erfindung ist auf eine Reihe verschiedener Gebiete anwendbar einschließlich, jedoch nicht beschränkt auf: Computergrafik, Computervisualisierung, computergestützter) Entwurf und Entwicklung (Computer Aided Design and Engineering) und digitale Bildverarbeitung bzw. Bearbeitung, Modellierung virtueller Realitäten (Virtual Reality Modeling) und parallele Verarbeitung.
  • Zahlreiche Variationen und Modifikationen werden den Fachleuten auf diesem Gebiet offensichtlich, sobald die obenstehende Offenbarung vollständig eingesehen bzw. eingeschätzt wird. Es ist beabsichtigt bzw. vorgesehen, daß die folgenden Ansprüche in dem Sinne interpretiert werden, daß sie alle solche Variationen und Modifikationen einschließen bzw. umfassen.
  • Anhang: Quellcode für die Funktion findVisibility
  • Der nachfolgende Quellcode veranschaulicht eine Ausführungsform des rekursiven Durchsuchens des Hüllenbaumes und des Konusbaumes, um sichtbare Objekte für jeden Blattkonus zu bestimmen.
  • Figure 00410001
  • Figure 00420001

Claims (39)

  1. Verfahren zum Darstellen sichtbarer Objekte auf einer Anzeigeeinrichtung, wobei das Verfahren aufweist: Zugreifen auf eine Sammlung von Objekten im Raum, Aufbauen einer Umgrenzungshierarchie, welche eine Hierarchie von Objektgrenzen im Raum für die Sammlung von Objekten aufweist, Konstruieren einer Konushierarchie, welche eine Hierarchie von Konen aufweist, die von einem Blickpunkt im Raum ausgehen, Durchsuchen der Konushierarchie und der Umgrenzungshierarchie, um Objekte zu bestimmen, die für einen Teilsatz von Konen aus der Konushierarchie dem Blickpunkt am nächsten liegen, und Anzeigen der nächsten Objekte für den Teilsatz von Konen der Konushierarchie.
  2. Verfahren nach Anspruch 1, wobei die Konushierarchie erzeugt wird durch Verfeinern eines anfänglichen Konus.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Teilsatz von Konen die Blattkonen in der Konushierarchie aufweist.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei für einen ersten Konus in der Konushierarchie und eine erste Umgrenzung in der Umgrenzungshierarchie die Suche umfaßt: Bestimmen eines ersten Meßwertes der Trennung zwischen dem ersten Konus und der ersten Umgrenzung, Bestimmen, ob der erste Meßwert eine Ungleichheitsbedingung bezüglich eines zu dem ersten Konus gehörenden Meßwertes erfüllt, Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus in Reaktion auf eine bestätigende Feststellung, daß der erste Meßwert die Ungleichheitsbedingung bezüglich des dem ersten Konus zugeordneten Meßwertes erfüllt.
  5. Verfahren nach Anspruch 4, wobei das Konstruieren der Begrenzungshierarchie aufweist: Zusammenfassen der Objekte zu Clustern, so daß sie Cluster bilden, Umgrenzen jedes Objektes und jedes Clusters mit einer entsprechenden Grenze, Zuordnen eines Knotens in der Umgrenzungshierarchie für jedes Objekt und jedes Cluster, Zuordnen von Parametern zu jedem Knoten, wobei die dem Knoten zugeordneten Parameter die entsprechende Umgrenzung beschreiben, und Organisieren der Knoten so, daß Knotenbeziehungen Clusterbeziehungen repräsentieren.
  6. Verfahren nach Anspruch 4 oder 5, wobei das Bestimmen der ersten Messung der Trennung zwischen dem ersten Konus und der ersten Umgrenzung das Ausführen von Berechnungen umfaßt, welche eine mit dem Trennabstand zwischen der Spitze des ersten Konus und Punkten in dem Schnitt des ersten Konus und der ersten Grenze minimal macht, und wobei das Bestimmen, ob der erste Meßwert die Ungleichheitsbedingung erfüllt, das Bestimmen aufweist, ob der erste Meßwert kleiner als der zu dem ersten Konus gehörende Meßwert ist.
  7. Verfahren nach Anspruch 4 oder 5, wobei das Bestimmen der ersten Messung einer Trennung zwischen dem ersten Konus und der ersten Umgrenzung das Ausführen von Berechnungen aufweist, die eine mit dem Trennabstand zwischen der Spitze des ersten Konus und Punkten auf dem Schnitt des ersten Konus und der ersten Umgrenzung abfallende Funktion maximal machen, und wobei das Bestimmen, ob der erste Meßwert die Ungleichheitsbedingung erfüllt, das Bestimmen aufweist, ob der erste Meßwert größer als der zu dem ersten Konus gehörige Meßwert ist.
  8. Verfahren nach Anspruch 4 oder 5, wobei das Bestimmen des ersten Meßwertes der Trennung zwischen dem ersten Konus und der ersten Umgrenzung das Auflösen eines nicht linearen Programmierproblems und Verwendung eines ersten Satzes von Randbedingungen bzw. Einschränkungen umfaßt, welche den ersten Konus definieren und eines zweiten Satzes von Randbedingungen bzw. Einschränkungen, welche die erste Umgrenzung definieren, um einen extremen Abstand zwischen der Spitze des ersten Konus und Punkten auf dem Schnitt des ersten Konus und der ersten Umgrenzung zu bestimmen.
  9. Verfahren nach einem der Ansprüche 4 bis 8, wobei das Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus aufweist: Bestimmen, ob der erste Konus ein Blatt der Konushierarchie ist und ob die erste Umgrenzung ein Blatt der Umgrenzungshierarchie ist, Setzen des Meßwertes, der zu dem ersten Konus gehört, gleich dem ersten Meßwert der Trennung bzw. des Abstandes zwischen der ersten Umgrenzung und dem ersten Konus, Einstellen eines Attributs eines sichtbaren Objektes, welches dem ersten Konus zugeordnet ist, soweit dieser mit der ersten Umgrenzung übereinstimmt, wobei das Einstellen des Meßwertes, welcher dem ersten Konus zugeordnet ist und das Einstellen des dem ersten Konus zugeordneten Attributs des sichtbaren Objektes in Reaktion auf die definitive Feststellung erfolgt, daß der erste Konus ein Blatt der Konushierarchie und die erste Umgrenzung ein Blatt der Rumpfhierarchie ist.
  10. Verfahren nach einem der Ansprüche 4 bis 8, wobei das Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus aufweist: Bestimmen, ob der erste Konus ein Blatt der Konushierarchie und die erste Umgrenzung kein Blatt der Umgrenzungshierarchie ist, bedingtes Durchsuchen von Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Konus in Reaktion auf die definitive Feststellung, daß der erste Konus ein Blatt der Konushierarchie und die erste Umgrenzung kein Blatt der Umgrenzungshierarchie ist.
  11. Verfahren nach Anspruch 10, wobei die bedingte Untersuchung von Teilumgrenzungen der ersten Umgrenzung aufweist: Berechnen eines Konus-Umgrenzungs-Abstandswertes für jede der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Konus in aufsteigender Ordnung des Abstandes von dem ersten Konus.
  12. Verfahren nach Anspruch 11, wobei das bedingte Durchsuchen der Teilumgrenzungen der ersten Umgrenzung umfaßt: Bestimmen, ob der Konus-Umgrenzungs-Abstandswert einer ersten Teilumgrenzung unter den Teilumgrenzungen die Ungleichheitsbedingung bezüglich des dem ersten Konus zugeordneten Meßwerts erfüllt, Durchsuchen der ersten Teilumgrenzung bezüglich des ersten Konus in Reaktion auf die definitive Feststellung, daß der Konus-Umgrenzungs-Abstandswert der ersten Teilumgrenzung die Ungleichheitsbedingung bezüglich des dem ersten Konus zugeordneten Meßwertes erfüllt.
  13. Verfahren nach einem der Ansprüche 4 bis 8, wobei das Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus aufweist: Bestimmen, ob die erste Umgrenzung ein Blatt in der Umgrenzungshierarchie ist und der erste Konus kein Blatt in der Konushierarchie ist, bedingtes Durchsuchen von Teilkonen des ersten Konus bezüglich der ersten Umgrenzung in Reaktion auf eine definitive Feststellung, daß die erste Umgrenzung ein Blatt der Umgrenzungshierarchie ist und daß der erste Konus kein Blatt der Konushierarchie ist.
  14. Verfahren nach Anspruch 3, wobei das bedingte Durchsuchen von Teilkonen des ersten Konus bezüglich der ersten Umgrenzung umfaßt: Berechnen eines Konus-Umgrenzungs-Abstandswertes für die erste Umgrenzung bezüglich des ersten Teilkonus des ersten Konus, Bestimmen, ob der Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich des dem ersten Teilkonus zugeordneten Meßwertes erfüllt, Durchsuchen des ersten Teilkonus bezüglich der ersten Umgrenzung in Reaktion auf eine definitive Feststellung, daß der Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich des dem ersten Teilkonus zugeordneten Meßwertes ertüllt, wobei das Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus weiterhin das Setzen des dem ersten Konus zugeordneten Meßwertes gleich einem Extremwert der Meßwerte umfaßt, welche den Teilkonen nach dem bedingten Durchsuchen der Teilkonen bezüglich der ersten Umgrenzung zugeordnet wurden.
  15. Verfahren nach einem der Ansprüche 4 bis 8, wobei das Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus aufweist: Berechnen eines ersten Konus-Umgrenzungs-Abstandswertes für die erste Umgrenzung bezüglich eines ersten Teilkonus des ersten Konus, Bestimmen, ob der erste Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich eines Meßwertes erfüllt, der dem ersten Teilkonus zugeordnet ist, bedingtes Untersuchen der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus in Reaktion auf eine definitive Feststellung, daß der erste Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich des Meßwertes erfüllt, der dem ersten Teilkonus zugeordnet ist.
  16. Verfahren nach Anspruch 15, wobei das bedingte Untersuchen der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus umfaßt: Berechnen eines zweiten Konus-Umgrenzungs-Abstandswertes für jede der Teilumgrenzungen bezüglich des ersten Teilkonus, bedingtes Durchsuchen der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus in aufsteigender Ordnung ihres Abstandes von dem ersten Teilkonus.
  17. Verfahren nach Anspruch 16, wobei das bedingte Durchsuchen der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus aufweist: Bestimmen, ob der zweite Konus-Hüllen-Abstandswert für eine erste Teilumgrenzung unter den Teilumgrenzungen die Ungleichheitsbedingung bezüglich des Meßwertes erfüllt, der dem ersten Teilkonus zugeordnet ist, Durchsuchen der ersten Teilumgrenzung bezüglich des ersten Teilkonus in Reaktion auf eine definitive Feststellung, daß der zweite Konus-Hüllen-Abstandswert für die erste Teilumgrenzung die Ungleichheitsbedingung bezüglich des Meßwertes erfüllt, der dem ersten Teilkonus zugeordnet ist, wobei das Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus weiterhin das Festsetzen des Meßwertes, welcher dem ersten Konus zugeordnet ist, gleich einem Extremwert der Meßwerte aufweist, welche den Teilkonen des ersten Konus einschließlich des ersten Teilkonus zugeordnet sind.
  18. Computersoftwareprogramm mit einer Mehrzahl von Anweisungen, die dafür ausgelegt sind, alle Schritte eines Verfahrens zum Anzeigen sichtbarer Objekte auf einer Anzeigeeinrichtung gemäß irgendeinem der vorstehenden Ansprüche auszuführen.
  19. Computersoftwareprogramm nach Anspruch 18, welches auf einem Trägermedium abgelegt ist.
  20. Computersoftwareprogramm nach Anspruch 19, wobei das Trägermedium ein Übertragungsmedium ist.
  21. Computersoftwareprogramm nach Anspruch 19, wobei das Trägermedium ein computerlesbares Medium ist.
  22. Computersystem, welches sichtbare Objekte anzeigt, wobei das Computersystem aufweist: eine Anzeigeeinrichtung, einen Speicher zum Speichern einer Sammlung von Objekten im Raum, wobei der Speicher außerdem ein Sichtbarkeitssuchprogramm speichert, einen Prozessor, der mit dem Speicher verbunden ist, welcher das Sichtbarkeitssuchprogramm ausführt, wobei unter der Steuerung des Sichtbarkeitssuchprogramms der Prozessor so ausgestaltet ist, daß er: auf die Sammlung von Objekten zugreift, eine Umgrenzungshierarchie konstruiert, die eine Hierarchie von Umgrenzungen im Raum von der Sammlung von Objekten aufweist, eine Konushierarchie konstruiert, welche eine Hierarchie von Konen aufweist, die von einem Blickpunkt in dem Raum ausgeht, Durchsuchen der Konushierarchie und der Umgrenzungshierarchie, um Objekte zu bestimmen, die für einen Teilsatz von Konen der Konushierarchie dem Blickpunkt am nächsten liegen, wobei die Anzeigeeinrichtung so betreibbar ist, daß sie die nächstliegenden Objekte für den Teilsatz von Konen in der Konushierarchie anzeigt.
  23. Computersystem nach Anspruch 22, wobei der Prozessor die Hierarchie aufbaut, indem er einen anfänglichen Konus verfeinert.
  24. Computersystem nach Anspruch 22 oder 23, wobei der Teilsatz von Konen die Blattkonen in der Konushierarchie aufweist.
  25. Computersystem nach einem der Ansprüche 22 bis 24, wobei beim Durchführen des Durchsuchens der Konushierarchie und der Umgrenzungshierarchie der Prozessor dafür ausgelegt ist, daß er einen ersten Meßwert des Abstandes zwischen einem ersten Konus der Konushierarchie und einer ersten Umgrenzung der Umgrenzungshierarchie bestimmt, bestimmt, ob der erste Meßwert eine Ungleichheitsbedingung bezüglich eines dem ersten Konus zugeordneten Meßwertes erfüllt, die erste Umgrenzung bezüglich des ersten Konus in Reaktion auf eine definitive Feststellung durchsucht, daß der erste Meßwert die Ungleichheitsbedingung bezüglich des dem ersten Konus zugeordneten Meßwertes erfüllt.
  26. Computersystem nach Anspruch 25, welches weiterhin einen mit dem Prozessor verbundenen Grafikbeschleuniger aufweist, wobei der Prozessor dafür ausgelegt ist, die Sichtbarkeitsinformation einschließlich einer Beschreibung des nächstliegenden Objektes für jeden Blattkonus der Konushierarchie an den Grafikbeschleuniger zu übermitteln, wobei der Grafikbeschleuniger dafür ausgelegt ist, ein Bild auf dem Anzeigebildschirm auf der Basis des nächsten Objektes für jeden Blattkonus in der Konushierarchie zu erzeugen.
  27. Computersystem nach Anspruch 25 oder 26, wobei zum Aufbauen der Umgrenzungshierarchie der Prozessor so betreibbar ist, daß er die Objekte zusammenballt, so daß sie Cluster bilden, jedes Objekt umgrenzt und jedes Cluster mit einer entsprechenden Umgrenzung versieht, einen Knoten in der Umgrenzungshierarchie für jedes Objekt und jeden Cluster zuordnet, jedem Knoten Parameter zuordnet, wobei die Parameter, welche jedem Knoten zugeordnet sind, die entsprechende Umgrenzung beschreiben, die Knoten so organisiert, daß Knotenbeziehungen Clusterbeziehungen repräsentieren.
  28. Computersystem nach einem der Ansprüche 25 bis 27, wobei, um den Meßwert des Abstandes zwischen dem ersten Konus und der ersten Umgrenzung festzustellen, der Prozessor Berechnungen ausführt, die eine mit dem Trennabstand zwischen der Spitze des ersten Konus und Punkten auf dem Schnitt zwischen dem ersten Konus und der ersten Umgrenzung ansteigenden Funktion minimal macht und wobei, bei der Feststellung, ob der erste Meßwert die Ungleichheitsbedingung erfüllt, der Prozessor feststellt, ob der erste Meßwert kleiner ist als der dem ersten Konus zugeordnete Meßwert.
  29. Computersystem nach einem der Ansprüche 25 bis 27, wobei zum Bestimmen des ersten Maßes des Abstandes zwischen dem ersten Konus und der ersten Umgrenzung der Prozessor Berechnungen durchführt, die eine mit dem Trennabstand zwischen der Vertex (der Spitze) des ersten Konus und Punkten auf dem Schnitt des ersten Konus und der ersten Umgrenzung abnehmende Funktion maximal machen, und wobei, bei der Bestimmung, ob der erste Meßwert die Ungleichheitsbedingung erfüllt, der Prozessor feststellt, ob der erste Meßwert größer ist als der dem ersten Konus zugeordnete Meßwert.
  30. Computersystem nach einem der Ansprüche 25 bis 27, wobei zur Bestimmung des ersten Meßwertes des Abstandes zwischen dem ersten Konus und der ersten Umgrenzung der Prozessor ein nicht lineares Programmierproblem löst, indem er einen ersten Satz von Einschränkungen bzw. Randbedingungen verwendet, welche den ersten Konus definieren, sowie einen zweiten Satz von Randbedingungen verwendet, welche die erste Umgrenzung definieren, um einen Extremwert eines Abstandes zwischen der Spitze des ersten Konus und Punkten des Schnittes zwischen dem ersten Konus und der ersten Umgrenzung zu bestimmen.
  31. Computersystem nach einem der Ansprüche 25 bis 30, wobei beim Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus der Prozessor dafür ausgelegt ist, daß er: bestimmt, ob der erste Konus ein Blatt in der Konushierarchie ist oder nicht und ob die Umgrenzung ein Blatt in der Umgrenzungshierarchie ist oder nicht, den dem ersten Konus zugeordneten Meßwert gleich dem ersten Meßwert des Abstandes zwischen der ersten Umgrenzung und dem ersten Konus festsetzt, ein Attribut eines sichtbaren Objektes festsetzt, welches der Tatsache zugeordnet ist, daß der erste Konus gleich der ersten Umgrenzung ist, wobei das Setzen des Meßwertes, welcher dem ersten Konus zugeordnet ist und das Setzen des Attributs des sichtbaren Objektes, welches dem ersten Konus zugeordnet ist, in Reaktion auf eine definitive Feststellung ausgeführt wird, daß der erste Konus ein Blatt in der Konushierarchie und die erste Umgrenzung ein Blatt in der Hüllenhierarchie ist.
  32. Computersystem nach einem der Ansprüche 25 bis 30, wobei beim Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus der Prozessor dafür ausgelegt ist, daß er: bestimmt, ob der erste Konus ein Blatt der Konushierarchie und die erste Umgrenzung kein Blatt der Umgrenzungshierarchie ist, bedingtes Untersuchen von Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Konus in Reaktion auf eine definitive Feststellung, daß der erste Konus ein Blatt der Konushierarchie ist und daß die erste Umgrenzung kein Blatt der Umgrenzungshierarchie ist.
  33. Computersystem nach Anspruch 32, wobei beim bedingten Durchsuchen von Teilumgrenzungen der ersten Umgrenzung der Prozessor dafür ausgelegt ist, daß er: einen Konus-Umgrenzungs-Abstandswert für jede der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Konus berechnet, die Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Konus in aufsteigender Ordnung des Abstandes von dem ersten Konus bedingt untersucht.
  34. Computersystem nach Anspruch 33, wobei beim bedingten Durchsuchen der Teilumgrenzungen der ersten Umgrenzung der Prozessor dafür ausgelegt ist, daß er: bestimmt, ob der Konus-Umgrenzungs-Abstandswert einer ersten Teilumgrenzung unter den Teilumgrenzungen die Ungleichheitsbedingung bezüglich des dem ersten Konus zugeordneten Meßwertes erfüllt, die erste Teilumgrenzung bezüglich des ersten Konus in Reaktion auf eine definitive Feststellung durchsucht, daß der Konus-Umgrenzungs-Abstandswert der ersten Teilumgrenzung die Ungleichheitsbedingung bezüglich des dem ersten Konus zugeordneten Meßwertes erfüllt.
  35. Computersystem nach einem der Ansprüche 25 bis 30, wobei beim Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus der Prozessor dafür ausgelegt ist daß er: bestimmt, ob die erste Umgrenzung ein Blatt in der Umgrenzungshierarchie und der erste Konus kein Blatt der Konushierarchie ist, bedingtes Durchsuchen von Teilkonen des ersten Konus bezüglich der ersten Umgrenzung in Reaktion auf eine definitive Feststellung, daß die erste Umgrenzung ein Blatt der Umgrenzungshierarchie und der erste Konus kein Blatt in der Umgrenzungshierarchie ist.
  36. Computersystem nach Anspruch 35, wobei beim bedingten Durchsuchen von Teilkonen des ersten Konus bezüglich der ersten Umgrenzung der Prozessor dafür ausgelegt ist, daß er: einen Konus-Umgrenzungs-Abstandswert für die erste Umgrenzung bezüglich eines ersten Teilkonus des ersten Konus berechnet, bestimmt, ob der Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich eines Meßwertes erfüllt, welcher dem ersten Teilkonus zugeordnet ist, den ersten Teilkonus bezüglich der ersten Umgrenzung in Reaktion auf eine definitive Feststellung durchsucht, daß der Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich des dem ersten Teilkonus zugeordneten Meßwertes erfüllt, wobei beim Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus der Prozessor den dem ersten Konus zugeordneten Meßwert gleich einem Extremwert der Meßwerte setzt, welche den Teilkonen nach dem bedingten Durchsuchen der Teilkonen bezüglich der ersten Umgrenzung zugeordnet wurde.
  37. Computersystem nach einem der Ansprüche 25 bis 30, wobei beim Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus der Prozessor dafür ausgelegt ist, daß er: einen ersten Konus-Umgrenzungs-Abstandswert für die erste Umgrenzung bezüglich des ersten Teilkonus des ersten Konus berechnet, bestimmt, ob der erste Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich eines dem ersten Teilkonus zugeordneten Meßwertes erfüllt, Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus bedingt durchsucht, und zwar in Reaktion auf eine definitive Feststellung, daß der erste Konus-Umgrenzungs-Abstandswert die Ungleichheitsbedingung bezüglich des dem ersten Teilkonus zugeordneten Meßwertes erfüllt.
  38. Computersystem nach Anspruch 37, wobei beim bedingten Durchsuchen von Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus der Prozessor dafür ausgelegt ist, daß er: einen zweiten Konus-Umgrenzungs-Abstandswert für jede der Teilumgrenzungen bezüglich des ersten Teilkonus berechnet, bedingt die Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus in aufsteigender Ordnung ihres Abstandes von dem ersten Teilkonus durchsucht.
  39. Computersystem nach Anspruch 37, wobei beim bedingten Durchsuchen der Teilumgrenzungen der ersten Umgrenzung bezüglich des ersten Teilkonus der Prozessor dafür ausgelegt ist daß er: bestimmt, ob der zweite Konus-Hüllen-Abstandswert für eine erste Teilumgrenzung unter den Teilumgrenzungen die Ungleichheitsbedingung bezüglich des dem ersten Teilkonus zugeordneten Meßwertes erfüllt, die erste Teilumgrenzung bezüglich des ersten Teilkonus in Reaktion auf eine definitive Feststellung durchsucht, daß der zweite Konus-Hüllen-Abstandswert für die erste Teilumgrenzung die Ungleichheitsbedingung bezüglich des dem ersten Teilkonus zugeordneten Meßwertes erfüllt, wobei zum Durchsuchen der ersten Umgrenzung bezüglich des ersten Konus der Prozessor den dem ersten Konus zugeordneten Meßwert gleich einem Extremwert der den ersten Teilkonen des ersten Konus einschließlich des ersten Teilkonus zugeordneten Meßwerte setzt.
DE69907415T 1998-02-17 1999-02-16 Bestimmung sichtbarer objekte für interaktive visualisation Expired - Fee Related DE69907415T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7486898P 1998-02-17 1998-02-17
US74868P 1998-02-17
US09/247,466 US6300965B1 (en) 1998-02-17 1999-02-09 Visible-object determination for interactive visualization
US247466 1999-02-09
PCT/US1999/003225 WO1999041705A1 (en) 1998-02-17 1999-02-16 Visible-object determination for interactive visualization

Publications (2)

Publication Number Publication Date
DE69907415D1 DE69907415D1 (de) 2003-06-05
DE69907415T2 true DE69907415T2 (de) 2004-04-01

Family

ID=22122149

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69907415T Expired - Fee Related DE69907415T2 (de) 1998-02-17 1999-02-16 Bestimmung sichtbarer objekte für interaktive visualisation

Country Status (6)

Country Link
US (2) US6300965B1 (de)
EP (1) EP1055200B1 (de)
JP (1) JP2004513403A (de)
AU (1) AU2680599A (de)
DE (1) DE69907415T2 (de)
WO (1) WO1999041705A1 (de)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6437796B2 (en) * 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6373485B2 (en) * 1998-02-17 2002-04-16 Sun Microsystems, Inc. Mitigating the effects of object approximations
US6300965B1 (en) * 1998-02-17 2001-10-09 Sun Microsystems, Inc. Visible-object determination for interactive visualization
US6727899B2 (en) * 1999-04-16 2004-04-27 Hewlett-Packard Development Company, L.P. System and method for occlusion culling graphical data
US6466227B1 (en) * 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
US6570564B1 (en) * 1999-09-24 2003-05-27 Sun Microsystems, Inc. Method and apparatus for rapid processing of scene-based programs
US6525726B1 (en) * 1999-11-02 2003-02-25 Intel Corporation Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture
US7133043B1 (en) * 1999-11-29 2006-11-07 Microsoft Corporation Computer graphics methods and apparatus for ray intersection
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
ATE266233T1 (de) * 2000-06-29 2004-05-15 Sun Microsystems Inc Bestimmung sichtbarer objekte
WO2002054351A2 (en) * 2000-12-06 2002-07-11 Sun Microsystems, Inc. Using ancillary geometry for visibility determination
US6956570B2 (en) * 2001-06-27 2005-10-18 Believe, Inc. Object visibility control for ray tracing
AU2002353394A1 (en) * 2001-12-21 2003-07-09 Vrcontext S.A./N.V. Virtual reality files for complex environments
US7050053B2 (en) 2002-01-30 2006-05-23 Sun Microsystems, Inc. Geometric folding for cone-tree data compression
US6828978B2 (en) 2002-02-28 2004-12-07 David B. Buehler Bucket-sorting graphical rendering apparatus and method
US6862025B2 (en) * 2002-02-28 2005-03-01 David B. Buehler Recursive ray casting method and apparatus
US6941524B2 (en) * 2002-05-24 2005-09-06 International Business Machines Corporation System and method for displaying a recursive relationship between objects in a tree
US7593880B2 (en) * 2003-03-19 2009-09-22 General Electric Company Methods and systems for analytical-based multifactor multiobjective portfolio risk optimization
US7640201B2 (en) * 2003-03-19 2009-12-29 General Electric Company Methods and systems for analytical-based multifactor Multiobjective portfolio risk optimization
US20040186804A1 (en) * 2003-03-19 2004-09-23 Anindya Chakraborty Methods and systems for analytical-based multifactor multiobjective portfolio risk optimization
GB0307095D0 (en) * 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
US7525547B1 (en) 2003-08-12 2009-04-28 Nvidia Corporation Programming multiple chips from a command buffer to process multiple images
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7388581B1 (en) * 2003-08-28 2008-06-17 Nvidia Corporation Asynchronous conditional graphics rendering
JP2007537771A (ja) * 2003-11-03 2007-12-27 ブラッコ イメージング エス.ピー.エー. 内腔組織スクリーニングのためのシステム及び方法
US7340547B1 (en) 2003-12-02 2008-03-04 Nvidia Corporation Servicing of multiple interrupts using a deferred procedure call in a multiprocessor system
US8219477B2 (en) * 2004-02-20 2012-07-10 General Electric Company Systems and methods for multi-objective portfolio analysis using pareto sorting evolutionary algorithms
US7469228B2 (en) * 2004-02-20 2008-12-23 General Electric Company Systems and methods for efficient frontier supplementation in multi-objective portfolio analysis
US7630928B2 (en) * 2004-02-20 2009-12-08 General Electric Company Systems and methods for multi-objective portfolio analysis and decision-making using visualization techniques
US7542932B2 (en) * 2004-02-20 2009-06-02 General Electric Company Systems and methods for multi-objective portfolio optimization
US8126795B2 (en) * 2004-02-20 2012-02-28 General Electric Company Systems and methods for initial sampling in multi-objective portfolio analysis
US7289125B2 (en) * 2004-02-27 2007-10-30 Nvidia Corporation Graphics device clustering with PCI-express
US7567248B1 (en) * 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
TWI405142B (zh) * 2004-08-12 2013-08-11 Ati Technologies Inc 呈現螢幕空間之系統中之方法、呈現螢幕空間之裝置、用於提供螢幕空間的子區的呈現方法及裝置、以及圖形處理器
US7545380B1 (en) 2004-12-16 2009-06-09 Nvidia Corporation Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system
US7522167B1 (en) 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
US7525549B1 (en) 2004-12-16 2009-04-28 Nvidia Corporation Display balance/metering
US7383412B1 (en) 2005-02-28 2008-06-03 Nvidia Corporation On-demand memory synchronization for peripheral systems with multiple parallel processors
US7602395B1 (en) 2005-04-22 2009-10-13 Nvidia Corporation Programming multiple chips from a command buffer for stereo image generation
US7616207B1 (en) 2005-04-25 2009-11-10 Nvidia Corporation Graphics processing system including at least three bus devices
US7456833B1 (en) 2005-06-15 2008-11-25 Nvidia Corporation Graphical representation of load balancing and overlap
US8098243B2 (en) * 2005-09-23 2012-01-17 Samsung Electronics Co., Ltd. Method and apparatus for efficiently handling query for 3D display
US7629978B1 (en) 2005-10-31 2009-12-08 Nvidia Corporation Multichip rendering with state control
US7414624B2 (en) * 2005-10-28 2008-08-19 Intel Corporation Apparatus and method for a frustum culling algorithm suitable for hardware implementation
US7995054B2 (en) * 2005-11-21 2011-08-09 Leica Geosystems Ag Identification of edge regions from 3D point data
US7843448B2 (en) * 2005-11-21 2010-11-30 Leica Geosystems Ag Identification of occluded edge regions from 3D point data
JP2007280354A (ja) * 2006-03-16 2007-10-25 Ricoh Co Ltd 三次元形状処理装置、三次元形状処理方法、三次元形状処理プログラム、記録媒体、パーツカタログ・システム、パーツカタログ作成方法、及びプログラム
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
US8325178B1 (en) 2007-12-05 2012-12-04 The United States Of America, As Represented By The Secretary Of The Navy Lines-of-sight and viewsheds determination system
US8400448B1 (en) 2007-12-05 2013-03-19 The United States Of America, As Represented By The Secretary Of The Navy Real-time lines-of-sight and viewsheds determination system
KR101475779B1 (ko) * 2008-06-02 2014-12-23 삼성전자주식회사 3d 영상 처리 방법
US8493383B1 (en) * 2009-12-10 2013-07-23 Pixar Adaptive depth of field sampling
CN103116593B (zh) * 2012-06-08 2016-02-10 南京信息工程大学 一种基于多核架构的计算凸壳的并行方法
US9053582B2 (en) 2012-06-11 2015-06-09 Disney Enterprises, Inc. Streaming light propagation
US9123162B2 (en) * 2012-06-11 2015-09-01 Disney Enterprises, Inc. Integration cone tracing
US8957896B2 (en) 2012-06-11 2015-02-17 Disney Enterprises, Inc. Streaming hierarchy traversal renderer
US9336302B1 (en) 2012-07-20 2016-05-10 Zuci Realty Llc Insight and algorithmic clustering for automated synthesis
JP5781045B2 (ja) * 2012-09-19 2015-09-16 株式会社東芝 オブジェクト検索装置およびその方法
US9123154B2 (en) 2012-10-09 2015-09-01 Disney Enterprises, Inc. Distributed element rendering
US9508315B2 (en) * 2013-03-08 2016-11-29 Disney Enterprises, Inc. Ordering rays in rendered graphics for coherent shading
US20150100544A1 (en) * 2013-10-04 2015-04-09 Alcatel-Lucent Usa Inc. Methods and systems for determining hierarchical community decomposition
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
WO2019067901A2 (en) 2017-09-29 2019-04-04 Apple Inc. USER INTERACTIONS BASED ON THE LOOK
CN111191309B (zh) * 2019-12-19 2023-01-24 北京虹晟信息科技有限公司 适用于bim轻量化的实时遮挡剔除方法、装置和设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295243A (en) * 1989-12-29 1994-03-15 Xerox Corporation Display of hierarchical three-dimensional structures with rotating substructures
US6137499A (en) * 1997-03-07 2000-10-24 Silicon Graphics, Inc. Method, system, and computer program product for visualizing data using partial hierarchies
US6223145B1 (en) * 1997-11-26 2001-04-24 Zerox Corporation Interactive interface for specifying searches
US6300965B1 (en) * 1998-02-17 2001-10-09 Sun Microsystems, Inc. Visible-object determination for interactive visualization

Also Published As

Publication number Publication date
US6445391B1 (en) 2002-09-03
US20020050990A1 (en) 2002-05-02
EP1055200A1 (de) 2000-11-29
DE69907415D1 (de) 2003-06-05
EP1055200B1 (de) 2003-05-02
AU2680599A (en) 1999-08-30
WO1999041705A1 (en) 1999-08-19
US6300965B1 (en) 2001-10-09
JP2004513403A (ja) 2004-04-30

Similar Documents

Publication Publication Date Title
DE69907415T2 (de) Bestimmung sichtbarer objekte für interaktive visualisation
DE69812732T2 (de) Verfahren und Gerät zur schnellen Wiedergabe von durch Computer erzeugten Bildern von komplexen Strukturen
DE69924700T2 (de) Verfahren zur Darstellung von durch Oberflächenelemente repräsentierten grafischen Objekten
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
US6750859B2 (en) Size conditioned visibility search system and method
DE60130680T2 (de) Methode zur ausrichtung eines punktgitters anhand von bildmerkmalen
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
DE102019103059A1 (de) Hieb- und stichfester Strahl-Dreieck-Schnittpunkt
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE69233717T2 (de) Verbesserungen in sichtbarkeit-berechnungen fuer 3d-rechner
DE102019102821A1 (de) Verfahren zur behandlung von ungeordneten opak- und alphastrahl/primitiv-schnittpunkten
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
DE102019103058A1 (de) Verfahren für fortgesetzte begrenzungsvolumenhierarchietraversierung auf schnittpunkte ohne shader-intervention
DE60032832T2 (de) Darstellung einer gekrümmten Oberfläche in mehreren Auflösungen
US6373485B2 (en) Mitigating the effects of object approximations
DE102006061325B4 (de) Verfahren zur computergestützten Identifikation der von einem Richtstrahl durchschnittenen Kinderoktanten eines Elternoktants in einer Octree-Datenstruktur mittels Look-up-Tabellen
DE69731045T2 (de) Navigation und Interaktion in strukturierten Informationsräumen
DE102019103178A1 (de) Verfahren für vorankommen und programmierbare timeouts von baumtraversierungsmechanismen in hardware
DE102021115407A1 (de) Hardwarebeschleunigung zur strahlverfolgung von primitiven, die vertices teilen
WO2001008263A2 (en) Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE102021205765A1 (de) Hardwarebasierte techniken der strahlverfolgung zur effizienten darstellung und verarbeitung eines beliebigen hüllkörpers
EP0829822B1 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee