DE102019121803A1 - CALCULAR BLURRES FOR VARIFOCAL DISPLAYS - Google Patents

CALCULAR BLURRES FOR VARIFOCAL DISPLAYS Download PDF

Info

Publication number
DE102019121803A1
DE102019121803A1 DE102019121803.9A DE102019121803A DE102019121803A1 DE 102019121803 A1 DE102019121803 A1 DE 102019121803A1 DE 102019121803 A DE102019121803 A DE 102019121803A DE 102019121803 A1 DE102019121803 A1 DE 102019121803A1
Authority
DE
Germany
Prior art keywords
blur
virtual object
radius
blurring
unsharpness
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.)
Pending
Application number
DE102019121803.9A
Other languages
German (de)
Inventor
Morgan McGuire
Kaan Aksit
Pete Shirley
David Patrick Luebke
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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
Priority claimed from US16/215,355 external-priority patent/US10699383B2/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102019121803A1 publication Critical patent/DE102019121803A1/en
Pending legal-status Critical Current

Links

Images

Classifications

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

Abstract

Verfahren werden hier offenbart, um ein Bild unscharf zu machen, das auf einer Stereoanzeige (wie beispielsweise Virtual- oder Augmented-Reality-Anzeigen) basierend auf dem Fokus und der Konvergenz des Benutzers anzuzeigen ist. Die Verfahren approximieren die komplexe Wirkung chromatischer Aberration auf den Fokus, wobei drei (R/G/B) einfache Gauß‘sche Unschärfen benutzt werden. Für Transparenz benutzen die Verfahren Puffer für Unschärfeniveaus und nicht Tiefe. Die Verfahren machen chromatisch-basierte Unschärfeeffekte in Echtzeit für VR/AR-Anzeigen möglich.Methods are disclosed here for blurring an image to be displayed on a stereo display (such as virtual or augmented reality displays) based on the user's focus and convergence. The methods approximate the complex effect of chromatic aberration on the focus, using three (R / G / B) simple Gaussian blurs. For transparency, the methods use blur levels rather than depth. The processes make chromatic-based blurring effects possible in real time for VR / AR displays.

Description

KURZE ZUSAMMENFASSUNGSHORT SUMMARY

Verfahren werden hier offenbart, um interaktiv eine bedeutende Warteschlangentiefe (chromatische Refraktionsaberration des menschlichen Auges), die bei aktuellen VR/AR-Rendering-Algorithmen („ChromaBlur“) fehlt, und einen Algorithmus bereitzustellen, um mehrere transparente Objekte sehr schnell zu zeichnen, wie es häufig für AR (Augmented Reality) getan wird. Varifokal ist eine bedeutende Technik in AR und VR (Virtual Reality) und ChromaBlur ist ein kritischer Cue. Der AR-Transparenz-Rendering-Algorithmus ist wahrscheinlich der schnellste Algorithmus für diesen Modus der Transparenz.Methods are disclosed here to interactively provide a significant queue depth (chromatic refraction aberration of the human eye) that is lacking in current VR / AR rendering algorithms ("ChromaBlur") and an algorithm to draw multiple transparent objects very quickly, such as it is often done for AR (Augmented Reality). Varifocal is an important technique in AR and VR (Virtual Reality) and ChromaBlur is a critical cue. The AR transparency rendering algorithm is probably the fastest algorithm for this mode of transparency.

Für ChromaBlur approximieren die Verfahren die komplexe Wirkung mit drei (R/G/B) einfachen Gauß‘schen Unschärfen. Für Transparenz benutzen die Verfahren Puffer für Unschärfeniveaus und nicht Tiefe.For ChromaBlur, the methods approximate the complex effect with three (R / G / B) simple Gaussian blurs. For transparency, the methods use blur levels rather than depth.

Die hier beschriebenen Verfahren ermöglichen Echtzeit(z.B. Reaktionszeit von Millisekunden)-ChromaBlur für additive Anwendungen, wie beispielsweise Augmented-Reality-Anzeigen und Virtual-Reality oder Desktop mit additiver Zusammensetzung. Vorherige Batch-Algorithmen führten eine volle Optimierung pro Frame durch, die mehrere Sekunden erfordern kann. Die hier offenbarten Unschärfepufferverfahren sind die ersten, die diskrete Unschärfebreite-basierte Puffer aufweisen, was möglich gemacht wurde, weil dieser Modus der Zusammensetzung von der Einreichungsreihenfolge unabhängig ist.The methods described here enable real-time (e.g. response time of milliseconds) ChromBlur for additive applications, such as augmented reality displays and virtual reality or desktop with additive composition. Previous batch algorithms performed full optimization per frame, which could take several seconds. The blur buffering methods disclosed here are the first to have discrete blur width-based buffers, which has been made possible because this mode of composition is independent of the filing order.

Figurenlistelist of figures

Um die Erläuterung über ein bestimmtes Element oder eine bestimmte Handlung leicht zu kennzeichnen, beziehen sich die höchsten Ziffern in einem Bezugszeichen auf die Abbildungsnummer, in der dieses Element zuerst eingeführt wird.

  • 1 veranschaulicht eine herkömmliche Stereoanzeigetechniken 100 gemäß einer Ausführungsform
  • 2 veranschaulicht ein Akkommodation-Vergenz-Konflikt 200 gemäß einer Ausführungsform
  • 3 veranschaulicht ein varifokales System 300 gemäß einer Ausführungsform
  • 4 veranschaulicht ein dünnes Linsen-Modell 400 gemäß einer Ausführungsform
  • 5 veranschaulicht eine ChromaBlur 500 gemäß einer Ausführungsform
  • 6 veranschaulicht eine Monte-Carlo-Strahlenverfolgung 600 gemäß einer Ausführungsform
  • 7 veranschaulicht ein Unschärfekern-Auswahlverfahren 700 gemäß einer Ausführungsform
  • 8 veranschaulicht einen Dreikanal-Rechenunschärfealgorithmus 800 gemäß einer Ausführungsform
  • 9 veranschaulicht ein Abgriff-basiertes Verfahren 900 gemäß einer Ausführungsform
  • 10 veranschaulicht ein Skalenkategorien-Unschärfeverfahren 1000 gemäß einer Ausführungsform
  • 11 veranschaulicht ein rechnerisches CNN-Unschärfeverfahren 1100 gemäß einer Ausführungsform
  • 12 veranschaulicht ein varifokales kopfangebrachtes Anzeigesystemverfahren 1200 gemäß einer Ausführungsform
  • 13 ist ein Blockdiagramm eines Rechensystems 1300, innerhalb desselben die GPU oder ein hier eingeführtes Verfahren verkörpert oder ausgeführt werden können.
To easily identify the explanation of a particular element or action, the highest digits in a reference number refer to the figure number in which that element is first introduced.
  • 1 illustrates a conventional stereo display technique 100 according to one embodiment
  • 2 illustrates an accommodation-vergence conflict 200 according to one embodiment
  • 3 illustrates a varifocal system 300 according to one embodiment
  • 4 illustrates a thin lens model 400 according to one embodiment
  • 5 illustrates a ChromaBlur 500 according to one embodiment
  • 6 illustrates Monte Carlo ray tracing 600 according to one embodiment
  • 7 illustrates a blur core selection process 700 according to one embodiment
  • 8th illustrates a three-channel computational blur algorithm 800 according to one embodiment
  • 9 illustrates a tap-based method 900 according to one embodiment
  • 10 illustrates a scale category blurring method 1000 according to one embodiment
  • 11 illustrates a computational CNN blurring method 1100 according to one embodiment
  • 12 illustrates a varifocal head-mounted display system process 1200 according to one embodiment
  • 13 Figure 3 is a block diagram of a computing system 1300 within which the GPU or a method introduced here can be embodied or executed.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Die hier verwendete verschiedenartige Terminologie sollte ihre gewöhnliche Bedeutung in der Technik beigemessen werden, sofern nicht anders angegeben.The various terminology used here should be given its usual technical importance unless otherwise stated.

„Abgriffe“ bezieht sich auf 2D-Punktproben von nahegelegenen gerenderten Bildeigenschaften, die in einem Puffer gespeichert sind.“Taps” refers to 2D point samples from nearby rendered image properties that are stored in a buffer.

„Hybridfeldzustand“ bezieht sich auf ein Objekt mit mindestens einem Farbkanal, der in einem unterschiedlichen Feld (Nahfeld, Fernfeld oder In-Fokus) als ein anderer Farbkanal ist. Ein Objekt, für das beispielsweise rot und grün im Fokus sind und blau im Nahfeld ist.“Hybrid field state” refers to an object with at least one color channel that is in a different field (near field, far field or in-focus) than another color channel. An object for which, for example, red and green are in focus and blue is in the near field.

„Physikalischer Radius“ bezieht sich auf den Radius R der Punktverbreitungsfunktion (die eine Ebene, Gauß‘sche oder andere Form sein kann) auf der Netzhaut, den man in der realen Welt erfahren würde."Physical radius" refers to the radius R the point spread function (which can be a plane, Gaussian or other shape) on the retina that would be experienced in the real world.

„Graphischer Radius“ bezieht sich auf den Radius R', den der Betrachter erfahren würde, der eine Graphik in festem Abstand betrachtet."Graphical radius" refers to the radius R ' that would be experienced by the viewer looking at a graphic at a fixed distance.

„Unschärfekern“ bezieht sich auf einen Kern, eine Faltungsmatrix oder eine Maske, die eine kleine Matrix ist, die für Unschärfe, Schärfung, Prägung, Kantenerfassung und mehr benutzt wird, in dem eine Faltung zwischen einem Kern und einem Bild durchgeführt wird."Defocus core" refers to a core, a convolution matrix or a mask, which is a small matrix used for blurring, sharpening, embossing, edge detection and more, in which one Convolution between a core and an image is performed.

„Weltraum“ bezieht sich auf den dreidimensionalen Raum, der von realen Objekten in der realen Welt belegt wird."Space" refers to the three-dimensional space occupied by real objects in the real world.

„Bildschirmraum“ bezieht sich auf den 2D-Raum des Anzeigeschirms, der verwendet wird, um 2D-Bilder von virtuellen 3D-Objekten zu machen, so dass sie erscheinen, in einer dreidimensionalen Welt eingebettete Objekte dreidimensionale Objekte zu sein.“Screen space” refers to the 2D space of the display screen that is used to take 2D images of 3D virtual objects so that they appear to be three-dimensional objects embedded in a three-dimensional world.

„Virtueller Raum“ bezieht sich auf den dreidimensionalen Raum, der virtuellen Objekten zugewiesen ist, der bestimmt, wie diese sich im Bildschirmraum auf reale Welt-Raum-Objekte beziehen."Virtual space" refers to the three-dimensional space assigned to virtual objects, which determines how they relate to real world space objects in the screen space.

„Optischer Abstand“ bezieht sich darauf, wie weit weg die Objekte dem Betrachter erscheinen, sogar wenn ihr Welt-Raum-Abstandunterschiedlich ist; derartige Unterschiede sind gewöhnlich ein absichtlicher Teil einer optischen Ausgestaltung und werden durch gekrümmte Spiegel oder gekrümmte Brechungslinsen erreicht.“Optical distance” refers to how far away the objects appear to the viewer, even if their world-space distance is different; such differences are usually an intentional part of an optical design and are achieved by curved mirrors or curved refractive lenses.

„Physikalischer Abstand“ bezieht sich auf einen Abstand in der realen Welt zwischen zwei Dingen."Physical distance" refers to a distance in the real world between two things.

Techniken werden hier offenbart, um realistisches Rendering in Stereoanzeigesystemen bereitzustellen, die kopfangebrachte Anzeigen (HMDs) umfassen, wobei die Vergenz (Triangulation: wohin die beiden Augen zeigen) und Akkommodation (Focus) der Augen nicht synchron miteinander sind. Das heißt, die Augen eines Betrachters konvergieren auf eine Stereotiefe, während die Linsen der Augen auf eine unterschiedliche Tiefe akkommodiert werden müssen. Diesem Problem wird unter Verwendung eines varifokalen Anzeigesystems entsprochen, das die optische Tiefe der Anzeige auf die Tiefe des Objekts dynamisch ändert, auf das der Betrachter blickt, zusammen mit passender Augenverfolgung und rechnerischer Unschärfeunterstützung. Hier sind alle Teile der Bilder in einem änderbaren optischen Abstand, jedoch immer in einem einzigen Abstand, wenn die Augen akkommodiert sind. Dies findet sowohl auf AR als auch VR Anwendung. Für additive Transparenz-AR, wo die Graphik eine optische transparente Überlagerung auf der realen Welt ist (wie es in Vorrichtungen, wie beispielsweise der Microsoft HoloLens und den Meta2 Headsets ist) gibt es ebenfalls zusätzliche Spezialisierungen, die benutzt werden können.Techniques are disclosed here to provide realistic rendering in stereo display systems that include head-mounted displays (HMDs), where the vergence (triangulation: where the two eyes are pointing) and accommodation (focus) of the eyes are out of sync. That is, a viewer's eyes converge to a stereo depth, while the lenses of the eyes must be accommodated to a different depth. This problem is addressed using a varifocal display system that dynamically changes the visual depth of the display to the depth of the object the viewer is looking at, along with appropriate eye tracking and arithmetic blur support. Here, all parts of the images are at a variable optical distance, but always at a single distance when the eyes are accommodated. This applies to both AR and VR. For additive transparency AR, where the graphic is an optical transparent overlay on the real world (as it is in devices such as the Microsoft HoloLens and the Meta2 headsets), there are also additional specializations that can be used.

Offenbart werden ebenfalls Ausführungsformen eines Unschärfeverfahrens zur additiven Tiefenschärfenzusammensetzung. Diese Verfahren können unabhängig von ChromaBlur angewendet werden, wobei sie jedoch ebenfalls mit ChromaBlur für zusätzlichen Vorteil arbeiten.Embodiments of a blur method for additive depth of field composition are also disclosed. These methods can be used independently of ChromaBlur, but they also work with ChromaBlur for added benefit.

Herkömmliche Computer-AR/VR-Systems zeigen alle Computergraphikobjekte auf einer Anzeige (z.B. einem Computermonitor) in einem festen optischen Abstand an. Dieser optische Abstand kann der gleiche wie der Echtweltobjektabstand sein, wie beispielsweise mit einem Computer- oder Filmbildschirm, oder kann durch Linsen optisch geändert werden, wie beispielsweise in einer typischen HMD. 1 veranschaulicht zwei unterschiedliche herkömmliche Stereoanzeigetechniken 100 (Bildschirm-basiert und HMDbasiert). Das linke Diagramm veranschaulicht ein typisches Stereoanzeigesystem basierend auf einem herkömmlichen Monitor, wie beispielsweise einem TV-Bildschirm oder Computerbildschirm (d.h., dem Stereoanzeigeschirm 106), wobei jedes der Augen 102 ein unterschiedliches Bild sehen. Die Linsen der Augen sind auf dieselbe Tiefe fokussiert, auf die sich die Sichtlinien konvergieren. Das rechte Diagramm veranschaulicht ein typisches HMD-System, wobei Linsen 104 die Augen 102 auf geometrisch nähere Bildschirme fokussieren (die fokalen Bildschirme 108, die an dem Kopf angebracht sind), die optisch in einem weiteren Abstand erscheinen (die scheinbaren Anzeigeschirme 110). In beiden Techniken gibt es keine Cue-Widersprüche, solange wie die virtuellen Objekte in dem gleichen virtuellen Abstand wie der reale Bildschirm (links) oder die optischen Tiefe (rechts) sind.Conventional computer AR / VR systems display all computer graphics objects on a display (for example a computer monitor) at a fixed optical distance. This optical distance may be the same as the real world object distance, such as with a computer or movie screen, or may be optically changed by lenses, such as in a typical HMD. 1 illustrates two different conventional stereo display techniques 100 (Screen based and HMD based). The left diagram illustrates a typical stereo display system based on a conventional monitor, such as a TV screen or computer screen (ie, the stereo display screen) 106 ) with each of the eyes 102 see a different picture. The lenses of the eyes are focused at the same depth to which the lines of sight converge. The right diagram illustrates a typical HMD system, with lenses 104 the eyes 102 focus on geometrically closer screens (the focal screens 108 which are attached to the head), which appear optically at a further distance (the apparent display screens 110 ). There are no cue contradictions in either technique, as long as the virtual objects are at the same virtual distance as the real screen (left) or the optical depth (right).

Wenn das virtuelle Objekt im gleichen optischen Abstand von dem Betrachter wie der Bildschirm ist, ist die Betrachtung naturalistisch, was bedeutet, dass die Augen 102 in dem gleichen Abstand fokussiert sind, in dem die Sichtlinien konvergieren, und der Bildschirm ein Bild an dem Ort anzeigt, der scharf eingestellt ist, was zu einer komfortablen natürlichen Situation führt. Wenn das virtuelle Objekt jedoch nicht im Bildschirmabstand ist, konvergieren die Sichtlinien entsprechend, wobei jedoch beide der Augen 102 im Stereoanzeigeschirm 106 fokussieren müssen (wo das virtuelle Objekt scharf ist) oder sie müssen im der Abstand des virtuellen Objekts fokussieren, wobei sie in diesem Fall nicht auf dem Stereoanzeigeschirm 106 fokussiert werden. Im letzteren Fall wird das virtuelle Objekt unscharf sein (siehe 2). Dies ist der „Akkommodation-Vergenz-Konflikt“, von dem man annimmt, dass er Benutzerunbehagen verursacht.If the virtual object is at the same optical distance from the viewer as the screen, the viewing is naturalistic, which means that the eyes 102 are focused at the same distance that the lines of sight converge and the screen displays an image at the location that is in focus, resulting in a comfortable natural situation. However, when the virtual object is out of screen distance, the lines of sight converge accordingly, but both of the eyes 102 in the stereo display screen 106 need to focus (where the virtual object is in focus) or they need to focus in the distance of the virtual object, in which case they are not on the stereo display screen 106 be focused. In the latter case, the virtual object will be out of focus (see 2 ). This is the "accommodation-vergence conflict", which is believed to cause user discomfort.

2 veranschaulicht einen Akkommodation-Vergenz-Konflikt 200. Im linken Diagramm sind die Sichtlinien auf dem virtuellen Objekt 202 geeignet konvergiert, wobei die Augen 102 jedoch hinter dem virtuellen Objekt 202 auf dem Stereoanzeigeschirm 106 fokussiert sind. Dies führt dazu, dass das virtuelle Objekt 202 für den Benutzer scharf eingestellt ist. Im rechten Diagramm sind die Augen 102 auf dem virtuellen Objekt 202 fokussiert, was bewirkt, dass sein Bild auf dem Stereoanzeigeschirm 106 unscharf erscheint. 2 illustrates an accommodation-vergence conflict 200 , In the left diagram, the lines of sight are on the virtual object 202 suitably converges, the eyes 102 however behind the virtual object 202 on the stereo display screen 106 are focused. This causes the virtual object 202 is in focus for the user. in the right diagram are the eyes 102 on the virtual object 202 focused, which causes his image to appear on the stereo display screen 106 appears out of focus.

3 veranschaulicht ein varifokales System 300, um dem Akkommodation-Vergenz-Konflikt 200 zu entsprechen, wobei der optische Abstand zu dem virtuellen Objekt 202 nicht der gleiche wie der Stereo(Triangulation)-Abstand zu dem virtuellen Objekt 202 ist. In dem varifokalen System 300 wird die optische Tiefe des Stereoanzeigeschirms 106 dynamisch geändert, um in dem Abstand zu sein, in dem die Augen 102 fokussiert sind (d.h., von der ersten optischen Tiefe 302 zu der zweiten optischen Tiefe 304). Dies erzeugt jedoch eine Erfahrung, bei der alle Objekte im Fokus stehen, sogar wenn für einen Betrachter in der realen Welt einige Objekte (z.B. benachbartes virtuelles Objekt 306) unscharf sein würden, weil sie in einer unterschiedlichen optischen Tiefe als der Stereoanzeigeschirm 106 sind. 3 illustrates a varifocal system 300 to the accommodation-vergence conflict 200 to match, the optical distance to the virtual object 202 not the same as the stereo (triangulation) distance to the virtual object 202 is. In the varifocal system 300 becomes the optical depth of the stereo display screen 106 dynamically changed to be at the distance the eyes 102 are focused (ie, from the first optical depth 302 to the second optical depth 304 ). However, this creates an experience in which all objects are in focus, even if for an observer in the real world some objects (e.g. neighboring virtual object 306 ) would be out of focus because they are at a different optical depth than the stereo display screen 106 are.

Existierende varifokale Systeme ändern den Abstand zu den virtuellen Objekten entweder durch Bewegen der Linsen oder Bildquellen oder durch dynamisches Ändern der Brennweite des optischen Systems durch physikalisches Ändern der Krümmung der optischen Komponenten.Existing varifocal systems change the distance to the virtual objects either by moving the lenses or image sources or by dynamically changing the focal length of the optical system by physically changing the curvature of the optical components.

Das linke Diagramm von 3 veranschaulicht ein varifokales System, das die optische Tiefe des Stereoanzeigeschirms 106 dynamisch bewegt, um den Stereoanzeigeschirm 106 in dem Abstand beizubehalten, in dem die Augen 102 fokussiert sind (d.h., von der ersten optischen Tiefe 302 zu der zweiten optischen Tiefe 304). Das rechte Diagramm veranschaulicht das gleiche System mit einem benachbarten (in dem visuellen Feld des Betrachters) Objekt (das benachbarte virtuelle Objekt 306), das für den Betrachter unscharf sein sollte, für welches das Bild jedoch scharf eingestellt angezeigt wird.The left diagram from 3 illustrates a varifocal system that represents the optical depth of the stereo display screen 106 moved dynamically to the stereo display screen 106 maintain the distance the eyes 102 are focused (ie, from the first optical depth 302 to the second optical depth 304 ). The right diagram illustrates the same system with an adjacent (in the viewer's visual field) object (the adjacent virtual object 306 ), which should be out of focus for the viewer, but for which the image is displayed in focus.

4 veranschaulicht ein dünnes Linsen-Modell 400. Wenn Objekte in der realen Welt betrachtet werden, werden lediglich Objekte in einem bestimmten Abstand scharf eingestellt auf der Netzhaut projiziert und Objekte in anderen Abständen sind unscharf. Das gleichen gilt für Kameras und die resultierenden Objekte mit Unschärfe sollen „Tiefenschärfe“ aufweisen. Dieser Effekt kann in der Computergraphik simuliert werden und wird unter Verwendung von Brute-Force-Strahlenverfolgung mit einem zugrundeliegenden „dünne Linsen-Kamera“-Modell zur Bildgebung implementiert. 4 illustrates a thin lens model 400 , When viewing objects in the real world, only objects at a certain distance are focused on the retina and objects at other distances are out of focus. The same applies to cameras and the resulting objects with blur should have "depth of field". This effect can be simulated in computer graphics and is implemented using brute force beam tracking with an underlying “thin lens camera” model for imaging.

Das dünne Linsen-Modell befolgt die „dünne Linsen-Gleichung“ 1/f = 1/i + 1/o, wobei f die „Brennweite“, eine intrinsisch Eigenschaft der Linse 402 ist, i der Abstand zwischen der Linse 402 und der Brennebene 404 ist (z.B. der Netzhaut in einem menschlichen Auge oder dem Film/Sensor in einer Kamera) und o der Abstand zu dem ersten Objekt 406 ist, das abgebildet wird (das erste Bild 408 in der Veranschaulichung der linken Seite in 4). Die geometrische Implikation dieses Gesetzes ist, dass Licht, das ein Objekt im Abstand o verlässt, im Abstand i auf der anderen Seite der Linse 402 konvergiert. Wenn die Brennebene 404 im Abstand i ist, dann ist das erste Bild 408 des ersten Objekts 406 scharf gestellt. Wenn die Brennebene 404 nicht im Abstand i ist, dann ist das erste Bild 408 unscharf und der Bereich dieser Unschärfe auf der Brennebene 404 ist der Zerstreuungskreis 410. Dieser kann entstehen, wenn das erste Objekt 406 entweder weiter oder näher als o ist (z.B. siehe Veranschaulichung in der rechten Seite in 4). Um den Fokus einzustellen, bewegen die meisten Kameras die Linse 402 näher oder weiter von der Brennebene 404. Menschen verformen die Linse ihrer Augen, um die Brennweite f zu ändern.The thin lens model follows the “thin lens equation” 1 / f = 1 / i + 1 / o, where f is the “focal length”, an intrinsic property of the lens 402 is i the distance between the lens 402 and the focal plane 404 is (eg the retina in a human eye or the film / sensor in a camera) and O the distance to the first object 406 that is imaged (the first image 408 in the left side illustration in 4 ). The geometric implication of this law is that light is an object at a distance O leaves, in the distance i on the other side of the lens 402 converges. If the focal plane 404 at a distance i then the first picture is 408 of the first object 406 in focus. If the focal plane 404 not at a distance i then the first picture is 408 out of focus and the area of this blur on the focal plane 404 is the circle of confusion 410 , This can arise when the first object 406 either further or closer than O (e.g. see illustration on the right in 4 ). Most cameras move the lens to adjust the focus 402 closer or farther from the focal plane 404 , People deform the lens of their eyes to change the focal length f.

In der linken Seite der Veranschaulichung von 4 sind zwei Objekte (das erste Objekt 406 und das zweite Objekt 412) beide in einer Tiefe o und die Brennebene 404 ist lokalisiert, so dass die dünne Linse-Gleichung (d.h., 1/i + 1/o = 1/f) für die Brennweite der Linse 402 erfüllt ist. Alle Objekte in der Tiefe o werden auf in Fokus-stehende Bilder (das erste Bild 408 und zweite Bild 414) in diesem Szenario projiziert.To the left of the illustration of 4 are two objects (the first object 406 and the second object 412 ) both at a depth O and the focal plane 404 is localized so that the thin lens equation (ie, 1 / i + 1 / o = 1 / f) for the focal length of the lens 402 is satisfied. All objects in depth O focus on images (the first image 408 and second picture 414 ) projected in this scenario.

In der Veranschaulichung der rechten Seite V von 4 wird ein Objekt, das näher als o ist (das zweite Objekt 412), ein Bild in einen Punkt hinter der Brennebene 404 projizieren und wird eine unscharfe Projektion auf der Brennebene 404 bilden (d.h., das zweite Bild 414). Ein Objekt weiter weg als o (das erste Objekt 406) wird ein Bild vor der Brennebene 404 projizieren und wird ebenfalls eine unscharfe Projektion (d.h., das erste Bild 408) auf der Brennebene 404 bilden. Die dünne Linse-Gleichung für das erste Objekt 406 wird durch 1/o' + 1/i' = 1/f erfüllt, wobei somit, wenn die Brennebene 404 zu dem Abstand o' von der Linse 402 bewegt wird, das erste Objekt 406 ein scharf eingestelltes Bild projizieren wird und das zweite Bild 414 des zweiten Objekts 412 sogar noch unschärfer erscheinen wird. Die Unschärfe für jeden Punkt (die „Punktverbreitungsfunktion“) ist eine Scheibe genannt der Zerstreuungskreis 410.In the illustration of the right side V of 4 becomes an object that is closer than O is (the second object 412 ), an image in a point behind the focal plane 404 project and becomes a blurred projection on the focal plane 404 form (ie, the second picture 414 ). An object further away than O (the first object 406 ) will be a picture in front of the focal plane 404 project and will also be a blurred projection (ie, the first image 408 ) on the focal plane 404 form. The thin lens equation for the first object 406 is met by 1 / o '+ 1 / i' = 1 / f, thus when the focal plane 404 to the distance O' from the lens 402 is moved, the first object 406 will project a focused image and the second image 414 of the second object 412 will appear even more blurred. The blur for each point (the "point spread function") is a disk called the circle of confusion 410 ,

Der Zerstreuungskreis 410 kann zu dem Betrachter unter Verwendung von rechnerischen Unschärfetechniken gerendert werden, entweder durch Simulieren der Strahlen, die das Bild unter Verwendung eines Monte-Carlo-Verteilung-Strahlverfolgers bilden, oder interaktiv approximiert werden, in dem die Punkte unscharf gemacht werden, wenn sie auf den Bildschirm projiziert werden. Diese Techniken benutzen häufig eine Gauß‘sche Punktverbreitungsfunktion und keine Scheibe und in diesen Fällen ist die auf die Gauß‘sche Punktverbreitungsfunktion angewandte Standardabweichung etwa der halbe Radius der Apertur der Kamera oder des Auges, welche die Unschärfe von Kanten approximiert. Mit anderen Worten wird die Gauß‘sche Punktverbreitungsfunktion durch Mittelwert- und Standardabweichung-Parameter bestimmt, bei denen der Standardabweichung-Parameter von dem Radius-Parameter des Zerstreuungskreises 410 berechnet wird und der Mittelwert gleich null ist.The circle of confusion 410 can be rendered to the viewer using computational blurring techniques, either by simulating the rays that form the image using a Monte Carlo distribution ray tracker, or interactively approximating by blurring the points when they point to the Screen to be projected. These techniques often use a Gaussian point spread function and not a slice and in these cases it is based on the Gaussian point spread function Standard deviation applied about half the radius of the aperture of the camera or eye, which approximates the blurring of edges. In other words, the Gaussian point spread function is determined by mean and standard deviation parameters, where the standard deviation parameter is from the radius parameter of the circle of confusion 410 is calculated and the mean is zero.

5 veranschaulicht das Phänomen der chromatischen Unschärfe (ChromaBlur) 500. Ein Aspekt der Unschärfe des Bildes eines Objekts 504 auf der Netzhaut des Auges 502 ist, dass der Umfang der Unschärfe von sowohl dem Abstand der Linse von dem Auge 502 zu dem Objekt 504 als auch von der Wellenlänge des Lichtes abhängt. Mit anderen Worten wird die Linse des menschlichen Auges eine signifikante chromatische Aberration aufweisen. In jüngster Zeit wurde gezeigt, dass chromatische Aberrationsmuster bedeutende Fokussiermechanismen für das menschliche Auge sind. 5 illustrates the phenomenon of chromatic blurring (ChromaBlur) 500 , An aspect of the blur of an object's image 504 on the retina of the eye 502 is that the amount of blur depends on both the distance of the lens from the eye 502 to the object 504 and also depends on the wavelength of the light. In other words, the lens of the human eye will have significant chromatic aberration. It has recently been shown that chromatic aberration patterns are important focusing mechanisms for the human eye.

Die Effekte der ChromaBlur 500 können in einem Unschärferechenalgorithmus in einem varifokalen System berücksichtigt werden. Wenn das menschliche Auge 502 auf ein Objekt 504 in einem bestimmten Abstand fokussiert ist, sind es tatsächlich lediglich die grünen Wellenlängen 506 von Licht, die von dem Objekt 504 von diesem Abstand empfangen werden, die im Fokus stehen. Rote Objekte stehen in einem weiteren Abstand im Fokus und blaue Objekte stehen in einem geringeren Abstand im Fokus. Für das Objekt 504 mit in Fokus stehenden grünen Wellenlängen 506 erzeugen sowohl die roten Wellenlängen 508 als auch die blauen Wellenlängen 510 Zerstreuungskreise auf der Netzhaut. Wenn die blauen Farbtöne des Objekts 504 nicht unscharf sind, bedeutet dass, dass das Auge 502 nach dem Objekt 504 fokussiert ist. Wenn die roten Farbtöne des Objekts 504 nicht unscharf sind, ist der Benutzer zu nahe fokussiert.The effects of the ChromaBlur 500 can be taken into account in a blurring algorithm in a varifocal system. If the human eye 502 on an object 504 is focused at a certain distance, it is actually only the green wavelengths 506 of light from the object 504 received from this distance, which are in focus. Red objects are in focus at a further distance and blue objects are in focus at a closer distance. For the object 504 with green wavelengths in focus 506 generate both the red wavelengths 508 as well as the blue wavelengths 510 Circles of confusion on the retina. If the blue hues of the object 504 are not out of focus, that means the eye 502 according to the object 504 is focused. If the red hues of the object 504 are not out of focus, the user is too closely focused.

In einer Ausführungsform wird ein ChromaBlur-Algorithmus angewendet, um die roten und blauen Fokusabstände zu einem Objekt basierend darauf zu berechnen, wo die grünen Wellenlängen im Fokus stehen. Menschliche Betrachter neigen dazu, chromatische Aberration zu manifestieren, die durch die folgende Formel gegeben wird: Δ D ( λ ) = λ

Figure DE102019121803A1_0001
In one embodiment, a ChromaBlur algorithm is used to calculate the red and blue focus distances to an object based on where the green wavelengths are in focus. Human viewers tend to manifest chromatic aberration, which is given by the following formula: Δ D ( λ ) = - λ -
Figure DE102019121803A1_0001

Here ist D die Dioptrie (1/f) der Brennweite f für das menschliche Auge. Es seien die drei Wellenlängen, die den drei RGB (roten, grünen und blauen) Komponenten zugeordnet sind, durch D_grün, D_blau und D_rot dargestellt. Wenn D_grün bekannt ist, kann D_blau und D_rot berechnet werden, und die Abstände, bei denen D_rot und D_blau scharf eingestellt erscheinen (or bzw. ob für die dünne Linse-Gleichung) können ebenfalls von dem Abstand berechnet werden, in dem grün scharf eingestellt erscheint (og).Here D is the diopter (1 / f) of the focal length f for the human eye. The three wavelengths assigned to the three RGB (red, green and blue) components are represented by D_green, D_blau and D_rot. If D_green is known, D_blau and D_rot can be calculated, and the distances at which D_rot and D_blau appear to be in focus (o r or o b for the thin lens equation) can also be calculated from the distance in which green is sharp appears set (o g ).

Es sei angenommen, dass die dünne Linse-Gleichung Anwendung findet und dass sich die Dioptrie der Linse D=1/f um einen Betrag delta D ändert. Dies ergibt für rot: 1 / o r = Δ D ( λ r ) Δ D ( λ g )

Figure DE102019121803A1_0002
It is assumed that the thin lens equation is used and that the diopter of the lens D = 1 / f changes by an amount delta D. For red: 1 / O r - = Δ D ( λ r ) - Δ D ( λ G )
Figure DE102019121803A1_0002

Die Berechnung von ob kann auf ähnliche Weise durchgeführt werden. Gleichung 2 ermöglicht die Verwendung von Abständen, bei denen jeweils rote, grüne und blaue Wellenlängen im Fokus stehen, um in Rechenunschärfealgorithmen benutzt zu werden. Für viele Konfigurationen ist der berechnete Abstand or jedoch negativ und herkömmliche Rechenunschärfealgorithmen sind nicht geeignet.The calculation of o b can be carried out in a similar way. Equation 2 enables the use of distances at which red, green and blue wavelengths are in focus in order to be used in computational blur algorithms. For many configurations, however, the calculated distance o r is negative and conventional calculation blurring algorithms are not suitable.

Ein Aspekt der Erfindung löst diesen negativen or Fall für sowohl Monte-Carlo-Strahlenverfolgung als auch Echtzeit-Bildschirmraum-Algorithmen. Die optische Interpretation eines negativen Objektabstands ist, dass es keinen scharf eingestellten Punkt des Objekts gibt und Strahlen in divergente Richtungen von dem Objekt projiziert werden, um ein Bild in einem Abstand or hinter der dünnen Linse 602 zu bilden.One aspect of the invention solves these negative o r case for both Monte Carlo ray tracing as well as real-time screen space algorithms. The visual interpretation of a negative object distance, that there is no in-focus point of the object and beams are projected in divergent directions from the object to form an image at a distance r o behind the thin lens 602 to build.

Für ein Monte-Carlo-Strahlenverfolgung-Algorithmus wird dies implementiert, in dem ein zufälliger Punkt 604 auf der dünnen Linse 602 gewählt wird (wie von vorherigen Verfahren getan wird) und in dem der Strahlenursprung ein deterministischer Punkt entlang einer Linie durch sowohl die Linsenmitte 608 als auch den Konvergenzpunkt für die grünen Strahlen ist.For a Monte Carlo ray tracing algorithm this is implemented in which a random point 604 on the thin lens 602 is chosen (as is done by previous methods) and in which the beam origin is a deterministic point along a line through both the lens center 608 as well as the convergence point for the green rays.

Bezugnehmend auf die linke Seite der Monte-Carlo-Strahlenverfolgung 600 von 6 wählt die herkömmliche Monte-Carlo-Strahlenverfolgung 600 einen zufälligen Punkt 604 für den Strahlursprung auf dem Bereich der dünnen Linse 602 und wirft einen Strahl 606 in Richtung des Konvergenzpunkts auf der Objektebene.Referring to the left side of the Monte Carlo ray tracing 600 of 6 chooses conventional Monte Carlo ray tracing 600 a random point 604 for the beam origin on the area of the thin lens 602 and throws a beam 606 towards the convergence point on the object level.

Beim Berechnen einer chromatische Aberration der dünnen Linse 602 kann es keine Objektebene vor der dünnen Linse 602 geben und daher wählt das hier offenbarte Verfahren einen Punkt hinter der dünnen Linse 602 in einem Abstand -or (-o_r in 6), um eine Raycasting-Richtung einzustellen.When calculating a chromatic aberration of the thin lens 602 there can be no object plane in front of the thin lens 602 and therefore the method disclosed here chooses a point behind the thin lens 602 at a distance -o r ( -o_r in 6 ) to set a raycasting direction.

Für einen rechnerischen Bildschirmraum-Unschärfealgorithmus wird somit eine neue Technik benötigt, um den Zerstreuungskreis für -or Werte zu berechnen. Rechnerische Echtzeitunschärfe für Tiefenschärfe wird erreicht, in dem jedes Objekt, das im Bildschirmraum gerendert ist, basierend auf seiner Tiefe unscharf gemacht wird, wobei die teilweise Transparenz von Objekten vor anderen Objekten berücksichtigt wird. Für eine Linse von Durchmesser A im Blickpunkt (z=0) und einem Abstand z=d, wo Objekte im Fokus stehen, wird der Durchmesser C des Zerstreuungskreises (im Welt-Raum) für einen gerenderten Punkt im Abstand z gegeben durch: C = A | z d | / d

Figure DE102019121803A1_0003
A new technique is thus used for a computational screen space blurring algorithm needed to the circle of confusion for -o r To calculate values. Computational real-time blur for depth of field is achieved by blurring each object that is rendered in the screen space based on its depth, taking into account the partial transparency of objects in front of other objects. For a lens of diameter A in the focal point (z = 0) and a distance z = d where objects are in focus, the diameter C of the circle of confusion (in world space) for a rendered point at a distance z is given by: C = A | z - d | / d
Figure DE102019121803A1_0003

Für den Fall, in dem der Ursprungspunkt für einen Strahl hinter der Linse ist, kann diese Formel immer noch angewendet werden, um den Zerstreuungskreis des Welt-Raums zu wählen.In the case where the point of origin for a ray is behind the lens, this formula can still be used to choose the circle of confusion of the world space.

Ein Verfahren zum Wählen des Geeigneten UnschärfekernsA method of choosing the appropriate blur core

Bezugnehmend auf 7 wählt eine Ausführungsform eines Unschärfekern-Auswahlverfahrens 700 einen tiefenabhängigen Unschärfekern (Punktverbreitungsfunktion) aus, um von einem Bildschirmraum-Rechenunschärfealgorithmus benutzt zu werden. Für jeden Farbkanal berechnet das Unschärfekern-Auswahlverfahren 700 den Radius R der Punktverbreitungsfunktion (die eine Ebene, Gauß‘sche oder andere Form sein kann) auf der Netzhaut, der in der realen Welt erfahren werden würde (Block 702). Das Unschärfekern-Auswahlverfahren 700 berechnet ferner den Radius R', der von dem Betrachter erfahren wird, der auf den festen optischen Abstand blickt (Block 704). Dies bezieht sich auf den optischen Abstand zu dem Bildschirm und nicht auf den physikalischen Abstand zwischen dem Auge und dem Bildschirm und nicht dem virtuellen Abstand zu dem Objekt im virtuellen Raum. R und R' werden dann verglichen (Block 706). Wenn R > R' (Entscheidungsblock 708), gibt es eine unzureichende Unschärfe und das Verfahren wendet eine zusätzliche Unschärfe (Block 712) mit dem folgenden Radius an: R " = s q r t ( R * R R ' * R ' )

Figure DE102019121803A1_0004
Referring to 7 selects one embodiment of a blur core selection method 700 a depth dependent blur core (point spread function) to be used by a screen space computation blur algorithm. The unsharpness selection process calculates for each color channel 700 the radius R the point spread function (which can be a plane, Gaussian or other shape) on the retina that would be experienced in the real world (Block 702 ). The unsharpness core selection process 700 also calculates the radius R ' that is experienced by the viewer looking at the fixed optical distance (block 704 ). This refers to the optical distance to the screen and not to the physical distance between the eye and the screen and not the virtual distance to the object in the virtual space. R and R ' are then compared (block 706 ). If R> R '(decision block 708 ), there is insufficient blur and the process applies an additional blur (block 712 ) with the following radius: R " = s q r t ( R * R - R ' * R ' )
Figure DE102019121803A1_0004

Gleichung 4 ist genau, wenn zwei aufeinanderfolgende Gauß‘sche Unschärfen das gleiche Ergebnis wie eine einzige breitere Gauß‘sche Unschärfe erzeugen. Wenn R < R' (Entscheidungsblock 708), kann es zu viel Unschärfe von dem optischen System geben. In diesem Fall kann das Bild mehr als in seiner ursprünglichen Erscheinung geschärft sein. Das Unschärfekern-Auswahlverfahren 700 kann eine Unschärfemaske (Block 710) anwenden, um das beste Realweltergebnis in diesen Bedingungen zu geben, durch: I m a g e = K * I m a g e ( K 1 ) * I m a g e _ b l u r r e d _ b y _ f i l t e r

Figure DE102019121803A1_0005
Equation 4 is accurate if two consecutive Gaussian blurs produce the same result as a single wider Gaussian blur. If R <R '(decision block 708 ), there may be too much blurring from the optical system. In this case, the image may be sharpened more than its original appearance. The unsharpness core selection process 700 can be an unsharp mask (block 710 ) to give the best real world result in these conditions by: I m a G e = K * I m a G e - ( K - 1 ) * I m a G e _ b l u r r e d _ b y _ f i l t e r
Figure DE102019121803A1_0005

Für Gauß‘sche Unschärfefunktionen kann der minimale L2 Fehler (der durchschnittliche quadrierte Abstand zwischen der Eingangsfunktion und der mit dem Unschärfekern unscharf gemachten Funktion) erreicht werden, wenn K = 2 und der Radius (Standardabweichung) der Gaußschen eingestellt wird durch: R g a u s s = * s q r t ( R ' * R ' R * R )

Figure DE102019121803A1_0006
For Gaussian blurring functions, the minimum L2 error (the average squared distance between the input function and the function blurred with the blurring nucleus) can be achieved if K = 2 and the radius (standard deviation) of the Gaussian are set by: R G a u s s = * s q r t ( R ' * R ' - R * R )
Figure DE102019121803A1_0006

Ein Dreizonen-Verfahren zum Anwenden eines Bildschirmraum-Rechenunschärfealgorithmus für Opake SzenenA three-zone technique for applying a screen space computational blur algorithm to opaque scenes

Für ein herkömmliches Rendering von verdeckenden, vollständig opaken Objekten, die einen endgültigen Luminanzpuffer und Tiefenpuffer erzeugen, existieren Algorithmen für eine rechnerische Einzelkanalunschärfe. Eine Ausführungsform eines Dreikanal-Rechenunschärfealgorithmus 800 wird in 8 gezeigt, der ChromaBlur in diese Algorithmen integriert. Der Dreikanal-Rechenunschärfealgorithmus 800 kann für VR und für Durchlaufvideo-AR benutzt werden. Transparente Objekte werden durch dieses Verfahren nicht angesprochen.Algorithms for computational single-channel blur exist for a conventional rendering of obscuring, completely opaque objects that produce a final luminance buffer and depth buffer. An embodiment of a three-channel computational blur algorithm 800 is in 8th shown, the ChromaBlur integrated into these algorithms. The three-channel calculation blur algorithm 800 can be used for VR and for pass video AR. This procedure does not address transparent objects.

Bezugnehmend auf 8 berechnet bei Block 802 der Dreikanal-Rechenunschärfealgorithmus 800 zuerst die Unschärfekerne unter Verwendung der zuvor beschriebenen Verfahren, z.B. dem Unschärfekern-Auswahlverfahren 700 und der Monte-Carlo-Strahlenverfolgung 600. Bei Block 804 läuft das Verfahren durch die Objekte, wobei bestimmt wird, ob sie Nahfeld, Fernfeld oder In-Fokus-Feld für jeden Farbkanal sind (jeder Kanal weist einen unterschiedlichen Unschärfegrad auf). Eine Mehrheit von Objekten wird im Nahfeld oder Fernfeld sein und alle drei Kanäle können gleichzeitig unscharf sein, z.B. über Parallelcomputerverarbeitung (Block 806). Objekte in einem Hybridzustand (Belegen von zwei oder mehreren Fokusfeldern) kann auf einem Farbkanal auf Farbkanalgrundlage gehandhabt werden.Referring to 8th calculated at block 802 the three-channel computational blur algorithm 800 first the unsharpness cores using the previously described methods, for example the unsharpness core selection method 700 and Monte Carlo ray tracing 600 , At block 804 the process runs through the objects, determining whether they are near field, far field or in-focus field for each color channel (each channel has a different degree of blurring). A majority of objects will be in the near field or far field and all three channels can be out of focus at the same time, e.g. via parallel computer processing (block 806 ). Objects in a hybrid state (occupying two or more focus fields) can be handled on a color channel based on a color channel.

Ein Abgriff-Basiertes Verfahren zum Anwenden eines Bildschirmraum-Rechenunschärfealgorithmus für Opake SzenenA tap-based method of applying a screen space computational blur algorithm to opaque scenes

Eine weitere Familie rechnerischer Echtzeitunschärfe verwendet „Abgriffe“ (2D-Punktproben von nahegelegenen gerenderten Bildeigenschaften, die in einem Puffer gespeichert sind), um nahegelegene Farben zu mitteln. Bezugnehmend auf 9 kann ein ChromaBlur-Effekt durch Abtasten von Abgriffen im größten gewünschten Unschärferadius für die drei Farbkanäle angewendet werden (Block 902), wobei nur jene Abgriffe ausgewählt werden, die näher als der gewünschte Unschärferadius für diesen Kanal sind (Block 904), und für jeden Kanal dieser ausgewählten Abgriffe gemittelt wird (Block 906). Das Abgriff-basierte Verfahren 900 kann die Monte-Carlo-Strahlenverfolgung 600 und das Unschärfekern-Auswahlverfahren 700 benutzen, um den größten gewünschten Unschärferadius für jeden der drei Farbkanäle zu bestimmen.Another family of real-time computational blur uses "taps" (2D point samples of nearby rendered image properties stored in a buffer) to average nearby colors. Referring to 9 a ChromaBlur effect can be applied by scanning taps in the largest desired blur radius for the three color channels (block 902 ) only those taps are selected that are closer than the desired unsharpness radius for this channel (block 904 ), and averaged for each channel of these selected taps (block 906 ). The tap-based process 900 can Monte Carlo radiation tracing 600 and the blur core selection process 700 Use to determine the largest blur radius desired for each of the three color channels.

Ein Verfahren zum Einbringen von Unschärfe in Skalenkategorien für additive AnzeigenA method of introducing blur into scale categories for additive displays

Eine Ausführungsform eines Skalenkategorien-Unschärfeverfahrens 1000, wie in 10 veranschaulicht, nimmt an, dass der Inhalt, der gerendert wird, additiv über die Welt überblendet ist und dass unterschiedliche 3D-Objekte additiv übereinander überblendet werden. Diese Randbedingungen machen bestimmte Effizienzen möglich, was der opake Fall nicht tut. Additives Überblenden ist ein Fachbegriff, der bedeutet, dass die Luminanzwerte von unterschiedlichen Tiefen zusammen summiert werden, anstatt des näheren Objekts, welches das weitere verdeckt. Es erzeugt einen Effekt, der dem von 3D-„Projektionen“ in Filmen ähnlich ist. Beispielsweise wird additives Überblenden innerhalb des wohlbekannten OpenGL-Framework durch die Operationen glBlendFunc (GL_ONE, GL_ONE) und glBlendEquation (GL_FUNC_ADD) implementiert. Additive Überblenden weist den rechnerischen Vorteil auf, dass Objektzusammensetzung Reihenfolge-unabhängig ist, und die Notwendigkeit eines Sortierens oder Approximierens sowie auch die zugeordnete Pro-Pixel-Speicherung vermieden wird.An embodiment of a scale category blurring method 1000 , as in 10 illustrates, assumes that the content being rendered is additively blended across the world and that different 3D objects are additively blended on top of each other. These boundary conditions make certain efficiencies possible, which the opaque case does not. Additive cross-fading is a technical term that means that the luminance values from different depths are summed together instead of the closer object that hides the further one. It creates an effect similar to that of 3D “projections” in films. For example, additive crossfading is implemented within the well-known OpenGL framework through the operations glBlendFunc (GL_ONE, GL_ONE) and glBlendEquation (GL_FUNC_ADD). Additive cross-fading has the computational advantage that object composition is order-independent and the need for sorting or approximating as well as the associated per-pixel storage is avoided.

Additives Überblenden vereinfacht ebenfalls den Prozess des Tiefenschärfe-Rendering, weil Okklusionsgrenzen es komplex machen, Tiefenschärfe mit hoher Qualität in Echtzeit zu approximieren, was die Performance aufgrund von zunehmend komplexen Approximationen beeinflusst, die notwendig sind, um die gewünschte Qualität einzustellen.Additive cross-fading also simplifies the depth-of-field rendering process because occlusion boundaries make it complex to approximate depth of field with high quality in real time, which affects performance due to increasingly complex approximations necessary to set the desired quality.

Bezugnehmend auf 10 anvisiert das Skalenkategorien-Unschärfeverfahren 1000 während des Rendering N Ausgabe-„Ebenen“ (Block 1002). Diese Ebenen sind nicht notwendigerweise Tiefenschichten, sondern können Frame-Puffer-Kacheln, Gleitfenster, komplette Frame-Puffer usw. sein. In einer Ausführungsform ist N=4. Jede Ebene kann einem variierenden Niveau der Unschärfe entsprechen (wiederum, nicht Tiefe). Eine Ausführungsform beabstandet Ebenen linear zwischen einem Pixelunschärferadius von r=0 und r=15, obwohl eine nichtlineare Beabstandung ebenfalls benutzt werden kann (Block 1004).Referring to 10 targets the scale category blurring process 1000 during the rendering N Output "levels" (block 1002 ). These layers are not necessarily deep layers, but can be frame buffer tiles, sliding windows, complete frame buffers, etc. In one embodiment, N = 4. Each level can correspond to a varying level of blur (again, not depth). One embodiment linearly spaces planes between a pixel blur radius of r = 0 and r = 15, although nonlinear spacing can also be used (block 1004 ).

Jeder Strahltreffer, der die Bildschirmposition und der Abstand zu einem Objekt ist, wird bestimmt (Block 1006) und der Radius des Zerstreuungskreises des Objekts in Pixeln berechnet (Block 1008). Die Strahlfarbe wird additiv in ein Pixel in allen N Ebenen überblendet (Block 1010). Der Unschärferadius für jeden Kanal kann unterschiedlich sein und in diesem Fall wird jeder Kanal unabhängig verarbeitet. Es ist wahrscheinlich, dass ein Unschärferadius zwischen zwei der Unschärferadien fällt, die zwei diskreten Ebenen zugeordnet sind. In diesem Fall wird der Beitrag zwischen den beiden Ebenen aufgeteilt, wobei die Beiträge skaliert werden, um sich auf einen gegebenen Wert, z.B. auf Eins, zu summieren (Block 1012).Each beam hit, which is the screen position and the distance to an object, is determined (block 1006 ) and the radius of the circle of confusion of the object is calculated in pixels (block 1008 ). The beam color becomes additive into one pixel in all N Blended levels (block 1010 ). The blur radius for each channel can be different and in this case each channel is processed independently. A blur radius is likely to fall between two of the blur radii associated with two discrete planes. In this case, the contribution is divided between the two levels, the contributions being scaled to add up to a given value, for example one (block 1012 ).

Für ChromaBlur (z.B. der Monte-Carlo-Strahlenverfolgung 600) wird die gewünschte Unschärfeebene für jeden Farbkanal unabhängig bestimmt (Block 1014). Obwohl unabhängig voneinander, können die gewünschten Unschärfeebenen für die Farbkanäle jedoch berechnet und gleichzeitig angewendet werden. Somit wird bei der Verwendung des Skalenkategorien-Unschärfeverfahren 1000, um ChromaBlur zu existierenden Algorithmen hinzuzufügen, eine geringfügige zusätzliche rechnerische Komplexität eingehandelt.For ChromaBlur (e.g. Monte Carlo radiation tracking 600 ) the desired blur level is determined independently for each color channel (block 1014 ). Although independent of each other, the desired blur levels for the color channels can be calculated and applied at the same time. Thus, when using the scale category blurring method 1000 In order to add ChromaBlur to existing algorithms, a small additional computational complexity was negotiated.

Wenn die Kachel, der Frame-Puffer, das Fenster oder ein anderer Bildbereich bereit ist, angezeigt zu werden, wird jede Ebene mit zwei eindimensionalen Gauß‘schen Durchläufen unscharf gemacht, um dem gewünschten Zerstreuungskreis, d.h. den gewünschten Unschärferadius, zu approximieren (Block 1016). Die Gauß‘sche Standardabweichung kann R/2 approximieren. Das Skalenkategorien-Unschärfeverfahren 1000 addiert dann alle unscharfen Ebenen zusammen, um sie auf der Anzeige zu präsentieren (Block 1018).When the tile, frame buffer, window or other image area is ready to be displayed, each level is blurred with two one-dimensional Gaussian passes in order to approximate the desired circle of confusion, i.e. the desired radius of uncertainty (block 1016 ). The Gaussian standard deviation can R / 2 approximate. The scale category blurring method 1000 then adds all the blurred layers together to present them on the display (block 1018 ).

Herkömmliche rechnerische Unschärfealgorithmen bestimmen einen Unschärferadius für jeden gerenderten 3D-Punkt basierend auf einer Tiefe. Wenn additive Transparenz angewendet wird, wie häufig in AR-Systemen, können die Punkte gerendert und in beliebiger Reihenfolge (tiefenunabhängig) unabhängig zusammengesetzt werden. In der neuartigen offenbarten Vorgehensweise werden alle Punkte mit dem gleichen Unschärferadius ungeachtet der Tiefe gruppiert, weil die Tiefenreihenfolge keine Rolle spielt, und sie werden zusammen in einem Puffer unscharf gemacht anstatt jeden Punkt einzeln unscharf zu machen. Es gibt unendlich viele Unschärferadien in der Praxis für eine Szene von kontinuierlicher Tiefe und somit werden die zu rendernden Punkte zuerst in diskreten Sätzen von Unschärferadien gesammelt. Diese Technik macht sich die Tatsache zu Nutze, dass menschliches Sehen nicht genau bestimmen kann, wie unscharf ein Punkt ist.Conventional computational blurring algorithms determine a blur radius for each 3D point rendered based on a depth. If additive transparency is used, as is often the case in AR systems, the points can be rendered and assembled independently in any order (regardless of depth). In the novel disclosed approach, all points are grouped with the same unsharpness radius regardless of depth because the order of depth is irrelevant, and they are blurred together in a buffer instead of blurring each point individually. There are an infinite number of blur radii in practice for a scene of continuous depth and thus the points to be rendered are first collected in discrete sets of blur radii. This technique takes advantage of the fact that human vision cannot accurately determine how out of focus a point is.

Ein Verfahren für rechnerische Unschärfe unter Verwendung der Berechnung neuronaler NetzeA method of computational blurring using neural network computation

In einigen Implementierungen von VR oder AR kann es bereits ein faltendes neuronales Netz (convolutional neural network; CNN) geben, welche das gesamte gerenderte Bild für jeden Frame beispielsweise als ein Postprozessor für Effekte, wie beispielsweise Entrauschen (de-noising), analysiert. Aus diesem und anderen Gründen kann es vorzuziehen sein, ein CNN zu verwenden, um eine empirische optimierte rechnerische Unschärfe zu erzeugen, die entweder herkömmlich ist oder ChromaBlur-Effekte umfasst. Bezugnehmend auf 11 benutzt, um ein derartiges Netz zu trainieren, ein CNN-Rechenunschärfeverfahren 1100 einen großen Satz von Bildern, die ohne Unschärfe dargestellt werden, und eine große Anzahl von akkurat rechnerisch unscharf gemachten Versionen von diesen gleichen Bildern (Block 1102). Das CNN wird unter Verwendung einer Pixel-basierten Fehlermetrik zwischen der CNN-erzeugten Ausgabe und den akkurat unscharf gemachten Beispielen trainiert (Block 1104). Das trainierte CNN wird dann für jeden Frame über das gesamte gerenderte Bild betrieben (Block 1106). In some implementations of VR or AR, a convolutional neural network; CNN ), which analyzes the entire rendered image for each frame, for example as a postprocessor for effects such as de-noising. For this and other reasons, it may be preferable to use a CNN used to create an empirically optimized computational blur that is either conventional or includes ChromaBlur effects. Referring to 11 used to train such a network, a CNN computational blur technique 1100 a large set of images that are displayed without blurring, and a large number of accurately arithmetically blurred versions of these same images (block 1102 ). The CNN is trained using a pixel-based error metric between the CNN-generated output and the accurately defused examples (block 1104 ). That trained CNN is then operated for each frame over the entire rendered image (block 1106 ).

Ein Verfahren für ein vollständiges varifokales, kopfangebrachtes AnzeigesystemA procedure for a complete varifocal, head-mounted display system

Die hier beschriebenen rechnerischen Unschärfeverfahren können mit einer varifokalen kopfangebrachten Stereoanzeige und ein Augenverfolgungssystem kombiniert werden, um eine komfortable Benutzererfahrung zu erzeugen, die auf aktuellen kopfangebrachten Systemen nicht verfügbar ist.The computational blurring methods described here can be combined with a varifocal head-mounted stereo display and an eye tracking system to create a comfortable user experience that is not available on current head-mounted systems.

Das System kann mit einem Akkommodationsverfolgungssystem, wie beispielsweise eines, das auf einem Auto-Refraktor basiert, integriert sein. Dies ermöglicht dem rechnerischen Unschärfesystem, direkt gemessene Akkommodation und keine Akkommodation zu verwenden, die aus Konvergenz oder anderen Daten gefolgert wird. Das System kann ebenfalls auf varifokale Mehrebenensysteme erweitert werden, wobei weniger aggressive rechnerische Unschärfe benötigt wird.The system can be integrated with an accommodation tracking system, such as one based on an auto refractor. This enables the computational uncertainty system to use directly measured accommodation and not accommodation that is inferred from convergence or other data. The system can also be expanded to varifocal multi-level systems, whereby less aggressive computational fuzziness is required.

Bezugnehmend auf 12 empfängt ein varifokales kopfangebrachtes Anzeigesystemverfahren 1200 ein Bild (Block 1202). Der Fokus und die Konvergenz des Benutzers werden dann bestimmt (Block 1204). Das varifokale kopfangebrachte Anzeigesystemverfahren 1200 bestimmt, ob ein CNN arbeitet (Entscheidungsblock 1206). Wenn ja, wird das rechnerische CNN-Unschärfeverfahren 1100 benutzt, um ein unscharfes Bild auszugeben (Block 1212). Wenn nicht, bestimmt das varifokale kopfangebrachtes Anzeigesystemverfahren 1200, ob ein additives oder opakes Verfahren zu benutzen ist.Referring to 12 receives a varifocal head-mounted display system procedure 1200 an image (block 1202 ). The user's focus and convergence are then determined (block 1204 ). The varifocal head-mounted display system procedure 1200 determines whether a CNN works (decision block 1206 ). If so, the computational CNN blurring method 1100 used to output a blurred image (block 1212 ). If not, the varifocal head-mounted display system procedure determines 1200 whether an additive or opaque process should be used.

Wenn eine additive Technik zu benutzen ist (Entscheidungsblock 1208), wird das Skalenkategorien-Unschärfeverfahren 1000 benutzt, um ein unscharfes Bild auszugeben (Block 1212). Wenn eine opake Technik zu benutzen ist (Entscheidungsblock 1208), wählt das varifokale kopfangebrachte Anzeigesystemverfahren 1200 zwischen dem Dreikanal-Rechenunschärfealgorithmus 800 und dem Abgriffbasierten Verfahren 900 aus (Entscheidungsblock 1210), um ein unscharfes Bild auszugeben (Block 1212). Jedes Verfahren kann die Monte-Carlo-Strahlenverfolgung 600 und das Unschärfekern-Auswahlverfahren 700 während des Betriebs benutzen, wobei das varifokale kopfangebrachtes Anzeigesystemverfahren 1200 jedes selektiv anwendet.If an additive technique is to be used (decision block 1208 ), the scale category blurring method 1000 used to output a blurred image (block 1212 ). If an opaque technique is to be used (decision block 1208 ), chooses the varifocal head-mounted display system method 1200 between the three-channel computational blur algorithm 800 and the tap-based method 900 off (decision block 1210 ) to output a blurred image (block 1212 ). Any method can do Monte Carlo ray tracing 600 and the blur core selection process 700 use during operation using the varifocal head-mounted display system procedure 1200 each applies selectively.

13 ist ein Blockdiagramm einer Ausführungsform eines Rechensystems 1300, bei dem eine oder mehrere Aspekte der Erfindung implementiert werden können. Das Rechensystem 1300 umfasst einen Systemdatenbus 1332, eine CPU 1302, Eingabevorrichtungen 1308, einen Systemspeicher 1304, ein Graphikverarbeitungssystem 1306 und Anzeigevorrichtungen 1310. In alternativen Ausführungsformen können die CPU 1302, Abschnitte des Graphikverarbeitungssystems 1306, der Systemdatenbus 1332 oder eine beliebige Kombination davon in eine einzige Verarbeitungseinheit integriert werden. Ferner kann die Funktionalität des Graphikverarbeitungssystems 1306 in einem Chipsatz oder in einer anderen Art von Spezialzweck-Verarbeitungseinheit oder einem Coprozessor enthalten sein. 13 Figure 3 is a block diagram of one embodiment of a computing system 1300 , in which one or more aspects of the invention can be implemented. The computing system 1300 includes a system data bus 1332 , a CPU 1302 , Input devices 1308 , a system memory 1304 , a graphics processing system 1306 and display devices 1310 , In alternative embodiments, the CPU 1302 , Sections of the graphics processing system 1306 , the system data bus 1332 or any combination thereof can be integrated into a single processing unit. Furthermore, the functionality of the graphics processing system 1306 contained in a chipset or other type of special-purpose processing unit or coprocessor.

Wie gezeigt, verbindet der Systemdatenbus 1332 die CPU 1302, die Eingabevorrichtungen 1308, den Systemspeicher 1304 und das Graphikverarbeitungssystem 1306. In alternativen Ausführungsformen kann sich der Systemspeicher 1304 direkt mit der CPU 1302 verbinden. Die CPU 1302 empfängt Benutzereingaben von den Eingabevorrichtungen 1308, führt im Systemspeicher 1304 gespeicherte Programmieranweisungen aus, arbeitet mit den im Systemspeicher 1304 gespeicherten Daten und konfiguriert das Graphikverarbeitungssystem 1306, um spezifische Aufgaben in der Graphik-Pipeline durchzuführen. Der Systemspeicher 1304 umfasst typischerweise einen dynamischen Direktzugriffsspeicher (DRAM), der zum Speichern von Programmieranweisungen und Daten zur Verarbeitung durch die CPU 1302 und das Graphikverarbeitungssystem 1306 verwendet wird. Das Graphikverarbeitungssystem 1306 empfängt von der CPU 1302 gesendete Anweisungen und verarbeitet die Anweisungen zum Rendern und Anzeigen von Graphikbildern auf den Anzeigevorrichtungen 1310.As shown, the system data bus connects 1332 the CPU 1302 , the input devices 1308 , the system memory 1304 and the graphics processing system 1306 , In alternative embodiments, the system memory can be 1304 directly with the CPU 1302 connect. The CPU 1302 receives user input from the input devices 1308 , runs in system memory 1304 stored programming instructions, works with those in the system memory 1304 stored data and configured the graphics processing system 1306 to perform specific tasks in the graphics pipeline. The system memory 1304 typically includes a dynamic random access memory (DRAM) that is used to store programming instructions and data for processing by the CPU 1302 and the graphics processing system 1306 is used. The graphics processing system 1306 receives from the CPU 1302 instructions sent and processes the instructions for rendering and displaying graphic images on the display devices 1310 ,

Wie ebenfalls gezeigt, umfasst der Systemspeicher 1304 ein Anwendungsprogramm 1312, eine Anwendungsprogrammierschnittstelle (API; Application Programming Interface) 1314 und einen graphische Verarbeitungseinheit-Treiber 1316 (GPU-Treiber). Das Anwendungsprogramm 1312 erzeugt Aufrufe an die API 1314, um einen gewünschten Satz von Ergebnissen typischerweise in Form einer Sequenz von Graphikbildern zu erzeugen. Das Anwendungsprogramm 1312 überträgt auch null oder mehrere High-Level-Shading-Programme an die API 1314 zur Verarbeitung innerhalb des graphischen Verarbeitungseinheit-Treibers 1316. Die High-Level-Shading-Programme sind typischerweise Quell-Code-Text von High-Level-Programmieranweisungen, die ausgestaltet sind, um an einer oder mehreren Shading-Engines innerhalb des Graphikverarbeitungssystems 1306 zu arbeiten. Die Funktionalität der API 1314 ist typischerweise innerhalb des graphische Verarbeitungseinheit-Treibers 1316 implementiert. Der graphische Verarbeitungseinheit-Treiber 1316 ist konfiguriert, um die High-Level-Shading-Programme in Maschinencode- Shading-Programme zu übersetzen, die typischerweise für eine spezifische Art von Shading-Engine (z.B. Vertex, Geometrie oder Fragment) optimiert sind.As also shown, the system memory includes 1304 an application program 1312 , an application programming interface (API) 1314 and a graphics processing unit driver 1316 (GPU driver). The application program 1312 generates calls to the API 1314 to one to produce the desired set of results typically in the form of a sequence of graphic images. The application program 1312 also transfers zero or more high-level shading programs to the API 1314 for processing within the graphics processing unit driver 1316 , The high-level shading programs are typically source code text of high-level programming instructions that are designed to work on one or more shading engines within the graphics processing system 1306 to work. The functionality of the API 1314 is typically within the graphics processing unit driver 1316 implemented. The graphics processing unit driver 1316 is configured to translate the high-level shading programs into machine code shading programs, which are typically optimized for a specific type of shading engine (eg vertex, geometry or fragment).

Das Graphikverarbeitungssystem 1306 umfasst eine GPU 1318 (graphische Verarbeitungseinheit), einen On-Chip-GPU-Speicher 1322, einen On-Chip-GPU-Datenbus 1336, einen lokalen GPU-Speicher 1320 und einen GPU-Datenbus 1334. Die GPU 1318 ist konfiguriert, um mit dem On-Chip-GPU-Speicher 1322 über den On-Chip-GPU-Datenbus 1336 und mit dem lokalen GPU-Speicher 1320 über den GPU-Datenbus 1334 zu kommunizieren. Die GPU 1318 kann von der CPU 1302 gesendete Anweisungen empfangen, die Anweisungen verarbeiten, um Graphikdaten und Bilder zu rendern und diese Bilder in dem lokalen Speicher 1320 der GPU 1320 zu speichern. Anschließend kann die GPU 1318 bestimmte Graphikbilder, die in dem lokalen Speicher 1320 der GPU 1320 gespeichert sind, auf den Anzeigevorrichtungen 1310 anzeigen.The graphics processing system 1306 includes a GPU 1318 (graphics processing unit), an on-chip GPU memory 1322 , an on-chip GPU data bus 1336 , local GPU memory 1320 and a GPU data bus 1334 , The GPU 1318 is configured to use the on-chip GPU memory 1322 via the on-chip GPU data bus 1336 and with the local GPU memory 1320 via the GPU data bus 1334 to communicate. The GPU 1318 can from the CPU 1302 receive sent instructions, process the instructions to render graphics data and images, and these images in local memory 1320 the GPU 1320 save. Then the GPU 1318 certain graphic images that are in local memory 1320 the GPU 1320 are stored on the display devices 1310 Show.

Die GPU 1318 umfasst einen oder mehrere neue Logikblöcke 1324. Der Betrieb der neuen Logikblöcke 1324 wird vollständiger in Verbindung mit den vorherigen Figuren beschrieben.The GPU 1318 includes one or more new logic blocks 1324 , Operation of the new logic blocks 1324 is more fully described in connection with the previous figures.

Die GPU 1318 kann mit einer beliebigen Menge an On-Chip-GPU-Speicher 1322 und lokalem GPU-Speicher 1320, einschließlich keinem, ausgestattet sein und kann On-Chip-GPU-Speicher 1322, lokalen GPU-Speicher 1320 und Systemspeicher 1304 in beliebiger Kombination für Speicheroperationen einsetzen.The GPU 1318 can with any amount of on-chip GPU memory 1322 and local GPU memory 1320 , including none, and can be on-chip GPU memory 1322 , local GPU memory 1320 and system memory 1304 use in any combination for storage operations.

Der On-Chip-GPU-Speicher 1322 ist konfiguriert, um die GPU-Programmierung 1328 und den On-Chip-Puffer 1330 zu umfassen. Die GPU-Programmierung 1328 kann von dem Grafikverarbeitungseinheit-Treiber 1316 an den On-Chip-GPU-Speicher 1322 über den Systemdatenbus 1332 übertragen werden. Die GPU-Programmierung 1328 kann ein Maschinencode-Vertex-Shading-Programm, ein Maschinencode-Geometrie-Shading-Programm, ein Maschinencode-Fragment-Shading-Programm oder eine beliebige Anzahl von Variationen derselben beinhalten. Die On-Chip-Puffer 1330 werden typischerweise zum Speichern von Shading-Daten verwendet, die einen schnellen Zugriff erfordern, um die Latenz der Shading-Engines in der Graphik-Ppipeline zu verringern. Weil der On-Chip-GPU-Speicher 1322 wertvolle Die-Fläche beansprucht, ist er relativ teuer.The on-chip GPU memory 1322 is configured to GPU programming 1328 and the on-chip buffer 1330 to include. The GPU programming 1328 can from the graphics processing unit driver 1316 to the on-chip GPU memory 1322 via the system data bus 1332 be transmitted. The GPU programming 1328 may include a machine code vertex shading program, a machine code geometry shading program, a machine code fragment shading program, or any number of variations thereof. The on-chip buffer 1330 are typically used to store shading data that requires quick access to reduce the latency of the shading engines in the graphics pipeline. Because of the on-chip GPU memory 1322 occupies valuable die space, it is relatively expensive.

Der lokale Speicher 1320 der GPU umfasst typischerweise einen kostengünstigeren dynamischen Direktzugriffsspeicher (DRAM) außerhalb des Chips und wird auch zum Speichern von Daten und Programmen der GPU 1318 eingesetzt. Wie gezeigt, umfasst der lokale Speicher 1320 der GPU einen Frame-Puffer 1326. Der Frame-Puffer 1326 speichert Daten für mindestens eine 2D-Oberfläche, die zum Steuern der Anzeigevorrichtungen 1310 eingesetzt werden kann. Darüber hinaus kann der Frame-Puffer 1326 mehr als eine 2D-Oberfläche umfassen, so dass die GPU 1318 auf eine 2D-Oberfläche rendern kann, während eine zweite 2D-Oberfläche zum Steuern der Anzeigevorrichtungen 1310 verwendet wird.The local store 1320 The GPU typically includes a less expensive off-chip dynamic random access memory (DRAM) and is also used to store the GPU's data and programs 1318 used. As shown, the local storage includes 1320 the GPU uses a frame buffer 1326 , The frame buffer 1326 stores data for at least one 2D surface used to control the display devices 1310 can be used. In addition, the frame buffer 1326 include more than one 2D surface, so the GPU 1318 can render onto a 2D surface while a second 2D surface is used to control the display devices 1310 is used.

Die Anzeigevorrichtungen 1310 sind eine oder mehrere Ausgabevorrichtungen, die imstande sind, ein visuelles Bild auszugeben, das einem Eingangsdatensignal entspricht. So kann beispielsweise eine Anzeigevorrichtung mit einem Kathodenstrahlröhren(CRT)-Monitor, einer Flüssigkristallanzeige oder einem beliebigen anderen geeigneten Anzeigesystem aufgebaut sein. Die Eingangsdatensignale an die Anzeigevorrichtungen 1310 werden typischerweise durch Auslesen des Inhalts eines oder mehrerer Frames aus Bilddaten erzeugt, die in dem Frame-Puffer 1326 gespeichert sind.The display devices 1310 are one or more output devices capable of outputting a visual image corresponding to an input data signal. For example, a display device may be constructed with a cathode ray tube (CRT) monitor, a liquid crystal display, or any other suitable display system. The input data signals to the display devices 1310 are typically generated by reading the content of one or more frames from image data stored in the frame buffer 1326 are saved.

Zusätzliche Terminologie und Interpretation „Schaltungsanordnung“ bezieht sich in diesem Kontext auf eine elektrische Schaltungsanordnung mit zumindest einer diskreten elektrischen Schaltung, eine elektrische Schaltungsanordnung mit zumindest einer integrierten Schaltung, eine elektrische Schaltungsanordnung mit zumindest einer anwendungsspezifischen integrierten Schaltung, eine Schaltungsanordnung, die eine universelle Computervorrichtung bilden, die durch ein Computerprogramm konfiguriert ist (z.B. einen Universalcomputer, der durch ein Computerprogramm konfiguriert ist, welches zumindest teilweise Prozesse oder Vorrichtungen ausführt, die hierin beschrieben sind, oder einen Mikroprozessor, der durch ein Computerprogramm konfiguriert ist, das zumindest teilweise Prozesse oder Vorrichtungen ausführt, die hierin beschrieben sind), eine Schaltungsanordnung, die eine Speichervorrichtung bildet (z.B. Formen von Direktzugriffsspeichern), oder eine Schaltungsanordnung, die eine Kommunikationsvorrichtung bildet (z.B. ein Modem, eine Kommunikationsvermittlung oder eine optisch-elektrische Ausrüstung).Additional terminology and interpretation "circuit arrangement" in this context refers to an electrical circuit arrangement with at least one discrete electrical circuit, an electrical circuit arrangement with at least one integrated circuit, an electrical circuit arrangement with at least one application-specific integrated circuit, a circuit arrangement which form a universal computing device configured by a computer program (e.g., a general purpose computer configured by a computer program that at least partially executes processes or devices described herein, or a microprocessor configured by a computer program that executes at least partially processes or devices described herein), circuitry that forms a storage device (e.g., forms of random access memory), or circuitry that commu nicication device (e.g. a modem, a communication switch or an optical-electrical equipment).

„Firmware“ bezieht sich in diesem Kontext auf Softwarelogik, die als prozessorausführbare Anweisungen, die in schreibgeschützten Speichern oder Medien gespeichert sind, verkörpert ist.“Firmware” in this context refers to software logic that is embodied as processor-executable instructions that are stored in read-only memories or media.

„Hardware“ bezieht sich in diesem Kontext auf Logik, die als analoge oder digitale Schaltungsanordnung ausgeführt ist.In this context, “hardware” refers to logic that is designed as an analog or digital circuit arrangement.

„Logik“ bezieht sich in diesem Kontext auf maschinelle Speicherschaltungen, nichtflüchtige maschinenlesbare Medien und/oder Schaltungsanordnungen, die in ihrer Material- und/oder Material-Energie-Konfiguration Steuer- und/oder Verfahrenssignale und/oder Einstellungen und Werte (wie beispielsweise Widerstand, Impedanz, Kapazität, Induktivität, Strom-/Spannungswerte usw.) umfassen, die zur Beeinflussung eines Betriebsablaufs einer Vorrichtung angewendet werden können. Magnetische Medien, elektronische Schaltungen, elektrische und optische Speicher (sowohl flüchtige als auch nichtflüchtige) und Firmware sind Beispiele für Logik. Logik schließt insbesondere reine Signale oder Software ein sich aus (schließt jedoch Maschinenspeicher, die Software umfassen und dadurch Materiekonfigurationen bilden, nicht aus)."Logic" in this context refers to machine memory circuits, non-volatile machine-readable media and / or circuit arrangements, which in their material and / or material-energy configuration control and / or process signals and / or settings and values (such as resistance, Impedance, capacitance, inductance, current / voltage values, etc.) that can be used to influence an operation of a device. Magnetic media, electronic circuits, electrical and optical storage (both volatile and non-volatile) and firmware are examples of logic. Logic in particular includes pure signals or software (but does not exclude machine memories that include software and thereby form matter configurations).

„Software“ bezieht sich in diesem Kontext auf Logik, die als prozessorausführbare Anweisungen in einem Maschinenspeicher (z.B. Lesen/Schreiben von flüchtigen oder nichtflüchtigen Speichern oder Medien) implementiert ist).In this context, "software" refers to logic that is implemented as processor-executable instructions in machine memory (e.g. reading / writing volatile or non-volatile memories or media).

Dabei beziehen sich hier Bezugnahmen auf „ein Ausführungsbeispiel“ oder (allgemein) „ein Ausführungsbeispiel“ nicht unbedingt auf dasselbe Ausführungsbeispiel, auch wenn sie dies können. Sofern der Kontext nicht eindeutig etwas anderes erfordert, sind die Worte „umfassen“, „umfassend“ und dergleichen in einem inklusiven Sinne im Gegensatz zu einem exklusiven oder erschöpfenden Sinne auszulegen; das heißt, im Sinne von „einschließlich, aber nicht beschränkt auf“. Wörter, die den Singular oder den Plural verwenden, beinhalten auch den Plural oder den Singular, es sei denn, sie sind ausdrücklich auf ein Einzelnes oder ein Mehrfaches beschränkt. Darüber hinaus beziehen sich die Wörter „hier“, „vorstehend“, „nachstehend“ und Wörter von ähnlicher Bedeutung, wenn sie in dieser Anmeldung verwendet werden, auf diese Anmeldung als Ganzes und nicht auf irgendwelche bestimmten Teile dieser Anmeldung. Wenn die Ansprüche das Wort „oder“ in Bezug auf eine Liste von zwei oder mehreren Elementen verwenden, deckt dieses Wort alle der folgenden Auslegungen des Wortes ab: eines der Elemente in der Liste, alle Elemente in der Liste und jede Kombination der Elemente in der Liste, es sei denn, es wird ausdrücklich auf das eine oder andere beschränkt. Alle Begriffe, die hier nicht ausdrücklich definiert sind, weisen ihre konventionelle Bedeutung auf, wie sie vom Fachmann gemeinhin verstanden wird.Here, references to “one embodiment” or (in general) “one embodiment” do not necessarily refer to the same embodiment, even if they can. Unless the context clearly requires otherwise, the words “comprise”, “comprehensive” and the like are to be interpreted in an inclusive sense as opposed to an exclusive or exhaustive sense; that is, in the sense of "including but not limited to". Words that use the singular or the plural also include the plural or the singular, unless they are expressly limited to a single or a multiple. In addition, the words "here", "above", "below" and words of similar meaning, when used in this application, refer to this application as a whole and not to any specific parts of this application. When claims use the word "or" to refer to a list of two or more elements, that word covers all of the following interpretations of the word: one of the elements in the list, all elements in the list, and any combination of the elements in the List, unless it is explicitly limited to one or the other. All terms that are not expressly defined here have their conventional meaning as is commonly understood by those skilled in the art.

Verschiedene hier beschriebene logische Funktionsoperationen können in einer Logik implementiert sein, auf die mit einem Substantiv oder einer Substantivphrase Bezug genommen wird, welche die Operation oder die Funktion widerspiegelt. So kann beispielsweise eine Assoziationsoperation von einem „Assoziator“ oder „Korrelator“ durchgeführt werden. Ebenso kann ein Schalten von einem „Schalter“, ein Auswählen von einem „Wähler“ usw. durchgeführt werden.Various logical function operations described herein can be implemented in logic referenced by a noun or phrase that reflects the operation or function. For example, an association operation can be performed by an "associator" or "correlator". Switching from a "switch", selection from a "selector", etc. can also be carried out.

Claims (19)

System, umfassend: eine Anzeige, um mehrere virtuelle Objekte zu rendern; und eine Unschärferechenlogik, um ein rote Brennweite und ein blaue Brennweite zu jedem virtuellen Objekt basierend auf einer grünen Brennweite zu dem virtuellen Objekt zu berechnen und das virtuelle Objekt auf der Anzeige basierend auf einem Unschärferadius für jeweils die rote Brennweite, die blaue Brennweite und die grüne Brennweite unscharf zu machen.System comprising: a display to render multiple virtual objects; and blur computing logic to calculate a red focal length and a blue focal length for each virtual object based on a green focal length to the virtual object and the virtual object on the display based on a blur radius for the red focal length, blue focal length and green focal length, respectively to disarm. System gemäß Anspruch 1, wobei die Unschärferechenlogik einen Monte-Carlo-Strahlenverfolgung-Algorithmus benutzt, der eine Raycasting-Richtung unter Benutzung eines Punkts entlang einer Linie durch sowohl eine Mitte eines dünnen Linsen-Modells als auch einen Konvergenzpunkt für grüne Strahlen des virtuellen Objekts einstellt.System according to Claim 1 The blurring logic uses a Monte Carlo ray tracing algorithm that sets a raycasting direction using a point along a line through both a center of a thin lens model and a convergence point for green rays of the virtual object. System gemäß Anspruch 2, wobei der Monte-Carlo-Strahlenverfolgung-Algorithmus ferner einen Punkt hinter dem dünnen Linsen-Modell an der roten Brennweite benutzt, um die Raycasting-Richtung einzustellen.System according to Claim 2 The Monte Carlo ray tracing algorithm also uses a point behind the thin lens model at the red focal length to adjust the raycasting direction. System gemäß Anspruch 2 oder 3, wobei das dünne Linsen-Modell einen Linsendurchmesser A und ein Blickpunkt z=0 umfasst, und für eine grüne Brennweite z=d ein Durchmesser C des Unschärferadius in Welt-Raum für ein virtuelles Objekt im Abstand z ist: C = A | z d | / d .
Figure DE102019121803A1_0007
System according to Claim 2 or 3 , the thin lens model comprising a lens diameter A and a viewpoint z = 0, and for a green focal length z = d a diameter C of the unsharpness radius in world space for a virtual object at a distance z: C = A | z - d | / d ,
Figure DE102019121803A1_0007
System gemäß einem der Ansprüche 2 bis 4, wobei die rechnerische Unschärfelogik angepasst ist, um: N Ebenen einer Szene abzutasten, welche die virtuellen Objekte umfassen, wobei jede der N Ebenen einem Grad von Unschärfe zugeordnet ist, um virtuelle Objekte in der Ebene anzuwenden, wobei der Grad von Ebene zu Ebene variiert; den Monte-Carlo-Strahlenverfolgung-Algorithmus für jedes virtuelle Objekt in jeder der N Ebenen anzuwenden; einen Unschärferadius für jedes virtuelle Objekt in jeder der N Ebenen basierend auf dem variierenden Grad von Unschärfe zu berechnen, der für die Ebene anzuwenden ist; jeden Strahl des Monte-Carlo-Strahlenverfolgung-Algorithmus für jede der N Ebenen in einem gerenderten Pixel additiv zu überblenden; und einen Beitrag von jedem Strahl basierend auf einer Differenz zwischen einem gewünschten Unschärferadius für die Ebene und einem konfigurierten Unschärferadius für die Ebene zu skalieren.System according to one of the Claims 2 to 4 , wherein the computational blur logic is adapted to: scan N planes of a scene that comprise the virtual objects, each of the N planes being associated with a degree of blur to virtual Apply objects in the layer, with the degree varying from layer to layer; apply the Monte Carlo ray tracing algorithm to each virtual object in each of the N planes; calculate a blur radius for each virtual object in each of the N planes based on the varying degree of blur to be applied to the plane; additively blending each beam of the Monte Carlo ray tracing algorithm for each of the N planes in a rendered pixel; and scale a contribution from each beam based on a difference between a desired blur radius for the plane and a configured blur radius for the plane. System gemäß Anspruch 5, wobei die Unschärferechenlogik einen Unschärferadius für jeden Farbkanal des virtuellen Objekts unabhängig von einem Unschärferadius für die anderen Farbkanäle des virtuellen Objekts berechnet und den Unschärferadius für jeden Farbkanal parallel berechnet.System according to Claim 5 , wherein the blurring arithmetic logic calculates a blurring radius for each color channel of the virtual object independently of a blurring radius for the other color channels of the virtual object and calculates the blurring radius for each color channel in parallel. System gemäß Anspruch 5 oder 6, wobei N=4.System according to Claim 5 or 6 , where N = 4. System gemäß einem der Ansprüche 5 bis 7, wobei die Ebenen zwischen einem Unschärferadius von r=0 und r=15 linear beabstandet sind.System according to one of the Claims 5 to 7 , the planes being linearly spaced between a blur radius of r = 0 and r = 15. System gemäß einem der Ansprüche 5 bis 8, bei dem Ebenen Tiefenebenen, Frame-Puffer-Kacheln, Gleitfenster, komplette Frame-Puffer sein können.System according to one of the Claims 5 to 8th , where layers can be depth layers, frame buffer tiles, sliding windows, complete frame buffers. System gemäß einem der Ansprüche 5 bis 9, wobei die Unschärferechenlogik jede Ebene mit zwei eindimensionalen Gauß‘schen Durchläufen unscharf macht, um den gewünschten Unschärferadius zu approximieren.System according to one of the Claims 5 to 9 , whereby the blurring arithmetic logic blurs each level with two one-dimensional Gaussian passes to approximate the desired blurring radius. System gemäß Anspruch 10, wobei eine Gauß‘sche Standardabweichung für die eindimensionalen Gauß‘schen Durchläufe R/2 approximiert.System according to Claim 10 , where a Gaussian standard deviation approximates R / 2 for the one-dimensional Gaussian runs. System gemäß einem der vorangehenden Ansprüche, wobei die Unschärferechenlogik einen Bildschirmraumtiefenabhängigen Unschärfekern für das virtuelle Objekt dynamisch auswählt.System according to one of the preceding claims, wherein the unsharpness calculation logic dynamically selects a screen space depth-dependent unsharpness core for the virtual object. System gemäß Anspruch 12, wobei für jeden Farbkanal des virtuellen Objekts die Unschärferechenlogik: einen Radius R einer Echtweltpunktverbreitungsfunktion bestimmt, der von einem Betrachter erfahren werden würde; einen Radius R' der Punktverbreitungsfunktion bestimmt, der von dem Betrachter in einem festen optischen Abstand von der Anzeige erfahren werden würde; R und R' vergleicht; und unter der Vorrausetzung, dass R > R', zusätzliche Unschärfe auf das virtuelle Objekt unter Verwendung eines Radius R" anlegt, der gegeben wird durch: R " = s q r t ( R * R R ' * R ' ) .
Figure DE102019121803A1_0008
System according to Claim 12 , wherein for each color channel of the virtual object the uncertainty calculation logic: determines a radius R of a real world point spread function that would be experienced by an observer; determines a radius R 'of the point spread function that would be experienced by the viewer at a fixed optical distance from the display; Compares R and R '; and provided that R> R 'applies additional blur to the virtual object using a radius R "given by: R " = s q r t ( R * R - R ' * R ' ) ,
Figure DE102019121803A1_0008
System gemäß Anspruch 13, wobei unter der Vorrausetzung, dass R < R', die Unschärferechenlogik das Rendering des virtuellen Objekts auf der Anzeige für jeden Farbkanal des virtuellen Objekts schärft.System according to Claim 13 , provided that R <R ', the unsharpness logic sharpens the rendering of the virtual object on the display for each color channel of the virtual object. System gemäß Anspruch 13 oder 14, wobei die Unschärferechenlogik eine Unschärfemaske anwendet, die gegeben wird durch: I m a g e = K * I m a g e ( K 1 ) * I m a g e _ b l u r r e d _ b y _ f i l t e r
Figure DE102019121803A1_0009
wobei K ungefähr gleich 2 ist.
System according to Claim 13 or 14 , whereby the unsharpness calculation logic applies an unsharpness mask, which is given by: I m a G e = K * I m a G e - ( K - 1 ) * I m a G e _ b l u r r e d _ b y _ f i l t e r
Figure DE102019121803A1_0009
where K is approximately equal to 2.
System gemäß einem der vorangehenden Ansprüche, wobei die Unschärferechenlogik das virtuelle Objekt im Bildschirmraum basierend auf einer optischen Tiefe des virtuellen Objekts unscharf macht, wobei die teilweise Transparenz der virtuellen Objekte berücksichtigt wird, die das virtuelle Objekt im Bildschirmraum verdecken.System according to one of the preceding claims, wherein the unsharpness calculation logic blurs the virtual object in the screen space based on an optical depth of the virtual object, taking into account the partial transparency of the virtual objects that cover the virtual object in the screen space. System gemäß einem der vorangehenden Ansprüche, wobei die Unschärferechenlogik durch die virtuellen Objekte läuft, wobei bestimmt wird, ob sie Nahfeld, Fernfeld oder im Fokus für jeden Farbkanal sind, und einen unterschiedlichen Grad von Unschärfe auf jeden Farbkanal anwendet.A system according to any one of the preceding claims, wherein the blur computing logic passes through the virtual objects, determining whether they are near field, far field or in focus for each color channel, and applying a different degree of blurring to each color channel. System gemäß einem der vorangehenden Ansprüche, wobei die Unschärferechenlogik einen Unschärferadius für jeden Farbkanal parallel berechnet.System according to one of the preceding claims, wherein the unsharpness calculation logic calculates an unsharpness radius for each color channel in parallel. System gemäß einem der vorangehenden Ansprüche, wobei die Unschärferechenlogik Abgriffe in einem größten gewünschten Unschärferadius für jeden Farbkanal des virtuellen Objekts abtastet, und nur Abgriffe auswählt, die innerhalb eines gewünschten Unschärferadius für einen Farbkanal sind, und für jeden Farbkanal ausgewählte Abgriffe mittelt.A system according to any one of the preceding claims, wherein the blur computing logic samples taps in a largest desired blur radius for each color channel of the virtual object, and selects only taps that are within a desired blur radius for a color channel and averages selected taps for each color channel.
DE102019121803.9A 2018-08-27 2019-08-13 CALCULAR BLURRES FOR VARIFOCAL DISPLAYS Pending DE102019121803A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862723035P 2018-08-27 2018-08-27
US62/723,035 2018-08-27
US16/215,355 US10699383B2 (en) 2018-08-27 2018-12-10 Computational blur for varifocal displays
US16/215,355 2018-12-10

Publications (1)

Publication Number Publication Date
DE102019121803A1 true DE102019121803A1 (en) 2020-02-27

Family

ID=69413186

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019121803.9A Pending DE102019121803A1 (en) 2018-08-27 2019-08-13 CALCULAR BLURRES FOR VARIFOCAL DISPLAYS

Country Status (1)

Country Link
DE (1) DE102019121803A1 (en)

Similar Documents

Publication Publication Date Title
DE102013114542B4 (en) Display close to the eye with parallax lock
DE102013114518B4 (en) Displays close to the eye with optical deconvolution
DE112014002469B4 (en) System and method for generating images for a near-eye light field display
DE102013114527B4 (en) Close-to-eye display with a microlens array
EP1784978B1 (en) Method and device for representing a digital image on a surface which is non-trivial in terms of its geometry and photometry
DE60117432T2 (en) Method and device for simulating an optical eyepiece system
DE102017205340A1 (en) PROJECTION DISPLAY DEVICE FOR A VEHICLE
WO2005029871A2 (en) Method for creating a stereoscopic image master for imaging methods with three-dimensional depth rendition and device for displaying a stereoscopic image master
DE102016109905A1 (en) Piecewise linear irregular rasterization
DE102017107664A1 (en) Image display device for displaying an image, image display method for displaying an image and storage medium
DE10204500A1 (en) Real-time detection and compensation method for lighting fluctuations in digital color image signals
DE60114498T2 (en) Presentation of the performance of a spectacle lens by an index display in a visually understandable way
DE102016223908A1 (en) Projection display system and method for operating a projection display system
DE60206342T2 (en) Method for assessing the binocular properties of spectacle lenses, device for displaying these properties and associated apparatus
EP2528042B1 (en) Method and device for the re-meshing of 3D polygon models
DE102010028668A1 (en) Method for spatial representation
DE102013020611B4 (en) An approach to camera control
DE102019121803A1 (en) CALCULAR BLURRES FOR VARIFOCAL DISPLAYS
DE112015006086T5 (en) Image processing apparatus, image display apparatus and image processing method
DE19537499C2 (en) Autostereoscopic image display device
DE102012108249A1 (en) Method for processing digital images of stereoscopic camera system, involves receiving two images from two partial cameras of stereoscopic camera system and determining disparities of same image elements between two images
EP4008105B1 (en) Method and device for an adaptive disparity control
DE102013105638B4 (en) Increase of perceptual image resolution
DE102018102468A1 (en) Eyepiece for virtual imaging of an image and imaging device with such an eyepiece
DE10348618B4 (en) Stereoscopic image master creation method e.g. for creating image from two-dimensional image data, involves creating virtual three-dimensional image structure based on assumed three-dimensional gradation of image depth

Legal Events

Date Code Title Description
R012 Request for examination validly filed