Das binäre Raumverteilen

In der Informatik ist binäre Raumverteilen (BSP) eine Methode, für einen Raum in konvexe Sätze durch Hyperflugzeuge rekursiv zu unterteilen. Diese Unterteilung verursacht eine Darstellung der Szene mittels einer als ein BSP Baum bekannten Baumdatenstruktur.

Ursprünglich wurde diese Annäherung in der 3D-Computergrafik vorgeschlagen, um die Übergabe-Leistungsfähigkeit durch die Vorcomputerwissenschaft des BSP Baums vor auf niedriger Stufe Übergabe-Operationen zu vergrößern. Einige andere Anwendungen schließen leistende geometrische Operationen mit Gestalten (konstruktive Raumgeometrie der Körper) im CAD, der Kollisionsentdeckung in der Robotertechnik und den 3D-Videospielen und den anderen Computeranwendungen ein, die das Berühren von komplizierten Raumszenen einschließen.

Übersicht

In der Computergrafik ist es wünschenswert, dass die Zeichnung einer Szene sowohl richtig als auch schnell getan wird. Eine einfache Weise, eine Szene zu ziehen, ist der Algorithmus des Malers: Ziehen Sie es davon, die Rückseite nach vorn über den Hintergrund mit jedem näheren Gegenstand zu malen. Jedoch wird diese Annäherung ganz beschränkt, da Zeit vergeudet wird, Gegenstände ziehend, die später überzogen werden, und nicht alle Gegenstände richtig gezogen wird.

Z-Pufferung kann sicherstellen, dass Szenen richtig gezogen werden und den Einrichtungsschritt des Algorithmus des Malers beseitigen, aber es ist in Bezug auf den Speichergebrauch teuer. BSP Bäume werden Gegenstände aufteilen, so dass der Algorithmus des Malers sie richtig ohne Bedürfnis nach einem Z-Puffer ziehen und das Bedürfnis beseitigen wird, die Gegenstände zu sortieren, weil ein einfaches Baumtraversal sie in der richtigen Ordnung nachgeben wird. Es dient auch als eine Basis für andere Algorithmen wie Sichtbarkeitslisten, die versuchen abzunehmen, überziehen.

Die Kehrseite ist die Voraussetzung, die einige Zeit Aufbereitung der Szene verbraucht, die es schwierig und ineffizient macht, um bewegende Gegenstände in einen BSP Baum direkt durchzuführen. Das wird häufig durch das Verwenden des BSP Baums zusammen mit einem Z-Puffer und das Verwenden des Z-Puffers überwunden, um bewegliche Gegenstände wie Türen und Charaktere auf die Hintergrundszene richtig zu verschmelzen.

BSP Bäume werden häufig durch 3D-Videospiele, besonders Ego-Shooter und diejenigen mit Innenumgebungen verwendet. Wahrscheinlich war das frühste Spiel, um eine BSP Datenstruktur zu verwenden, Schicksal (sieh Schicksalmotor für einen eingehenden Blick auf Schicksale BSP Durchführung). Anderer Gebrauch schließt Strahlenaufzeichnung und Kollisionsentdeckung ein.

Generation

Das binäre Raumverteilen ist ein allgemeiner Prozess, rekursiv eine Szene in zwei zu teilen, bis das Verteilen eine oder mehr Voraussetzungen befriedigt. Die spezifische Methode der Abteilung ändert sich abhängig von seinem Endzweck. Zum Beispiel, in einem BSP für die Kollisionsentdeckung verwendeten Baum, würde der ursprüngliche Gegenstand verteilt, bis jeder Teil einfach genug wird, individuell geprüft zu werden, und in der Übergabe davon wünschenswert ist, dass jeder Teil konvex ist, so dass der Algorithmus des Malers verwendet werden kann.

Die Endzahl von Gegenständen wird unvermeidlich zunehmen, da Linien oder Gesichter, die das Verteilen-Flugzeug durchqueren, in zwei gespalten werden müssen, und es auch wünschenswert ist, dass der Endbaum vernünftig erwogen bleibt. Deshalb ist der Algorithmus für richtig und effizient das Schaffen eines guten BSP Baums der schwierigste Teil einer Durchführung. Im 3D-Raum werden Flugzeuge verwendet, um Gesichter eines Gegenstands zu verteilen und zu spalten; in 2. Raumlinien spaltet Segmente eines Gegenstands.

BSP Bäume werden auch verwendet, um natürliche Images zu vertreten. Baumethoden für BSP Bäume, die Images vertreten, wurden zuerst als effiziente Darstellungen eingeführt, in denen nur einige hundert Knoten ein Image vertreten können, das normalerweise Hunderttausende von Pixeln verlangt. Schnelle Algorithmen sind auch entwickelt worden, um BSP Bäume von Images mit der Computervision und den Signalverarbeitungsalgorithmen zu bauen. Diese Algorithmen, in Verbindung mit dem fortgeschrittenen Wärmegewicht-Codieren und den Signalannäherungsannäherungen, wurden verwendet, um Bildkompressionsmethoden zu entwickeln.

Die Übergabe einer Szene mit der Sichtbarkeitsinformation vom BSP Baum

BSP Bäume werden verwendet, um Übergabe-Leistung im Rechnen sichtbarer Dreiecke für den Algorithmus des Malers zum Beispiel zu verbessern. Der Baum kann in der geradlinigen Zeit aus einem willkürlichen Gesichtspunkt überquert werden.

Da ein Algorithmus eines Malers durch die Zeichnung von Vielecken arbeitet, die vom Auge zuerst, den folgenden Codewiederflüchen zum Boden des Baums am weitesten sind, und die Vielecke zieht. Da sich der recursion abwickelt, werden am Auge nähere Vielecke über weite Vielecke gezogen. Weil der BSP Baum bereits Vielecke in triviale Stücke spaltet, wird der härteste Teil des Algorithmus des Malers bereits gelöst - codieren für die Rückseite nach vorn das Baumtraversal.

traverse_tree (bsp_tree* Baum, spitzen Sie Auge an)

{\

Position = Baum-> find_location (Auge);

wenn (Baum-> leer )

kehren Sie zurück;

wenn (Position> 0)//wenn Auge vor der Position

{\

traverse_tree (Baum-> Rücken, Auge);

Anzeige (Baum-> polygon_list);

traverse_tree (Baum-> Vorderseite, Auge);

}\

sonst, wenn (Position

Anzeige (Baum-> polygon_list); traverse_tree (Baum-> Rücken, Auge); }\

sonst//Auge, das mit dem Teilungshyperflugzeug zusammenfallend

ist {\ traverse_tree (Baum-> Vorderseite, Auge); traverse_tree (Baum-> Rücken, Auge); }\}\</Quelle>

Andere Raumverteilen-Strukturen

BSP Bäume teilen ein Gebiet des Raums in zwei Subgebiete an jedem Knoten. Sie sind mit quadtrees und octrees verbunden, die jedes Gebiet in vier oder acht Subgebiete beziehungsweise teilen.

wo p die Zahl von sich teilenden Flugzeugen verwendet, und ist

s ist die Zahl von gebildeten Subgebieten.

BSP Bäume können in Räumen mit jeder Zahl von Dimensionen verwendet werden. Quadtrees und octrees sind nützlich, um sich 2- und 3-dimensionale Räume beziehungsweise aufzuteilen. Eine andere Art des Baums, der sich etwas wie ein quadtree oder octree benimmt, aber in jeder Zahl von Dimensionen nützlich ist, ist der Kd-Baum.

Zeitachse

  • 1969 Schumacker. haben einen Bericht veröffentlicht, der beschrieben hat, wie sorgfältig eingestellte Flugzeuge in einer virtuellen Umgebung verwendet werden konnten, um Vieleck-Einrichtung zu beschleunigen. Die Technik hat von der Tiefe-Kohärenz Gebrauch gemacht, die feststellt, dass ein Vieleck auf der weiten Seite des Flugzeugs in jedem Fall kein näheres Vieleck versperren kann. Das wurde in Flugsimulatoren verwendet, die durch GE sowie Evans und Sutherland gemacht sind. Jedoch wurde die Entwicklung der polygonalen Datenorganisation manuell vom Szene-Entwerfer durchgeführt.
  • 1980 Fuchs u. a. [FUCH80] hat die Idee von Schumacker zur Darstellung von 3D-Gegenständen in einer virtuellen Umgebung durch das Verwenden von Flugzeugen erweitert, die zusammenfallend mit Vielecken liegen, um den 3D-Raum rekursiv zu verteilen. Das hat eine völlig automatisierte und algorithmische Generation einer hierarchischen polygonalen Datenstruktur zur Verfügung gestellt, die als ein Binärer Raumverteilen-Baum (BSP Baum) bekannt ist. Der Prozess hat als ein Off-Lineaufbereitungsschritt stattgefunden, der einmal pro Umgebung/Gegenstand durchgeführt wurde. An der Durchlaufzeit wurde die von der Ansicht abhängige Sichtbarkeit, die bestellt, durch das Überqueren des Baums erzeugt.
  • 1981 der Ph von Naylor. D These, die eine volle Entwicklung sowohl von BSP Bäumen als auch von einer mit dem Graphen theoretischen Annäherung enthält, die stark verbundene Bestandteile für die Vorrechensichtbarkeit, sowie die Verbindung zwischen den zwei Methoden verwendet. BSP Bäume als eine Dimension unabhängige Raumsuchstruktur wurden mit Anwendungen auf den sichtbaren Oberflächenentschluss betont. Die These hat auch die ersten empirischen Daten eingeschlossen, die demonstrieren, dass die Größe des Baums und die Zahl von neuen Vielecken (das Verwenden eines Modells von Raumfähre) angemessen waren.
  • 1983 Fuchs u. a. beschreiben Sie eine Mikrocodedurchführung des BSP Baumalgorithmus auf einem Rahmen von Ikonas Puffersystem. Das war die erste Demonstration des sichtbaren Echtzeitoberflächenentschlusses mit BSP Bäumen.
  • 1987 Thibault und Naylor haben beschrieben, wie willkürliche Polyeder mit einem BSP Baum im Vergleich mit dem traditionellen b-rep (Grenzdarstellung) vertreten werden können. Das hat eine feste Darstellung gegen eine Oberflächenbasierte Darstellung zur Verfügung gestellt. Satz-Operationen auf Polyedern wurden mit einem Werkzeug beschrieben, Constructive Solid Geometry (CSG) in Realtime ermöglichend. Das war der vordere Läufer des BSP Niveau-Designs mit Bürsten, die im Beben-Redakteur eingeführt sind, und hat sich im Unwirklichen Redakteur erholt.
  • 1990 Naylor, Amanatides und Thibault stellen einen Algorithmus zur Verfügung, um zwei bsp Bäume zu verschmelzen, um einen neuen bsp Baum von den zwei ursprünglichen Bäumen zu bilden. Das stellt viele Vorteile zur Verfügung einschließlich: Das Kombinieren bewegender Gegenstände, die durch BSP Bäume mit einer statischen Umgebung vertreten sind (auch vertreten durch einen BSP Baum), sehr effiziente CSG Operationen auf Polyedern, loggt die genaue Kollisionsentdeckung in O (loggen n *, n), und die richtige Einrichtung von durchsichtigen in zwei zwischeneindringenden Gegenständen enthaltenen Oberflächen (ist für eine Röntgenstrahl-Visionswirkung verwendet worden).
  • 1990-Erzähler und Séquin haben die Off-Linegeneration von potenziell sichtbaren Sätzen vorgeschlagen, um sichtbaren Oberflächenentschluss in orthogonalen 2. Umgebungen zu beschleunigen.
  • 1991 Gordon und Chen [CHEN91] haben eine effiziente Methode beschrieben, verkehrt herum Übergabe von einem BSP Baum, aber nicht das traditionelle die Rückseite nach vorn durchzuführen, nähert sich. Sie haben eine spezielle Datenstruktur verwertet, um, effizient, Teile des Schirms zu registrieren, die, und diejenigen noch gezogen worden sind, um gemacht zu werden. Dieser Algorithmus, zusammen mit der Beschreibung von BSP Bäumen im Standardcomputergrafik-Lehrbuch des Tages (Foley, Van Dam, Feiner und Hughes) wurde von John Carmack im Bilden des Schicksals verwendet.
  • 1992 die Doktorarbeit des Erzählers hat die effiziente Generation von potenziell sichtbaren Sätzen als ein Aufbereitungsschritt zur Beschleunigung sichtbarer Echtzeitoberflächenentschluss in willkürlichen polygonalen 3D-Umgebungen beschrieben. Das wurde im Beben verwendet und hat bedeutsam zur Leistung dieses Spiels beigetragen.
  • 1993 Naylor antwortet auf die Frage dessen, was einen guten BSP Baum charakterisiert. Er hat erwartete Fall-Modelle (aber nicht Grenzfall-Analyse) verwendet, um die erwarteten Kosten mathematisch zu messen, einen Baum zu suchen, und hat dieses Maß verwendet, um gute BSP Bäume zu bauen. Intuitiv vertritt der Baum einen Gegenstand in einer Mehrentschlossenheit Mode (mehr genau, als ein Baum von Annäherungen). Parallelen mit Codes von Huffman und probabilistic binären Suchbäumen werden gezogen.
  • 1993 die Doktorarbeit von Hayder Radha hat (natürliche) Bilddarstellungsmethoden mit BSP Bäumen beschrieben. Das schließt die Entwicklung eines optimalen BSP-Baumbaufachwerks für jedes willkürliche Eingangsimage ein. Dieses Fachwerk basiert auf einem neuen Image verwandeln sich, bekannt als die Verteilen-Linie von Least-Square-Error (LSE) (LPE) verwandeln sich. H. Radha' These hat auch ein optimales Bildkompressionsfachwerk der Rate-Verzerrung (RD) und Bildmanipulationsannäherungen mit BSP Bäumen entwickelt.
  • [FUCH80] H. Fuchs, Z. M. Kedem und B. F. Naylor. "Auf der Sichtbaren Oberflächengeneration durch A priori Baumstrukturen." ACM Computergrafik, Seiten 124-133. Juli 1980.
  • [THIBAULT87] W. Thibault und B. Naylor, "Satz-Operationen auf Polyedern mit Binären Raumverteilen-Bäumen", Computergrafik (Siggraph '87), 21 (4), 1987.
  • [NAYLOR90] B. Naylor, J. Amanatides und W. Thibualt, "BSP Baumerträge Polyedrische Satz-Operationen", Computergrafik (Siggraph '90), 24 (3), 1990 Verschmelzend.
  • [NAYLOR93] B. Naylor, "Gute Verteilen-Bäume", Grafikschnittstelle (jährliche kanadische CG-Konferenz) Mai 1993 Bauend.
  • [CHEN91] S. Chen und D. Gordon. "Verkehrt herum Anzeige von BSP Bäumen." IEEE Computer Graphics & Algorithms, Seiten 79-85. September 1991.
  • [RADHA91] H. Radha, R. Leoonardi, M. Vetterli und B. Naylor "Binärer Raum, der Baumdarstellung von Images," Zeitschrift von Sehkommunikationen und Bildverarbeitung 1991, vol Verteilt. 2 (3).
  • [RADHA93] H. Radha, "Effiziente Bilddarstellung mit Binären Raumverteilen-Bäumen.", Doktorarbeit, Universität von Columbia, 1993.
  • [RADHA96] H. Radha, M. Vetterli und R. Leoonardi, "Bildkompression mit Binären Raumverteilen-Bäumen," IEEE Transaktionen auf der Bildverarbeitung, vol. 5, Nr. 12, Dezember 1996, Seiten 1610-1624.
  • [WINTER99] EINE UNTERSUCHUNG DER ECHTZEIT-3D-VIELECK-ÜBERGABE mit BSP BÄUMEN. Andrew Steven Winter. April 1999. verfügbarer online-
  • Abschnitt 12: Binäre Raumteilungen: Seiten 251-265. Beschreibt einen Algorithmus eines randomized Malers.
  • Christer Ericson: Echtzeitkollisionsentdeckung (Die Reihe von Morgan Kaufmann in der Interaktiven 3. Technologie). Verlag Morgan Kaufmann, S. 349-382, Jahr 2005, internationale Standardbuchnummer 1-55860-732-3

Links


Leon County, Florida / Exocytosis
Impressum & Datenschutz