DE102016116582A1 - Method and apparatus for displaying augmented reality - Google Patents

Method and apparatus for displaying augmented reality Download PDF

Info

Publication number
DE102016116582A1
DE102016116582A1 DE102016116582.4A DE102016116582A DE102016116582A1 DE 102016116582 A1 DE102016116582 A1 DE 102016116582A1 DE 102016116582 A DE102016116582 A DE 102016116582A DE 102016116582 A1 DE102016116582 A1 DE 102016116582A1
Authority
DE
Germany
Prior art keywords
virtual
target
scene
information
image
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.)
Withdrawn
Application number
DE102016116582.4A
Other languages
German (de)
Inventor
Benjamin Bayer
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.)
Bbit Solutions Ug Haftungsbeschraenkt
Bbit-Solutions Ug (haftungsbeschrankt)
Original Assignee
Bbit Solutions Ug Haftungsbeschraenkt
Bbit-Solutions Ug (haftungsbeschrankt)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bbit Solutions Ug Haftungsbeschraenkt, Bbit-Solutions Ug (haftungsbeschrankt) filed Critical Bbit Solutions Ug Haftungsbeschraenkt
Priority to DE102016116582.4A priority Critical patent/DE102016116582A1/en
Publication of DE102016116582A1 publication Critical patent/DE102016116582A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Abstract

Bereitgestellt wird demnach ein Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein erstes AR-Gerät, auf der Basis eines Bildes ein Ausschnitt des Bildes als ein Target definiert wird und von dem Ausschnitt des Bildes Informationen abgeleitet werden, welche für das Target beschreibend sind, und wobei zumindest ein virtuelles dreidimensionales Container-Objekt initialisiert und mit einer Lageangabe versehen wird, wobei die Lageangabe eine geometrische Relation zu dem Target aufweist und wobei die für das Target beschreibende Informationen, eine Informationen, die für das zumindest eine virtuelle Container-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes durch das erste AR-Gerät bereitgestellt wird und, über eine Kommunikationsverbindung, zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein zweites AR-Gerät bereitgestellt wird.Thus, there is provided a computer-implemented method of presenting augmented reality based on images of a real three-dimensional scene, wherein, by a first AR device, based on an image, a section of the image is defined as a target and of the section deriving information that is descriptive of the target, and wherein at least one virtual three-dimensional container object is initialized and provided with a position indication, wherein the position statement has a geometric relation to the target and wherein the information describing the target, a Information indicative of the at least one virtual container object and the location indication for the AR-like display of the container object is provided by the first AR device and, via a communication link, for the AR display of the container object for provided at least a second AR device becomes.

Description

Die Technik der erweiterten Realität ("Augmented Reality") gibt einem Nutzer die technische Möglichkeit, auf einem Anzeigegerät (Smartphone, Tablet, ...) virtuelle Objekte in reale Bilder einzublenden, so dass in der visuellen Vorstellung des Betrachters ein gemischtes Bild von virtuellen und realen Elementen, virtuelle oder AR-Szene genannt, entsteht. Man kann auch sagen, dass die virtuellen Objekte wie eine Art Hologramm wirken, die nur durch ein bestimmtes "Fenster" (in diesem Fall das Display z.B. eines Smartphones) betrachtet werden können. Aus dem Stand der Technik sind ähnliche bzw. verwandte Anwendungen bereits bekannt und es gibt bereits verschiedene Ansätze. Meist wird dafür ein bereits zuvor im realen Bild definiertes Target verwendet, das besonders gut maschinell erkennbare visuelle Merkmale enthält (z.B. ein QR-Code). Auf diesem Target werden dann virtuelle Objekte "platziert". Das Target dient also als Anhaltspunkt für die virtuellen Objekte innerhalb der virtuellen Szene.The Augmented Reality technique gives a user the technical possibility of displaying virtual objects in real images on a display device (smartphone, tablet, ...) so that a mixed image of virtual reality can be seen in the visual perception of the viewer and real elements, called virtual or AR scene arises. It can also be said that the virtual objects act as a kind of hologram, which can only be viewed through a specific "window" (in this case the display of, for example, a smartphone). From the prior art similar or related applications are already known and there are already various approaches. In most cases, a target previously defined in the real image is used for this, which contains particularly well machine-recognizable visual features (for example a QR code). Virtual objects are then "placed" on this target. The target thus serves as a reference point for the virtual objects within the virtual scene.

Außerdem gibt es bereits die Möglichkeit, den Nutzer ein eigenes Target je nach aktueller Umgebung definieren zu lassen. Dafür macht er ein Foto von einem physisch existierenden Objekt, das er als Target nutzen möchte, und nimmt das Target dann direkt als Fixpunkt für seine virtuellen Objekte. Je nach verwendetem Framework wird diese Technik als “User-Defined-Target” (UDT) oder auch “Target On The Fly” bezeichnet. Dieser Ansatz wird in der vorliegenden Erfindung aufgegriffen. In addition, there is already the possibility to let the user define his own target according to the current environment. He takes a photo of a physically existing object that he wants to use as a target and then takes the target directly as a fixed point for his virtual objects. Depending on the framework used, this technique is referred to as a "user defined target" (UDT) or "target on the fly". This approach is taken up in the present invention.

Die virtuellen Objekte sind in bekannten Anwendungen meistens irgendwelche statischen Objekte, die die Umwelt erweitern, z.B. für ergänzende Informationen oder Veranschaulichungen.The virtual objects in known applications are mostly any static objects that enhance the environment, e.g. for additional information or illustrations.

Als Multi-User- bzw. Multiplayer-AR-Anwendungen gibt es Spiele wie z.B. Schnitzeljagden (z.B. "Pokémon Go") durch Städte, bei denen die Spielteilnehmer bestimmte Orte finden müssen, diese mit der Kamera des Smartphones fokussieren und dann z.B. Schätze in Form virtueller Objekte angezeigt bekommen. Oftmals werden die virtuellen Objekte dafür einfach nur über das aktuelle Kamerabild gelegt, sobald der Spieler einen bestimmten geographischen Standort erreicht hat. As multi-user or multiplayer AR applications, there are games like e.g. Scavenger hunts (e.g., "Pokémon Go") through cities where game participants must find certain locations, focus them with the camera of the smartphone and then, e.g. Treasures get displayed in the form of virtual objects. Often the virtual objects are simply placed over the current camera image as soon as the player has reached a certain geographic location.

Anstatt eines Smartphones kann auch jedes weitere Gerät genutzt werden, das ein Display, eine Kamera und eine Datenkommunikationsschnittstelle besitzt (z.B. Tablets oder Wearables wie z.B. die "Google Glass"-Brille oder das Project Tango). Im Folgenden werden all diese Geräte allgemein als “AR-Geräte” bezeichnet.Instead of a smartphone, any other device may be used that has a display, a camera, and a data communication interface (e.g., tablets or wearables such as the "Google Glass" goggle or the Project Tango). In the following, all these devices are commonly referred to as "AR devices".

Mit den bisherigen AR-Anwendungen können Nutzer allerdings nicht interaktiv mit auf andere Nutzer bezogenen virtuellen Objekten (Spieler-Objekt) in der AR-Szene kommunizieren bzw. interagieren. Jedem Nutzer wird nur bezogen auf seine aktuelle Position (per GPS ermittelt) ein Bild angezeigt, das von seiner Position und Perspektive aus Sinn macht.However, with previous AR applications, users can not communicate interactively with virtual user-related objects (player object) in the AR scene. Each user is only shown in relation to his current position (determined by GPS) an image that makes sense from its position and perspective.

Andere Nutzer sehen auch nur das virtuelle Objekt jeweils eingeblendet in ihr Kamerabild. Wenn sich aber z.B. das virtuelle Objekt zu einem Spieler hin dreht oder anderweitig bewegt, hat das keine direkte Auswirkung auf das, was die anderen Nutzer auf ihren AR-Devices angezeigt bekommen.Other users also see only the virtual object displayed in their camera image. However, if, for example, turning the virtual object toward a player or otherwise moving it has no direct effect on what the other users see on their AR devices.

Auch die "virtuelle Physik" ist auf jedem Gerät etwas unterschiedlich, falls z.B. virtuelles Licht (oder auch Wind o.ä.) für die virtuelle Szene genutzt wird.Also, the "virtual physics" is slightly different on each device, if e.g. virtual light (or wind or similar) is used for the virtual scene.

Auch werden dort nicht die aktuellen Umweltbedingungen (wie Tageszeit, Wetter, ...) und Lichtverhältnisse beachtet.Also, the current environmental conditions (such as time of day, weather, ...) and lighting conditions are not considered there.

Es ist insgesamt gesehen also nicht möglich, die Elemente in der erweiterten Realität durch einen Nutzer auf seinem AR-Gerät so zu beeinflussen, dass auch andere Nutzer sie direkt (in Echtzeit) auf ihren AR-Geräten sehen können. Thus, on the whole, it is not possible to influence the elements in augmented reality by a user on their AR device so that other users can see them directly (in real time) on their AR devices.

Aufgabe ist es also, Verfahren und Vorrichtungen bereitzustellen, welche diese Nachteile zumindest teilweise beheben.The object is thus to provide methods and devices which at least partially overcome these disadvantages.

Diese Aufgabe wird durch das Verfahren und die Vorrichtung gemäß den unabhängigen Ansprüchen gelöst. Vorteilhafte Weiterbildungen sind in den abhängigen Ansprüchen definiert.This object is achieved by the method and apparatus according to the independent claims. Advantageous developments are defined in the dependent claims.

Bereitgestellt wird demnach ein Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein erstes AR-Gerät, auf der Basis eines Bildes ein Ausschnitt des Bildes als ein Target definiert wird und von dem Ausschnitt des Bildes Informationen abgeleitet werden, welche für das Target beschreibend sind, und wobei zumindest ein virtuelles dreidimensionales Container-Objekt initialisiert und mit einer Lageangabe versehen wird, wobei die Lageangabe eine geometrische Relation zu dem Target aufweist und wobei die für das Target beschreibende Informationen, eine Informationen, die für das zumindest eine virtuelle Container-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes durch das erste AR-Gerät bereitgestellt wird und, über eine Kommunikationsverbindung, zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein zweites AR-Gerät bereitgestellt wird. Accordingly, what is provided is a computer-implemented method for presenting augmented reality based on images of a real three-dimensional scene, wherein, defined by a first AR device, on the basis of an image, a section of the image as a target and derived from the section of the image information that is descriptive of the target, and wherein at least one virtual three-dimensional Container object is initialized and provided with a location specification, wherein the location statement has a geometric relation to the target and wherein the information describing the target, information indicative of the at least one virtual container object, and the location indication to the AR The container device is provided by the first AR device and is provided, via a communication link, for the AR display of the container object for at least one second AR device.

Ebenfalls bereitgestellt wird ein Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein zweites AR-Gerat, Informationen, welche für ein Target beschreibend sind, und Informationen, die für zumindest ein mit einer Lageangabe versehenes virtuelles Container-Objekt bezeichnend sind, wobei die Lageangabe eine geometrische Relation zu dem Target aufweist, über eine Kommunikationsverbindung von einem ersten AR-Gerät kommend empfangen werden und auf der Basis der empfangenen Informationen das Target in Bildern, aufgenommen durch das zweite AR-Gerät, fokussiert wird und das virtuelle Container-Objekt entsprechend der Relation AR-mäßig angezeigt wird. Vorteilhafte Weiterbildungen der Erfindung können folgende Merkmale umfassen.Also provided is a computer-implemented method of presenting augmented reality based on images of a real three-dimensional scene, wherein, by a second AR-device, information that is descriptive of a target, and information that is suitable for at least one The position statement has a geometric relation to the target, is received via a communication connection coming from a first AR device and, based on the received information, the target in images, recorded by the second AR. Device, is focused and the virtual container object according to the relation AR-moderately displayed. Advantageous developments of the invention may include the following features.

Durch ein AR-Gerät kann zumindest ein virtuelles dreidimensionales Nutzer-Objekt initialisiert werden und mit einer Lageangabe versehen werden, wobei die Lageangabe eine geometrische Relation zu der Lageangabe des Container-Objekts aufweist, wobei das zumindest eine dreidimensionale Nutzer-Objekt durch das AR-Gerät gesteuert wird und Informationen, die für das zumindest eine virtuelle Nutzer-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige durch das AR-Gerät bereitgestellt wird und zur Anzeige des Nutzer-Objektes für zumindest ein weiteres AR-Gerät bereitgestellt werden.By means of an AR device, at least one virtual three-dimensional user object can be initialized and provided with a position specification, the position specification having a geometric relation to the position specification of the container object, wherein the at least one three-dimensional user object is detected by the AR device is controlled and information indicative of the at least one virtual user object, and the location indication for AR-moderate display is provided by the AR device and provided for displaying the user object for at least one further AR device.

Vorteilhaft ist, wenn die Bereitstellung in Echtzeit erfolgt. It is advantageous if the provision is made in real time.

Vorteilhaft ist ferner, wenn das Container-Objekt mit einer Wurzel-Eigenschaft einer vorbestimmten hierarchischen Relation versehen wird und zumindest ein virtuelles Objekt mit der vorbestimmten hierarchischen Relation zu einem weiteren virtuellen Objekt versehen wird, wobei die Wurzel auf höchster Hierarchieebene angeordnet ist, derart, dass die mit einer hierarchischen Relation versehenen virtuellen Objekte zusammen mit dem Wurzel-Objekt eine hierarchische Baumstruktur repräsentieren.It is also advantageous if the container object is provided with a root property of a predetermined hierarchical relation and at least one virtual object is provided with the predetermined hierarchical relation to another virtual object, wherein the root is arranged at the highest hierarchical level such that the virtual objects provided with a hierarchical relation together with the root object represent a hierarchical tree structure.

Die vorbestimmte hierarchische Relation kann "ist untergeordnet" umfassen.The predetermined hierarchical relation may include "is subordinate".

Jede Lageangabe kann zumindest eines von Ortsangabe, Orientierung und Skalierung des Objekts in der Szene umfassen, besonders vorteilhafterweise alle drei.Each location indication may include at least one of location, orientation, and scale of the object in the scene, most preferably all three.

Das dreidimensionale Objekt kann eine Beschreibung zur Darstellung des Gegenstandes durch ein AR-Gerät enthalten.The three-dimensional object may include a description for representing the article by an AR device.

Die AR-Darstellung kann durch optische Überlagerung der mittels einer virtuellen Kamerafunktion dargestellten virtuellen Objekte und dem mittels einer realen Kamerafunktion erfassten Bild der Szene gewonnen werden, wobei die virtuelle Kamerafunktion der realen Kamerafunktion hinsichtlich Brennweite und Perspektive gleicht.The AR representation can be obtained by optical superimposition of the virtual objects represented by a virtual camera function and the image of the scene acquired by means of a real camera function, the virtual camera function being similar to the real camera function in terms of focal length and perspective.

Vorteilhaft ist ferner, wenn, durch ein zweites AR-Gerät, das Target auf Basis der bereitgestellten Target-Informationen in einem Bild identifiziert und mit der realen Kamerafunktion fokussiert wird.It is also advantageous if, by means of a second AR device, the target is identified on the basis of the provided target information in an image and focused with the real camera function.

Jedes virtuelle Objekt in der Szene kann (in der AR-Szene) durch Änderung der Lageangabe mittels eines AR-Gerätes bewegt werden.Each virtual object in the scene can be moved (in the AR scene) by changing the position indication by means of an AR device.

Vorteilhafterweise kann nicht nur die Bewegung sondern auch jede andere Interaktion (z.B. Farbänderung eines Objekts) mittels des AR-Gerätes bewirkt werden.Advantageously, not only the movement but also any other interaction (e.g., color change of an object) may be effected by the AR device.

Hierbei kann sowohl das Nutzer-bezogene Objekt als auch das gemeinsam genutzte Objekt gesteuert werden.In this case, both the user-related object and the shared object can be controlled.

Besonders vorteilhaft ist, dass bei einer Bewegung eines virtuellen Objektes jedes Objekt mitbewegt wird, das in der hierarchischen Struktur von der Wurzel aus betrachtet hinter/unter dem bewegten Objekt angeordnet ist.It is particularly advantageous that during a movement of a virtual object each object is moved, which is arranged in the hierarchical structure from the root behind / below the moving object.

Vorteilhaft ist, wenn, durch das erste AR-Gerät, ein erster Server initialisiert wird, der definiert, für wie viele AR-Geräte die Szene abrufbar bereitgehalten wird, Netzwerk-Information sowie Informationen bereitstellt, welche beschreibend für ein Spiel sind, für das die Objekte bereitgestellt werden. It is advantageous if, by the first AR device, a first server is initialized which defines for how many AR devices the scene is retrievably kept available, provides network information as well as information which is descriptive of a game for which the Objects are provided.

Der erste Server kann Informationen zum Synchronisieren der Positionen und/oder weiterer Anwendungs-relevanter Informationen aller Objekte der Szene zum, Abruf durch zumindest ein AR-Gerät bereitstellen.The first server may provide information for synchronizing the locations and / or other application-relevant information of all objects of the scene for retrieval by at least one AR device.

Vorteilhaft ist auch, dass durch das erste AR-Gerät ein zweiter Server initialisiert wird, der die für das Target beschreibende Informationen, die Information, die für das zumindest eine virtuelle Container-Objekt bezeichnend ist, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein AR-Gerät zum Abruf durch zumindest ein AR-Gerät bereitstellt. Vorteilhafterweise kann der zweite Server auf dem ersten AR-Gerät laufen.It is also advantageous that a second server is initialized by the first AR device, which describes the information describing the target, the information that is indicative of the at least one virtual container object, and the position indication for the AR-moderate display of the container Object for at least one AR device for retrieval by at least one AR device. Advantageously, the second server can run on the first AR device.

Vorteilhaft ist, wenn Lageunterschiede und/oder Änderungen weiterer Spiel- bzw. Anwendungs-relevanter Informationen in Echtzeit bereitgestellt werden.It is advantageous if positional differences and / or changes of further game or application-relevant information are provided in real time.

Vorteilhaft ist auch, wenn, durch das zumindest eine weitere AR-Gerät, zunächst Broadcast-Daten empfangen werden, welche Informationen enthalten, um das erste AR-Gerät im Netzwerk zu finden, und um das AR-Gerät mit den Servern zu verbinden.It is also advantageous if, by the at least one further AR device, first broadcast data are received, which contain information to find the first AR device in the network, and to connect the AR device with the servers.

Vorteilhaft ist ferner, wenn durch das erste AR-Gerät ein dritter Server initialisiert wird, der Broadcastdaten aussendet. It is also advantageous if a third server, which broadcasts broadcast data, is initialized by the first AR device.

Wenn die Server auf einem und demselben AR-Gerät (also z.B. auf dem ersten Gerät), können sie gemeinsam während eines Spieles/während des Betriebs auf ein weiteres AR-Gerät im Netzwerk übertragen werden, sollte das eine Gerät ausfallen oder der Nutzer aus dem Spiel ausscheiden wollen. If the servers on one and the same AR device (eg on the first device), they can be transferred together during a game / during operation on another AR device on the network, the one device should fail or the user from the Want to retire.

Vorteilhaft ist, wenn durch das zumindest eine weitere AR-Gerät, die Target-Informationen abgerufen werden und basierend hierauf das Target-Objekt angezeigt wird.It is advantageous if the target information is retrieved by the at least one further AR device and the target object is displayed based thereon.

Vorteilhaft ist ferner, wenn ein Container erstellt, Spiele-Objekte erzeugt, weitere Objekte lokal erzeugt und in der lokalen Szene angezeigt werden und mit dem Server synchronisiert werden.It is also advantageous if a container is created, game objects are generated, further objects are generated locally and displayed in the local scene and synchronized with the server.

Bei einer besonders vorteilhaften Ausführungsform ist vorgesehen, dass, wenn das Target im Bild optisch aus dem Fokus eines AR-Gerätes gerät, zwecks Unsichtbarmachung des dem AR-Gerät zugeordneten Spielerobjekts dieses Spielerobjekt durch das AR-Gerät eine Lageangabe zugewiesen erhält, welche einer für alle übrigen AR-Geräte unsichtbaren Position in der Szene entspricht.In a particularly advantageous embodiment it is provided that, if the target in the image optically out of focus of an AR device, for the purpose of invisible the player assigned to the AR device player object this player object assigned by the AR device assigned a location indication, which one for all remaining AR devices corresponds to invisible position in the scene.

Ebenfalls vorgesehen ist, dass, wenn das Target im Bild optisch aus dem Fokus eines AR-Gerätes gerät, auf dem AR-Gerät das Container-Objekt eine Lageangabe zugewiesen erhält, die einer für das AR-Gerät unsichtbaren Position in der Szene entspricht.It is also provided that when the target in the image optically out of focus of an AR device, the container object receives a position indication assigned on the AR device, which corresponds to an invisible to the AR device position in the scene.

Vorteilhaft ist auch, wenn, insbesondere während des Aufzeichnens des Bildes, das Target mittels einer Lichtquelle aufgehellt wird.It is also advantageous if, in particular during the recording of the image, the target is brightened by means of a light source.

Die Erfindung umfasst auch ein Programm, insbesondere App, das, wenn von einer elektronischen Verarbeitungseinrichtung ausgeführt, die elektronische Verarbeitungseinrichtung so steuert, dass sie das Verfahren gemäß der Erfindung wie oben beschrieben ausführt.The invention also includes a program, in particular an app, which, when executed by an electronic processing device, controls the electronic processing device to carry out the method according to the invention as described above.

Ebenfalls umfasst ist ein Datenträger oder Signal, welche Anweisungen enthalten, die, wenn in eine elektronische Verarbeitungseinrichtung geladen, die Verarbeitungseinrichtung so steuern, dass sie das Verfahren gemäß der Erfindung wie oben beschrieben ausführt.Also included is a data carrier or signal containing instructions that, when loaded into an electronic processing device, control the processing device to execute the method according to the invention as described above.

Die Erfindung umfasst auch ein AR-Gerät, insbesondere Smartphone oder Tablet-Computer, Wearable Device, welches programmiert ist, das Verfahren gemäß der Erfindung wie oben beschrieben auszuführen.The invention also includes an AR device, in particular a smartphone or tablet computer, wearable device, which is programmed to carry out the method according to the invention as described above.

Die Kommunikationsverbindung zwischen den AR-Geräten kann kabelgebunden oder drahtlos, insbesondere via Infrastruktur-WLAN, AdHoc-WLAN des ersten AR-Geräts oder eines zweiten AR-Geräts, Bluetooth, Mobilfunk abgewickelt werden. The communication connection between the AR devices can be wired or wireless, in particular via infrastructure WLAN, AdHoc WLAN of the first AR device or a second AR device, Bluetooth, mobile, are handled.

Die Informationen und Daten können als Datensätze z.B. in XML, JSON, Bytes zwischen den Geräten kommuniziert werden.The information and data may be used as records e.g. in XML, JSON, bytes are communicated between devices.

Auch die Interaktion bzw. Steuerung des gemeinsam genutzten Container-Objekts durch mehrere AR-Geräte ist möglich.The interaction or control of the shared container object by several AR devices is also possible.

Bewegungen des Targets in der realen Welt können auch auf allen Geräten in Echtzeit durch die Bewegung des dem Target zugeordneten Containers wahrgenommen werden. Movement of the target in the real world can also be detected on all devices in real time by the movement of the container associated with the target.

Die vorliegende Erfindung ermöglicht es also, ein Target in der Augmented Reality zeitgleich aus mehreren verschiedenen Perspektiven auf verschiedenen AR-Geräten zu nutzen. Zu nutzen bedeutet, das Target in einer AR-Szene durch das jeweilige AR-Gerät anzeigen lassen, betrachten und zusätzlich auch noch mit diesem Objekt und ggf. weiteren virtuellen Objekten in der AR-Szene mittels virtueller Objekte interagieren zu können. Es versteht sich hierbei von selbst, dass die verschiedenen AR-Geräte aus voneinander verschiedenen Positionen und Perspektiven die AR-Szene anzeigen bzw. darstellen. Diese Positionen und Perspektiven entsprechen den Positionen und Perspektiven der den jeweiligen AR-Geräten zugeordneten Nutzer.The present invention thus makes it possible to use a target in augmented reality at the same time from several different perspectives on different AR devices. To use means to have the target displayed in an AR scene by the respective AR device, to be able to view and also additionally to be able to interact with this object and possibly other virtual objects in the AR scene by means of virtual objects. It goes without saying that the various AR devices display or display the AR scene from different positions and perspectives. These positions and perspectives correspond to the positions and perspectives of the users associated with the respective AR devices.

Dazu wird erfindungsgemäß von einem ersten Nutzer, mittels seines AR-Geräts, eine virtuelle Szene aufgebaut, welche die übrigen Nutzer (zweite Nutzer genannt), z.B. mit Techniken der Multiplayer-Programmierung (z.B. Server-Client-Ansatz), nutzen können. Diese virtuelle Szene enthält ein “Wurzel-Objekt”, in dem weitere virtuelle Objekte als “Child-Elemente” platziert werden. Dieses Wurzel-Objekt wird im Folgenden auch (virtuelles) "Container-Objekt" genannt. Die virtuelle Szene wird von einem AR-Gerät auf ein vom ersten Nutzer definiertes Target abgebildet und befindet sich dann sozusagen in der realen Szene, also “in” der (“echten”) Realität. Dieses Produkt wird hier als eine AR- oder virtuelle Szene bezeichnet. Außerdem initialisiert der erste Nutzer einen oder mehrere Server, mit denen sich weitere Nutzer verbinden können, um in der AR-Szene zu interagieren.For this purpose, according to the invention, a virtual user is set up by a first user, by means of his AR device, to identify the remaining users (called second users), e.g. with techniques of multiplayer programming (e.g., server-client approach). This virtual scene contains a "root object" in which further virtual objects are placed as "child elements". This root object is also called (virtual) "container object" in the following. The virtual scene is imaged by an AR device onto a target defined by the first user and is then, as it were, in the real scene, ie "in" the ("real") reality. This product is referred to herein as an AR or virtual scene. In addition, the first user initializes one or more servers to which additional users can connect to interact in the AR scene.

Wenn sich ein zweiter Nutzer mit dem Server des ersten Nutzers verbindet, bekommt er von dem Server die Informationen zum aktuellen Target auf sein AR-Gerät übertragen und kann sich so, ohne weiteres Zutun seinerseits, in die (bereits existierende) AR-Szene “einklinken” und mit dem ersten Nutzer oder den weiteren Nutzern in der AR-Szene interagieren.When a second user connects to the server of the first user, he gets transferred from the server, the information on the current target on his AR device and can thus, without further action on his part, in the (already existing) AR scene "latch "And with the first Users or other users in the AR scene.

Dieser Ansatz ist prinzipiell für beliebig viele Nutzer erweiterbar.This approach is in principle expandable for any number of users.

Die vorliegende Erfindung ist also eine Technik, wie man im Bereich der erweiterten Realität ein vom Nutzer selbst definiertes und real physikalisch existierendes Objekt (im Folgenden “Target” genannt) als gemeinsamen Ursprung oder Bezugspunkt für Mehrfach-Nutzer-Anwendungen nutzen kann, wenn sich alle Nutzer mit ihren AR-Geräten, physisch gesehen, am selben Ort befinden. Zusätzlich kann jeder Nutzer (virtuelle) Objekte direkt steuern bzw. mit ihnen interagieren oder sie manipulieren, und diese Manipulationen und Interaktionen können in Echtzeit auf allen beteiligten AR-Geräten aus den jeweiligen unterschiedlichen Perspektiven wahrgenommen werden. Des Weiteren kann der Nutzer nicht nur das virtuelle Objekt kontrollieren, sondern auch das physische. Thus, the present invention is a technique of using, in the realm of augmented reality, a user-defined and physically existing object (hereafter referred to as "target") as the common origin or reference point for multiple-user applications, if all Users are physically in the same location with their AR devices. In addition, each user can directly control, interact, or manipulate (virtual) objects, and these manipulations and interactions can be perceived in real time on all participating AR devices from different perspectives. Furthermore, the user can control not only the virtual object but also the physical one.

Wenn er das Target z.B. physisch mit den Händen bewegt, ist diese (reale) Bewegung auch auf den anderen AR-Geräten sichtbar.If he has the target e.g. physically moved with the hands, this (real) movement is also visible on the other AR devices.

Im Gegensatz zu anderen Lösungen ist man völlig frei von fest vorgegebenen Targets, und die Lösung lässt sich vollkommen mobil, und zwar auch ohne Kommunikationsinfrastruktur, nutzen. Benötigt wird lediglich ein Gegenstand in der echten Welt (als Target) und die App, in der das erfindungsgemäße Verfahren implementiert ist, für die jeweiligen AR-Geräte. Unlike other solutions, you are completely free of fixed targets, and the solution can be used completely mobile, even without a communication infrastructure. What is needed is only an object in the real world (as a target) and the app implementing the inventive method for the respective AR devices.

Die Erfindung wird anhand von Ausführungsbeispielen und der Zeichnung näher beschrieben. In der Zeichnung zeigt The invention will be described in more detail with reference to embodiments and the drawing. In the drawing shows

1 eine Übersicht über den kompletten Aufbau der Technik beispielhaft für zwei Nutzer; 1 an overview of the complete structure of the technology exemplary for two users;

2 den Schritt des Erfassens des Targets durch das erste AR-Gerät; 2 the step of detecting the target by the first AR device;

3 den Schritt der Erstellung des Containers; 3 the step of creating the container;

4 das Einfügen von spielerbezogenen virtuellen Objekten in die AR-Szene; 4 the insertion of player-related virtual objects into the AR scene;

5 den Schritt des Verbindens mit dem (Target-)Server und des Abrufens von Information von dort; 5 the step of connecting to the (target) server and retrieving information therefrom;

6 ein Diagramm, welches die Komponenten zeigt; 6 a diagram showing the components;

7 ein Ablaufdiagramm der einzelnen Schritte; 7 a flow chart of the individual steps;

8 eine Beispiel-Anwendung; und 8th an example application; and

9 die visuelle Ansicht der 3D-Szene auf einem AR-Gerät. 9 the visual view of the 3D scene on an AR device.

Die in der 1 zu erkennende Oberfläche 10 ist lediglich irgendeine Oberfläche, auf der das (zu definierende) Target liegt, z.B. ein Tisch oder auch der Boden.The in the 1 to be recognized surface 10 is merely any surface on which the target (to be defined) is located, eg a table or the floor.

Im ersten Schritt wird, mittels der Kamerafunktion des AR-Geräts des ersten Nutzers, ein Bild eines physischen Objekts erstellt, welches als Target 7 definiert werden soll. Dafür wird z.B. ein Objekt gewählt, das auf einem Tisch 50 liegt. Dieses sollte – vorteilhafterweise – sich möglichst gut (z.B. in Kontrast, Helligkeit, Farbe, Textur, Musterung o.ä.) von seiner Umgebung abheben, so dass das physische Objekt gut automatisch erkennbar ist. Außerdem sollte es eine glatte bzw. ebene Oberfläche haben, so dass es aus verschiedenen Betrachtungsperspektiven gut erkennbar ist. Es sollte also z.B. nicht zu sehr spiegeln oder glänzen oder teilweise bestimmten Perspektiven verdeckt werden.In the first step, using the camera function of the AR device of the first user, an image of a physical object is created, which serves as a target 7 should be defined. For example, an object is selected that is on a table 50 lies. This should - advantageously - stand out as well as possible (eg in contrast, brightness, color, texture, patterning or the like) from its surroundings, so that the physical object is well recognizable automatically. In addition, it should have a smooth or even surface, so that it is easily recognizable from different perspectives. For example, it should not reflect too much or shine or be partially obscured by certain perspectives.

Möglichkeiten für (gute) Targets 7 sind z.B.:

  • • Buch/Zeitschrift/Prospekt
  • • Geldschein/Kreditkarte
  • • Handy-Display (eingeschaltet)
  • • Bierdeckel/Zigarettenschachtel
  • • eigene Zeichnung/Skizze
Possibilities for (good) targets 7 are for example:
  • • Book / Magazine / Brochure
  • • Bank note / credit card
  • • Mobile phone display (switched on)
  • • Beer coaster / cigarette box
  • • own drawing / sketch

Für das Erstellen des Bildes wird das (erste) AR-Gerät (z.B. Smartphone oder Tablet) 1 des ersten Nutzers möglichst parallel zur Oberfläche des Targets 7 gebracht, so dass die optische Achse A des Objektivs des AR-Geräts 1 möglichst senkrecht zur Oberfläche des Targets 7 orientiert ist. Dann wird ein Bild aufgenommen. Dies illustriert 2. Wenn das Bild für jede Anwendung (also für jede "Spielsession") wieder neu erstellt wird, kann sichergestellt werden, dass auch die aktuellen Wetter-, Licht- und Umweltbedingungen berücksichtigt werden. Die vorgenannten Gesichtspunkte sind optional zu beachten, damit das Target in einem Kamerabild besonders einfach identifizierbar ist. Abhängig von der Qualität und den Fähigkeiten der Kamera bzw. der Software zur Bildverarbeitung des AR-Geräts müssen diese Gesichtspunkte nicht unbedingt oder nicht alle beachtet werden.For the creation of the image, the (first) AR device (eg smartphone or tablet) 1 the first user as parallel as possible to the surface of the target 7 brought so that the optical axis A of the lens of the AR device 1 as perpendicular to the surface of the target 7 is oriented. Then a picture is taken. This illustrates 2 , When the image is recreated for each application (that is, each "game session"), it can be ensured that the current weather, light and environmental conditions are also taken into account. The above-mentioned aspects are optional to observe, so that the target is particularly easy to identify in a camera image. Depending on the quality and capabilities of the camera or image processing software of the AR device, these considerations may not necessarily be respected.

In einer im Hintergrund (vorteilhafterweise auf dem ersten AR-Gerät) laufenden Anwendung wird dieses Bild auf bestimmte besonders hervorstechende oder auffallende Merkmale untersucht (optional) und ein Datensatz berechnet. Sobald dies berechnet wurde, wird, durch das erste AR-Gerät des ersten Nutzers, ein Server initialisiert und gestartet und die virtuelle Szene, also ein Koordinatensystem dafür, auf das Target bezogen. Dieses ist ab jetzt das “Container”-Objekt 8 für weitere virtuelle Objekte 5, 6, 22. Der Server kann auf dem ersten AR-Gerät laufen. Das Container-Objekt wird also dem Target in einer spezifischen (räumlichen) Relation zu dem Target zugeordnet. Es befindet sich dann ebenfalls in der virtuellen Szene (also sozusagen in dem hier genannten Koordinatensystem). Das Container-Objekt stellt ein virtuelles "Spielfeld" das, auf dem sich die Nutzer mittels der von ihnen kontrollierten Spielerobjekte bewegen und miteinander interagieren können. Die Definition des virtuellen Containers ist vorteilhafterweise in einem Programm (App) enthalten, welches auf jedem der AR-Geräte läuft. Es wird also zu Beginn einer Session lediglich durch das erste Ar-Gerät beim dem Target "positioniert" und initialisiert (gestartet). In an application running in the background (advantageously on the first AR device), this image is examined (optionally) for certain particularly salient or striking features and a data record is calculated. Once this has been calculated, by the first AR device of the first user, a server initialized and started and the virtual scene, so a coordinate system for, related to the target. This is now the "container" object 8th for more virtual objects 5 . 6 . 22 , The server can run on the first AR device. The container object is thus assigned to the target in a specific (spatial) relation to the target. It is then also in the virtual scene (so to speak, in the coordinate system mentioned here). The container object provides a virtual "playing field" on which users can move and interact with each other through the player objects they control. The definition of the virtual container is advantageously contained in a program (app) running on each of the AR devices. Thus, at the beginning of a session, it is merely "positioned" at the target by the first Ar device and initialized (started).

3 illustriert dies. Dieses Container-Objekt kann z.B. repräsentieren:

  • • Ein Spielfeld (z.B. für Brettspiele oder eine virtuelle Arena/Stadion);
  • • eine Autorennbahn;
  • • eine Bühne;
  • • ein Haus, z.B. für Architekten, ein Auto, z.B. für Autohäuser.
3 illustrates this. This container object can represent, for example:
  • • A playing field (eg for board games or a virtual arena / stadium);
  • • a racecourse;
  • • a stage;
  • • a house, eg for architects, a car, eg for car dealerships.

Zusätzlich kann der Nutzer nun ein eigenes, von ihm kontrolliertes virtuelles Objekt 5, 22 in die AR-Szene bringen, vgl. 4. Dieser Schritt ist optional bzw. individuell anpassbar, denn es kann auch schon genügen, nur mit dem virtuellen Container 8 zu arbeiten oder auch nur Kontrollelemente ins Display einzublenden, durch die man mit dem virtuellen Container 8 direkt interagieren kann. Außerdem kann es auch sein, dass man mehrere eigene Objekte ins Spiel bringt (z.B. bei einem Strategiespiel oder einem virtuellen Brettspiel) oder auch ein oder mehrere Objekte 5, 22 definiert, die dann von mehreren Nutzern gleichzeitig oder abwechselnd benutzt werden (z.B. Würfel in einem Würfelspiel) In addition, the user can now own, controlled by him virtual object 5 . 22 into the AR scene, cf. 4 , This step is optional or individually customizable, because it can already be enough, only with the virtual container 8th to work or even just display control elements in the display, through which one with the virtual container 8th can interact directly. In addition, it can also be that you bring several own objects into play (eg in a strategy game or a virtual board game) or even one or more objects 5 . 22 which are then used by several users simultaneously or alternately (eg dice in a dice game)

Das von ihm kontrollierte virtuelle Nutzer-Objekt kann seine Spielperson sein. Dieses virtuelle Nutzer-Objekt, wie alle weiteren virtuellen Objekte auch, wird ebenfalls mit einer Lageangabe versehen, wobei die Lageangabe eine geometrische Relation zu der Lageangabe des Container-Objektes aufweist. Das virtuelle Nutzer-Objekt wird hierdurch dem Container-Objekt untergeordnet. Die Informationen, die für das Nutzer-Objekt bezeichnend sind, sowie die Lageangabe werden ebenfalls zur AR-mäßigen Anzeige für das betreffende AR-Gerät und zumindest ein weiteres AR-Gerät bereitgestellt. The virtual user object controlled by him can be his play person. This virtual user object, like all other virtual objects also, is also provided with a position specification, the position specification having a geometric relation to the position specification of the container object. The virtual user object is thereby subordinated to the container object. The information indicative of the user object as well as the location indication are also provided for the AR-based display for the relevant AR device and at least one further AR device.

Der zweite Nutzer (der sich physisch am selben Ort befindet wie der erste Nutzer, aber nicht in derselben Position) muss jetzt nichts weiter tun, als sich über sein AR-Device 2 mit dem Server zu verbinden, vgl. 5. Dadurch bekommt er automatisch Informationen, die für das Target beschreibend sind, und die Lageangabe des Container-Objektes bereitgestellt, so dass er das Target nun mittels der Kamerafunktion seines AR-Gerätes 2 fokussieren kann. Ebenfalls wird auch auf seinem AR-Gerät 2 der virtuelle Container 8 erstellt und angezeigt und alle bisherigen (Spieler-)Objekte), die sich bereits in der virtuellen Szene befinden, werden angezeigt. Außerdem wird (auch wiederum optional) sein eigenes (Spieler-)Objekt zur Szene hinzugefügt. Optional gibt es dafür eine bestimmte Position auf dem Spielfeld, einen sogenannten “Spawn-Point”. Dieser Schritt kann (genau) so von jedem weiteren Nutzer durchgeführt werden, solange die Anwendung für die entsprechende Nutzer-Anzahl ausgelegt ist und das Limit noch nicht erreicht ist. Der komplette Aufbau stellt sich dann wie in 1 dar.The second user (who is physically in the same place as the first user but not in the same position) now has nothing to do but talk about his AR device 2 to connect to the server, cf. 5 , As a result, he automatically gets information that is descriptive of the target, and provides the location specification of the container object, so that he now the target using the camera function of his AR device 2 can focus. Also on his AR device 2 the virtual container 8th created and displayed and all previous (player) objects) that are already in the virtual scene are displayed. In addition (also again optional) his own (player) object is added to the scene. Optionally, there is a certain position on the field, a so-called "spawn point". This step can (exactly) be carried out by each additional user as long as the application is designed for the corresponding number of users and the limit has not yet been reached. The complete structure then turns as in 1 represents.

Es gibt verschiedene Möglichkeiten zur Übertragung: ein extra (paralleler) Server, Bluetooth, WLAN, usw., und auch die zu übertragenden Daten unterscheiden sich je nach benutztem AR-Framework:

  • • Möglichkeit 1: Das Bild des Target selbst wird übertragen, so dass es auf dem Client auch wieder berechnet werden kann.
  • • Möglichkeit 2: Das fertig berechnete bzw. analysierte Target (also ein Datensatz bzw. das Bild mit Metadaten) wird an den zweiten Spieler (Client) übertragen.
There are several possibilities for transmission: an extra (parallel) server, Bluetooth, WLAN, etc., and also the data to be transmitted differ depending on the AR-Framework used:
  • • Option 1: The image of the target itself is transmitted so that it can be calculated again on the client.
  • • Option 2: The finished calculated or analyzed target (ie a data set or the image with metadata) is transmitted to the second player (client).

Es wird also in jedem Fall ein Datensatz übertragen, der die Informationen über das Target enthält, die vom Client genutzt werden können.In any case, a record is transferred that contains the information about the target that can be used by the client.

Jeder Spieler bekommt auf sein AR-Gerät 2 außer der AR-Ansicht auch noch eine auf die jeweilige Anwendung angepasste GUI (Graphical User Interface) eingeblendet, mithilfe derer er sein Objekt (remote) z.B. per Buttons, Slidern oder auch per Touch-Gesten steuern bzw. mit ihm interagieren kann.Each player gets on his AR device 2 Apart from the AR view, a GUI (Graphical User Interface) adapted to the respective application is also displayed, with the help of which he can control or interact with his object remotely, eg via buttons, sliders or touch gestures.

Eine zweite Möglichkeit, mit den virtuellen Objekten 5, 6, 8, 22 zu interagieren, ist z.B. andere physisch existierende Objekte/Dinge/Gegenstände in der realen Welt als “Button” zu nutzen. Allgemein sind alle weiteren üblichen Interaktions-Techniken mit dieser Idee leicht in die Augmented Reality übertragbar bzw. erweiterbar. Auch sonstige weitere Informationen oder übliche Elemente wie z.B. verschiedene Menüs können wie in jeder anderen “normalen” Anwendung verwendet werden. Man kann also alle Eingabe- und Ausgabe-Methoden bzw. Interaktionsformen nutzen, die man auch für andere normale Software nutzen würde. Beispiele sind visuelle Interaktion (mit Menüs, oder besondere Anpassung bei Sehbehinderung), Interaktion per Sound (Input und Output), haptische Interaktion (z.B. Handy vibrieren lassen als Feedback).A second way with the virtual objects 5 . 6 . 8th . 22 To interact, for example, is to use other physically existing objects / objects in the real world as a "button". In general, all other common interaction techniques with this idea are easily transferable or augmented in augmented reality. Other additional information or common items such as different menus can be used as in any other "normal" application. So you can use all input and output methods or interaction forms that would be used for other normal software. Examples are visual interaction (with menus, or special adaptation for the visually impaired), interaction via sound (input and output), haptic interaction (eg mobile phone vibrate as feedback).

Allgemeiner gesagt, können sowohl alle Techniken, die in bisherigen AR-Anwendungen genutzt werden, hiermit so verbessert werden, dass sie auch in Multi-User-Anwendungen funktionieren. Und auf der anderen Seite können auch übliche Techniken, die in Multi-User-Anwendungen oder Multi-Player-Spielen genutzt werden, in die Augmented Reality übertragen werden und diese dadurch erweitern bzw. verbessern.More generally, all techniques used in previous AR applications can be improved to work in multi-user applications as well. And on the other hand, common techniques used in multi-user applications or multi-player games can also be augmented to augment reality.

Eine weitere optionale Funktion ist, dass ein Nutzer auf allen anderen AR-Geräten 1, 2 ausgeblendet (bzw. in einem “Disconnected“-Zustand/Pose dargestellt) wird, falls der Nutzer die Kamerafokussierung auf das Target 7 verlieren sollte. Dadurch hat man immer eine konsistente Ansicht auf allen Geräten. Dies kann für Anwendungen sinnvoll sein (z.B. “actionlastige”, um nicht durch “nicht-existente” Spieler abgelenkt zu werden) und für andere eher weniger (z.B. Strategiespiele oder Brettspiele). Dafür wird der komplette virtuelle Container (auf dem lokalen AR-Gerät) in einen für alle User unsichtbaren Bereich in der virtuellen Szene "geschoben", also ausgeblendet, und auf den übrigen -AR-Geräten wird nur der Spieler in einen unsichtbaren “Pool” geschoben, so dass die übrigen Nutzer die Szene noch sehen, aber ohne den Nutzer, der die Kamerafokussierung verloren hat, also sich sozusagen aus der virtuellen Szene entfernt hat... Weil die Technik für beliebig viele User erweiterbar ist, ist sie auch sehr gut geeignet, um z.B. ein bestimmtes Objekt aus mehreren Perspektiven (von mehreren Betrachtern) gleichzeitig genauer zu betrachten.Another optional feature is that a user on all other AR devices 1 . 2 is hidden (or displayed in a "disconnected" state / pose) if the user focuses the camera on the target 7 should lose. This always gives you a consistent view on all devices. This may be useful for applications (eg "action-heavy" so as not to be distracted by "non-existent" players) and for others rather less (eg strategy games or board games). For this purpose, the complete virtual container (on the local AR device) is "pushed" into an invisible area for all users in the virtual scene, ie hidden, and on the remaining AR devices, only the player becomes an invisible "pool" pushed, so that the other users still see the scene, but without the user who has lost the camera focus, so to speak, has moved away from the virtual scene ... Because the technology for any number of users is extensible, it is also very good suitable, for example, to view a specific object from several perspectives (from multiple viewers) at the same time.

Ein weiterer Vorteil ist, dass das Target nicht an die restliche Umgebung in der realen Szene gebunden ist. Wenn das Target z.B. ein Buch ist, das auf einem Tisch liegt, kann man das Buch anschließend frei auf dem Tisch (real) bewegen, und der darauf platzierte Container bewegt sich in der AR-Szene mit. Man kann das Buch sogar mit an einen ganz anderen Ort nehmen. Das Target an sich ist somit leicht transportierbar, nicht an einen Ort gebunden und es sind sogar mobile/bewegliche Targets, die sich also ständig bewegen, möglich. Dies funktioniert deshalb, weil die Lageangabe des Containers eine geometrische Relation zu dem Target aufweist, also auf das Target bezogen ist. Another advantage is that the target is not bound to the rest of the real scene environment. If the target is e.g. If a book is on a table, then you can move the book freely on the table (real), and the container placed on it moves in the AR scene. You can even take the book to a very different location. The target itself is thus easily transportable, not tied to a location and even mobile / mobile targets, which are thus constantly moving, are possible. This works because the position specification of the container has a geometric relation to the target, that is, related to the target.

Ein anderer Ansatz, nämlich dass die Spieler jeweils eigene, unterschiedliche Targets definieren oder sich sogar an unterschiedlichen Orten befinden, wird durch die erfindungsgemäße Technik ebenfalls unterstützt. In diesem Fall lässt man einfach jeden Client sein Target selbst erstellen, wenn er sich mit dem Spiele-Server verbindet.Another approach, namely that the players each define their own, different targets or even located in different locations, is also supported by the inventive technique. In this case, you simply let each client create their own target when connecting to the game server.

Bei schlechter Sicht, wenn es z.B. in der Szene dunkel ist oder der Nutzer Schatten wirft, kann ein Nutzer – optional – ein Licht (z.B. den Blitz der Kamerafunktion oder eine externe Lichtquelle) dynamisch einschalten und auf das Target richten, um wirklich nur das Target und nicht die Schatten zu tracken. Dieses Licht kann man sogar in der Szene/ im Spiel selbst dynamisch je nach Bedarf ein- und ausschalten. Hierzu lässt sich die Lichtquelle des AR-Geräts (z.B. des Smartphone) direkt ansprechen.In poor visibility, when e.g. When the scene is dark or the user casts shadows, a user may optionally turn on a light (e.g., the camera function flash or an external light source) dynamically and aim at the target to really only track the target, not the shadows. This light can be turned on and off dynamically, even in the scene / game itself as needed. For this purpose, the light source of the AR device (for example, the smartphone) can be addressed directly.

Die Anwendungen sind für Multiplayer konzipiert. Allerdings kann man die Anwendungen, die diese Technik nutzen, auch ohne Probleme im Singleplayer-Modus nutzen und z.B. gegen eine KI (System der Künstlichen Intelligenz) spielen.The applications are designed for multiplayer. However, you can use the applications that use this technique, even without problems in single-player mode and, for example. play against an AI (Artificial Intelligence System).

Ein weiteres optionales Merkmal der Erfindung ist, dass man vom virtuellen Objekt Sound aussenden lässt und diesen durch ein virtuelles Mikrofon (in Unity z.B. AudioListener gennant) dem exakten Punkt in der Realität nur durch Hören zuordnen lässt. Hierzu sollte ein entsprechendes Audio-Ausgabesystem am AR-Gerät angeschlossen sein, z.B. ein Surround-Kopfhörer.Another optional feature of the invention is that one can send sound from the virtual object and associate it with a virtual microphone (called in Unity, for example, AudioListener) to the exact point in reality only by listening. For this purpose, a corresponding audio output system should be connected to the AR device, e.g. a surround headphone.

Die erfindungsgemäße Technik kann z.B. als App oder mobiles Spiel entwickelt bzw. implementiert werden und ist somit plattformunabhängig auf vielen Geräten verwendbar.The technique of the invention may e.g. be developed or implemented as an app or mobile game and is thus platform-independent on many devices usable.

Im Folgenden werden einzelne Komponenten beispielshalber beschrieben.In the following, individual components are described by way of example.

Beteiligte Komponenten: (siehe auch Fig. 6)Involved components: (see also Fig. 6)

Erstes AR-Gerät (“Haupt”-Gerät) 1: Dies ist das Device, welches vom ersten Nutzer benutzt wird. Es kann jedes (mobile) Gerät sein, das eine Kamera zum Aufnehmen der Umgebung und ein Display zum Darstellen der AR-Szene 9 besitzt und genügend Leistung hat, um AR-Anwendungen betreiben zu können. Außerdem läuft (softwareseitig) auf dem AR-Gerät 1 ein “Anwendungs-Server” 18, der alle Spielelemente synchronisiert, die AR-Anwendung/App selbst und ein weiterer paralleler Server 19, mit dem die Informationen über das Target ausgetauscht werden. Optional wird auch noch ein weiterer, dritter Server 20 eingesetzt, um das offene Spiel (per Broadcasts) in einem WLAN bekannt zu machen, und ein virtueller Router, um ein Ad-Hoc-WLAN (anstelle eines Infrastruktur-WLAN) aufzubauen. Wie dies aber im Einzelnen implementiert wird, bleibt jeweils dem Entwickler überlassen. Alle Komponenten können jedenfalls per Software abgebildet werden, so dass außer den AR-Geräten keine weiteren Hardware-Komponenten benötigt werden.First AR device ("main" device) 1 : This is the device used by the first user. It can be any (mobile) device, a camera to capture the environment and a display to represent the AR scene 9 owns and has enough power to run AR applications. Also running (software side) on the AR device 1 an "application server" 18 synchronizing all game items, the AR application / app itself and another parallel server 19 with which the information about the target is exchanged. Optionally, there will be another, third server 20 used to advertise the open game (via broadcasts) in a WLAN, and a virtual router to build an ad hoc WLAN (instead of an infrastructure WLAN). However, how this is implemented in detail is up to the developer. In any case, all components can be mapped via software, so that apart from the AR devices, no further hardware components are needed.

Zweite(s) AR-Gerät(e) ("Client-Device(s)") 2: Auch dieses AR-Gerät kann jedes beliebige (mobile) Gerät sein, das den gleichen Anforderungen wie das erste AR-Gerät entspricht. Hier muss nur die AR-Anwendung/App laufen, und je nach Architektur muss eine dauerhafte (TCP-)Verbindung durch einen Client aufgebaut werden, oder es wird nur (“zustandslos per UDP”) mit dem Server kommuniziert.Second AR device (s) ("client device (s)") 2 : This AR device can be any (mobile) Device that meets the same requirements as the first AR device. Here, only the AR application / app needs to run, and depending on the architecture, a permanent (TCP) connection needs to be established by a client, or it is only communicating with the server ("stateless via UDP").

Verbindung: Alle AR-Geräte 1, 2 müssen miteinander verbunden werden können. Am leichtesten geht das, wenn sie sich alle im selben WLAN befinden. Da sie sich physisch am selben Ort befinden, ist das auch am sinnvollsten. Man kann, falls aktuell kein (Infrastruktur-)WLAN existiert, auch durch das erste AR-Gerät ein Ad-Hoc-WLAN aufbauen. Andere Verbindungs-Techniken wie z.B. Bluetooth oder ZigBee sind aber genauso möglich.Connection: All AR devices 1 . 2 have to be connected to each other. The easiest way is, if they are all in the same WLAN. Since they are physically in the same place, that makes the most sense. If no (infrastructure) WLAN currently exists, you can also set up an ad hoc WLAN using the first AR device. Other connection techniques such as Bluetooth or ZigBee are just as possible.

Im Folgenden werden beispielhalber einige Implementierungsdetails beschrieben In the following, some implementation details are described by way of example

In der Beispiel-Implementierung sind die Spiele-Engine Unity3D und die Programmiersprache C# sowie das AR-Framework EasyAR als Basis genommen. Die Erfindung ist aber genauso gut auch mit anderen Spiele-Engines oder auch komplett ohne Engine, in allen möglichen Programmiersprachen und mit anderen AR-Frameworks (wie z.B. Vuforia, Metaio oder ARToolkit) umsetzbar.In the example implementation the game engine Unity3D and the programming language C # as well as the AR framework EasyAR are taken as basis. However, the invention can also be implemented with other game engines or completely without an engine, in all possible programming languages and with other AR frameworks (such as Vuforia, Metaio or ARToolkit).

Dazu sei angemerkt, dass diese Engines normalerweise so aufgebaut sind, dass es einen 3D-Raum (eine sogenannte "Szene") gibt, in der 3D-Elemente platziert werden. Im Speicher werden diese als (aus Informatik-Sicht) Baum mit n Kindern abgebildet. Hierbei "erben" die Kinder bestimmte Eigenschaften der Eltern. Elemente, die direkt und in beliebiger Position in der 3D-Szene positioniert werden, sind dabei die ersten Elemente eines Baumes, also die Root-Elemente (hier als „Wurzel-Elemente“ bezeichnet). Objekte, die als Kinder, und somit in einer relativen Position zu ihrem Parent-Objekt platziert werden, nennt man Child-Objekte. Jedes Objekt hat immer eine bestimmte Lage (= Transform (Position, Rotation, Scale)) im Raum. Außerdem kann es durch verschiedene sogenannte Components mit allen möglichen weiteren Informationen ausgestattet werden. Diese können in Unity z.B. in C# geschrieben werden und sind somit beliebig komplex, also von einer einzelnen Variable bis hin zu einem kompletten Computerprogramm. In der Beispiel-Implementation werden die Komponenten z.B. genutzt, um den User mit den Objekten interagieren zu lassen oder um synchrone Objekte (GameObjects) in allen Szenen zu haben. Dies wird weiter unten beschrieben werden. It should be noted that these engines are usually constructed so that there is a 3D space (a so-called "scene") in which 3D elements are placed. In the memory these are mapped as (from a computer science point of view) tree with n children. Here, the children "inherit" certain characteristics of the parents. Elements that are positioned directly and in any position in the 3D scene are the first elements of a tree, ie the root elements (referred to here as "root elements"). Objects that are placed as children, and thus in a relative position to their parent object, are called child objects. Each object always has a certain position (= transform (position, rotation, scale)) in space. In addition, it can be equipped by various so-called components with all sorts of other information. These may be in Unity e.g. are written in C # and are therefore arbitrarily complex, ie from a single variable to a complete computer program. In the example implementation, the components are e.g. used to let the user interact with the objects or to have synchronous objects (GameObjects) in all scenes. This will be described below.

Das erfindungsgemäße virtuelle Container-Objekt 8 wird als ein solches Wurzel-GameObjekt, in dem alle weiteren Objekte 5, 6, 22 als Child platziert werden, implementiert. Die Child-Objekte 5, 6, 22 haben somit immer die gleiche relative Position zum/im Container 8. Der Container 8 wird nun per AR exakt auf das Target 7 in der realen Welt gelegt. Dabei wird für die Ansicht auf die virtuelle Szene jeweils eine virtuelle Kamera genutzt. Im Falle der Augmented Reality bekommt bzw. verändert sie ihre Position und Rotation sozusagen durch Bewegungen der echten Device-Kamera. Diese Aufgabe und das Zusammenfügen der beiden Bilder übernimmt jeweils das AR-Framework.The virtual container object according to the invention 8th is considered such a root game object, in which all other objects 5 . 6 . 22 implemented as a child. The child objects 5 . 6 . 22 thus always have the same relative position to / in the container 8th , The container 8th now gets exactly to the target via AR 7 placed in the real world. In each case a virtual camera is used for the view on the virtual scene. In the case of augmented reality, it gets or changes its position and rotation, so to speak, by movements of the real device camera. This task and the merging of the two images is done by the AR-Framework.

Somit wird die VR-Szene sozusagen über die reale Welt "gelegt"/"gestülpt", so dass das Target in der realen Welt (solange es nicht bewegt wird) als Fixpunkt immer genau an der gleichen Stelle (also dem Container) in der virtuellen Welt liegt. Und alle Punkte/Objekte in beiden "Welten" haben jeweils die exakt gleiche relative Position zum Fixpunkt/Target wie beim Erstellen und Platzieren des Container-Objekts 8.Thus, the VR scene is "laid over" the real world so to speak, so that the target in the real world (as long as it is not moving) as a fixed point always exactly in the same place (ie the container) in the virtual World lies. And all points / objects in both "worlds" have exactly the same relative position to the fixed point / target as when creating and placing the container object 8th ,

Die verschiedenen Nutzer können nun durch die Multiplayer-Unterstützung von Unity miteinander interagieren. Dabei übernimmt der Server das "Management" und die Spiellogik und verwaltet die Szene und Interaktionen (wie z.B. Kollisionen) einzelner GameObjects. Der Client hat die exakt gleiche 3D-Szene auf seinem AR-Gerät und synchronisiert seine AR-Szene laufend (um die Ansicht flüssig zu halten, je nach Anwendungsfall bis zu 20–30 Mal pro Sekunde) mit der Szene des Servers. Wie das im Detail funktioniert, ist dem Fachmann bekannt und kann im Spezialfall Unity3D hier unter ( https://docs.unity3d.com/Manual/UNet.html ) erfahren werden. Man kann solch ein Server-Client-Prinzip natürlich auch von Grund auf in einer eigenen Implementierung neu programmieren oder eine entsprechende Technik in der (Spiele-)Engine nach eigener Wahl nutzen.The various users can now interact with each other through the multiplayer support of Unity. The server takes over the "management" and the game logic and manages the scene and interactions (such as collisions) of individual GameObjects. The client has the exact same 3D scene on his AR device and keeps his AR scene in sync (keeping the view fluid, up to 20-30 times a second, depending on the application) with the server's scene. How this works in detail is known to the person skilled in the art and in the special case Unity3D can be found here ( https://docs.unity3d.com/Manual/UNet.html ). Of course you can also reprogram such a server-client-principle from the ground up in your own implementation or you can use a corresponding technique in the (game) engine of your choice.

Macht man nun mit einem AR-Gerät 1, 2 ein Bild (z.B. in EasyAR TargetOnTheFly, oder in Vuforia UserDefinedTarget genannt), wird dieses entweder direkt als Bild oder vorher noch ausgewertet und, als Datensatz umgerechnet, an einem bestimmten Ort im Speicher des AR-Geräts abgelegt. Der Speicherort und auch die Art des Datensatzes variieren je nach AR-Framework. Do you now with an AR device 1 . 2 an image (eg in EasyAR TargetOnTheFly, or in Vuforia UserDefinedTarget), this is either directly as image or previously evaluated and, converted as a record, stored at a specific location in the memory of the AR device. The location and also the type of data set vary according to the AR framework.

Für EasyAR auf einem Android-Gerät ist es zum Beispiel in den tmp-Daten im User-Context der App als jpg abgespeichert.For EasyAR on an Android device, for example, it is stored in the tmp data in the user context of the app as a jpg.

Neben diesem Spiele-Server läuft ein weiterer Server auf dem ersten AR-Gerät 1. Im vorliegenden Beispiel ist dieser in C# mithilfe der HTTPListener-Klasse aus dem .NET-Framework implementiert. Dieser Target-Server sucht das erstellte Objekt und liefert es an die Clients (also die zweiten AR-Geräte 2) als Byte-Array aus, sobald ein neuer Client sich mit dem Spiele-Server verbindet. Im Client wird dieses Bild oder der Datensatz dann wieder umgerechnet und genau so abgespeichert, als ob es auf diesem Device gerade erstellt worden wäre, also z.B. für Android und EasyAR wiederum im Context der App.In addition to this game server, another server is running on the first AR device 1 , In our example, this is implemented in C # using the HTTPListener class from the .NET Framework. This target server searches for the created object and delivers it to the clients (ie the second AR devices 2 ) as a byte array as soon as a new client connects to the game server. In the client will This image or record then converted back and stored exactly as if it had just been created on this device, eg for Android and EasyAR again in the context of the app.

Somit hat man das exakt gleiche Bild (bzw. den gleichen Datensatz) unter den gleichen Bedingungen (z.B. Lichtverhältnissen) und dadurch den exakt gleichen Fixpunkt in der realen Welt.Thus one has the exact same picture (or the same data set) under the same conditions (for example light conditions) and thereby the exact same fixed point in the real world.

Auf Basis von diesem Bild/Datensatz wird nun in der Unity-Szene ebenfalls das Container-GameObject auf dem Client erstellt und auf dem Target in der realen Welt platziert. On the basis of this image / data set, the container GameObject is now also created on the client in the Unity scene and placed on the target in the real world.

Der visuelle Eindruck der verschiedenen Perspektiven ergibt sich dadurch, dass jeder Spieler (Nutzer) seine (virtuelle) Kamerafunktion, durch die er die virtuelle (und die erweiterte) Realität sieht, so bewegt, wie er die (reale) Kamera seines AR-Geräts in Relation zum Target bewegt. Da jeder Spieler nun auf seinem AR-Gerät 1, 2 die exakt gleiche AR-Szene sieht und die Positionen immer mit der "originalen" Szene auf dem Server synchronisiert werden, entsteht der Eindruck einer gemeinsam genutzten und beeinflussbaren Augemted Reality bzw. anders formuliert: die gleiche Szene wird dann von jedem Spieler durch die Perspektive seiner Kamera (pro Gerät angepasst an Position und Rotation zum Target in der echten Welt) betrachtet. Gerendert wird das jeweilige Bild dabei jeweils auf dem AR-Gerät des Nutzers durch Unity.The visual impression of the different perspectives results from the fact that each player (user) moves his (virtual) camera function through which he sees the virtual (and augmented) reality as he moves the (real) camera of his AR device Relation to the target moves. Because every player is now on his AR device 1 . 2 the exact same AR scene sees and the positions are always synchronized with the "original" scene on the server, creates the impression of shared and influenced Augemted Reality or in other words: the same scene is then from each player through the perspective of his Camera (per device adapted to position and rotation to the target in the real world). The respective image is rendered in each case on the user's AR device by Unity.

Die Beispiel-Implementierung hat einen extra Broadcast-Server, damit sich die Spieler auch finden können (bzw. die Clients ein offenes Spiel finden). Auch dieser ist in C# programmiert (als angepasste Version der NetworkDiscovery-Klasse aus der Unity-API) und wird gestartet, sobald ein Spiel offen ist.The example implementation has an extra broadcast server so players can find each other (or the clients find an open game). Again, this is programmed in C # (as a customized version of the NetworkDiscovery class from the Unity API) and will be launched as soon as a game is open.

Die folgenden funktionalen Schritte sind zusätzlich zum hier beschreibenden Text auch im Ablaufdiagramm der 7 zu sehen. Dort ist auch die Wechselbeziehung zwischen den Komponenten eingezeichnet. The following functional steps are in addition to the text described here also in the flowchart of 7 to see. There is also the correlation between the components drawn.

Auf dem ersten AR-Gerät (zugleich Server-Gerät) 1:On the first AR device (server device at the same time) 1 :

Target auswählen: Select target:

Der Nutzer startet die in die App integrierte Funktion, um ein Bild zu erstellen. Auf dieser ist ein Ausschnitt markiert, auf dem später der Container platziert werden soll. Er hält nun die Kamera parallel zum Target, schaut, dass der Bereich, auf dem der Container platziert sein soll, möglichst im markierten Bereich ist und wartet, bis die Kamera diesen Punkt fokussiert hat. Dies wird üblicherweise Software-seitig durch alle Kameras gemacht. Sobald die Kamera diesen Punkt fokussiert hat, kann der Nutzer auf einen Auslöse-Button klicken und das Bild wird erstellt.The user launches the built into the app function to create an image. On this a section is marked on which the container is to be placed later. He now holds the camera parallel to the target, sees that the area on which the container should be placed is as far as possible in the marked area and waits until the camera has focused this point. This is usually done on the software side by all cameras. Once the camera has focused on this point, the user can click on a trigger button and the image is created.

Eine optionale Zusatzfunktion ist das Zuschalten einer Lichtquelle. Sollte der Nutzer in der realen Szene einen Schatten werfen, der das Target verdeckt, kann er hier direkt das in die AR-Gerät-Kamera integrierte Blitzlicht als "Taschenlampe" zuschalten. Dies ist nicht immer günstig aus AR-Aspekten, da dann die Lichtverhältnisse verändert werden. Es ist aber im praktischen Einsatz oftmals sinnvoll, dann sollte das Licht aber auch während des ganzen Spiels angeschaltet bleiben. An optional additional feature is the activation of a light source. If the user in the real scene cast a shadow that obscures the target, he can directly connect the integrated into the AR device camera flash as a "flashlight". This is not always favorable from AR aspects, because then the lighting conditions are changed. However, it is often useful in practical use, but then the light should remain switched on throughout the game.

Bild erstellen: Nun wird ein Foto erstellt und in ein bestimmtes Bild-Format konvertiert (hier jpg) und im Speicher abgelegt.Create image: Now a photo is created and converted into a certain image format (here jpg) and stored in memory.

Bild auswerten und als Datensatz abspeichern: Das Bild wird auf markante Punkte/Merkmale (besonderer Kontrast/Farbe usw.) untersucht. Diese Punkte/Merkmale werden als Datensatz über das Target (die das Target beschreibende Informationen) abgespeichert, damit sie später genutzt werden können. Evaluate the image and save it as a dataset: The image is examined for distinctive points / features (special contrast / color, etc.). These points / features are stored as a record about the target (the information describing the target) so that they can be used later.

Target-Server 19 erstellen: Es wird ein Server initialisiert, der auf einen bestimmten Port horcht. Z.B. wird hier definiert, wo und unter welchem Namen er den Datensatz mit den spezifischen Target-Details (die das Target beschreibende Informationen) finden kann und wie er ihn bereitstellen soll (hier per Byte-Array HTTP-Response auf eine bestimmte Anfrage). Dieser kann hier direkt, muss aber noch nicht, gestartet werden. Um Ressourcen zu sparen, kann er auch immer erst dann dynamisch gestartet werden, wenn ein neuer Client den Haupt-Spiele Server betritt und den Datensatz abrufen will. Target server 19 Create: Initializes a server listening for a specific port. For example, here is where and under what name he can find the record with the specific target details (the information describing the target) and how he should provide it (here by byte array HTTP response to a specific request). This can be started here directly, but does not have to be started yet. To save resources, it can only be dynamically started when a new client enters the main game server and wants to retrieve the record.

Spiele-Server 18 erstellen: Game server 18 create:

Zunächst werden elementare Informationen, (wie z.B. die Raumgröße, wie viele Nutzer-Clients sich maximal mit der Szene verbinden können), netzwerkspezifische Details (wie z.B. mit welcher Frequenz kommuniziert werden soll oder Definition der IP-Adresse und Ports) und Spiele-spezifische Vorkehrungen (z.B. Initialisierung verschiedener Variablen und Objekte und Erstellung der GUI) eingestellt und getroffen.First of all, elementary information (such as the size of the room, how many user clients can connect to the scene at most), network-specific details (such as which frequency to communicate with or definition of the IP address and ports) and game-specific precautions (eg initialization of various variables and objects and creation of the GUI) set and made.

Dieser Server ist später auch verantwortlich, dass alle verbundenen Nutzer-Clients eine konsistente Ansicht auf Objekte in der Szene haben, also dass z.B. Spieler bewegt werden können und die neue Position mit allen Nutzern synchronisiert wird. Dies macht er, indem er immer das Delta zur aktuellen Position per TCP/IP Verbindung an alle verbundenen Geräte schickt, wodurch eine Veränderung der Spiele-Objekte in Echtzeit gegeben ist. Außerdem verwaltet er auch mögliche kollidierende Zugriffe von mehreren Clients gleichzeitig auf das selbe (gemeinsam genutzte) virtuelle Objekt. (siehe auch weiter unten)Later, this server is also responsible for ensuring that all connected user clients have a consistent view of objects in the scene, such as allowing players to be moved and synchronizing the new location with all users. He does this by always sending the delta to the current position via TCP / IP connection to all connected devices, which gives a change of the game objects in real time. Furthermore It also manages possible colliding accesses from multiple clients to the same (shared) virtual object simultaneously. (see below)

Erstellen des virtuellen Containers 8: Es wird eine virtuelle Szene 9 erstellt und ein virtueller Container 8 in ihr platziert. Dafür wird in die Szene ein (für den Nutzer später unsichtbares) Abbild des zuvor aufgenommenen Bildes (bzw. der analysierten Version des Bildes) gelegt und darauf der Container 8 gestellt. Create the virtual container 8th : It becomes a virtual scene 9 created and a virtual container 8th placed in it. For this purpose, an image (later invisible to the user) of the previously recorded image (or the analyzed version of the image) is placed in the scene and then the container 8th posed.

Dieser Container 8 wird sodann durch eine optische Überlagerung der virtuellen Kamera, die die virtuelle Szene aus einer bestimmten Position einfängt und der Geräte-Kamera, die das Target in der realen Welt fokussiert, so platziert, dass es so aussieht, als ob der Container auf dem Target liegt/steht. Dadurch wird dann also die komplette virtuelle Szene über die reale Welt gelegt. Ab diesem Zeitpunkt wird dann auch die Position und Rotation der virtuellen Kamera immer mit der Position und Rotation der Device-Kamera synchronisiert, und zwar jeweils relativ zum Container bzw. zum Target, die jeweils den gemeinsamen Bezugspunkt der Szenen bilden. Der Nutzer sieht somit von beiden "Welten" immer den Ausschnitt, der durch die Position und Rotation der Device-Kamera bestimmt wird und durch Bewegungen des AR-Gerätes (z.B. Smartphone) beeinflusst werden kann.This container 8th is then placed by an optical overlay of the virtual camera, which captures the virtual scene from a certain position and the device camera, which focuses the target in the real world, so that it looks as if the container is on the target /stands. As a result, the entire virtual scene is placed over the real world. From this point on, the position and rotation of the virtual camera is then always synchronized with the position and rotation of the device camera, in each case relative to the container or to the target, which respectively form the common reference point of the scenes. The user thus always sees the section of both "worlds" which is determined by the position and rotation of the device camera and which can be influenced by movements of the AR device (eg smartphone).

Broadcast-Server 20 erstellen und mit dem Versand von Broadcast-Daten beginnen: Damit die anderen Nutzer wissen, unter welcher IP-Adresse der bzw. die Server läuft/laufen und wie der/die Server über das Netzwerk angesprochen und adressiert werden kann/können. Dies sollte als letzter Schritt gemacht werden, damit alle Vorbereitungen für die AR-Szene und das Multiplayerspiel getroffen werden konnten, bevor der erste weitere Nutzer-Client sich in die Szene einschaltet.Broadcast server 20 and start broadcasting broadcast data: To let other users know under which IP address the server (s) are running / running and how the server (s) can be addressed and addressed over the network. This should be done as a last step so that all preparations for the AR scene and the multiplayer game could be made before the first additional user client enters the scene.

Üblicherweise laufen alle drei (Software-)Server auf unterschiedlichen Ports parallel oder werden dynamisch gestartet, wenn sie gebraucht werden. Typically, all three (software) servers run in parallel on different ports or are started dynamically when needed.

Auf den Nutzer-Client-Devices, also den AR-Geräten 2 des zweiten und der weiteren Nutzer:On the user client devices, ie the AR devices 2 of the second and the following users:

Die folgenden Schritte laufen fast genau so auch auf dem "Server"-Device 1 ab, da dieses AR-Gerät 1 sozusagen gleichzeitig einen Server bereitstellt, die userbezogenen Aktionen aber als "Client" ausführt. Dieses AR-Gerät 1 des ersten Nutzers nimmt also gleichzeitig die Funktion eines Servers und eines Clients ein. The following steps are almost exactly the same on the "server" device 1 off, because this AR device 1 at the same time provides a server, but runs the user-related actions as a "client". This AR device 1 of the first user thus simultaneously assumes the function of a server and a client.

Allerdings wird es hier direkt nach dem Erstellen der Szene gemacht, dieser Client braucht daher keine Broadcast-Daten zu empfangen und die spezifischen Target-Details nicht per "Netzwerk" abzurufen, sondern diese kann er als Client einfach am gleichen Speicherort wie der Server adressieren.However, it is done here right after creating the scene, so this client does not need to receive broadcast data and retrieve the specific target details via "network", but it can simply address it as a client in the same location as the server.

Empfang der Broadcast-Daten: Die per UDP-Broadcast versendeten Pakete vom Server werden abgefangen. Diese Pakete enthalten den Namen des Servers und seine IP-Adresse sowie die Ports und eventuelle Metainformationen (z.B. ob der "Raum" schon gefüllt ist, also die maximale Client-Zahl (die vom Server je nach Einsatzgebiet definiert werden kann) bereits erreicht wurde. In dem Fall würde ihm dieser Raum einfach nicht angezeigt werden, und er könnte sich dann auch nicht verbinden).Receipt of broadcast data: The packets sent via UDP broadcast are intercepted by the server. These packages contain the name of the server and its IP address as well as the ports and possible meta-information (eg if the "room" is already filled, ie the maximum client number (which can be defined by the server depending on the area of use) has already been reached. In that case, this room would simply not be displayed to him and he would not be able to connect).

Verbindung mit dem Spiele-Server: Nun wird auf Basis der empfangenen Informationen eine (TCP/IP-)Verbindung mit dem Server aufgebaut. Eine UDP/IP Verbindung wäre aber auch möglich. Außerdem wird auch hier nun ein(e) Spiel(-szene) aufgebaut/erstellt/gestartet und z.B. verschiedene Variablen und Objekte initialisiert, damit im Spiel später definiert ist, dass dieser User z.B. ein Client und kein Server ist. Er hat dadurch weniger Rechte; z.B. kann er nur seine Objekte beeinflussen und nicht die von anderen Spielern. Dies wird auch Autorität über ein Objekt genannt. Außerdem wird z.B. auch eine auf den jeweiligen User angepasste GUI (z.B. farblich oder durch individuelle Eingaben wie z.B. Anzeige des Namens) erstellt und angezeigt. Connection to the game server: Now a (TCP / IP) connection to the server is established on the basis of the received information. A UDP / IP connection would also be possible. In addition, here too a game is set up / created / started and e.g. Initialized various variables and objects, so that later defined in the game that this user, for example, a client and not a server. He has fewer rights as a result; e.g. he can only influence his objects and not those of other players. This is also called authority over an object. In addition, e.g. Also, a customized GUI (e.g., in color or by individual inputs such as displaying the name) is created and displayed.

Automatisches Abrufen der spezifischen Target-Details (Informationen, die für das Target beschreibend sind) vom TargetServer (19): Hierzu wird eine Funktion auf dem Spiele-Server (18) aufgerufen (z.B. per Remote-Procedure-Call), die den TargetServer auf einem bestimmten Port öffnet. Nun kann mit normalen HTTP-Methoden (hier per GET-Request) dieser angesprochen werden. Durch den Target-Server wird nun der abgespeicherte Target-Datensatz ausgeliefert. Je nach genutztem Server bzw. Protokoll kann er als Byte-Array, JSON-File, XML, JPG, usw. übertragen werden. In der Beispiel-Implementierung wird er als Byte-Array übertragen und dann wird dieses beim Empfang auf dem Client wieder in ein jpg-Image-File umgewandelt und im Speicher abgespeichert.Automatically retrieve the specific target details (information that is descriptive of the target) from the TargetServer ( 19 ): This is a function on the game server ( 18 ) (eg via remote procedure call), which opens the target server on a specific port. Now this can be addressed with normal HTTP methods (here by GET request). The target server now delivers the saved target data record. Depending on the server or protocol used, it can be transmitted as a byte array, JSON file, XML, JPG, etc. In the example implementation, it is transmitted as a byte array and then this is converted back to a jpg image file on reception on the client and stored in the memory.

Die Beispiel-Implementierung nutzt zur drahtlosen Kommunikation das WLAN/Wifi. Weitere Varianten der Technik könnten das Byte-Array (bzw. den für die Übertragung genutzten Datensatz) aber ebenso z.B. auch per Bluetooth oder über andere (kabellose) Kanäle übertragen.The example implementation uses WLAN / Wifi for wireless communication. Other variants of the technique could use the byte array (or the record used for transmission) but also e.g. via Bluetooth or other (wireless) channels.

Erstellen des virtuellen Containers (8): Dies funktioniert genau so, wie es auch auf dem Server-Device gemacht wurde.Create the virtual container ( 8th ): This works exactly as it was done on the server device.

Platzieren des/der persönlichen GameObjects (hierarchisch mehrere pro Nutzer zugeordnet) im Container 8: Als Child-Objekte werden nun die persönlichen GameObjects in der Szene platziert und dem Server mitgeteilt, dass sie ab jetzt mit denen in der lokalen Szene synchronisiert werden sollen. Außerdem werden die bereits (durch andere Nutzer auf dem Server) existierenden Objekte lokal erstellt und mit der Position auf dem Server synchronisiert. In der Server-Szene werden zusätzlich noch die gemeinsam genutzten Objekte platziert. Oftmals ist es auch sinnvoll, die persönlichen Objekte besonders zu markieren (z.B. farblich abheben oder eine PlayerMarkierung über dem Player o.ä.). Place the personal GameObjects (hierarchically assigned per user) in the container 8th : As child objects, the personal GameObjects are now placed in the scene and told the server that from now on they should be synchronized with those in the local scene. In addition, objects already existing (by other users on the server) are created locally and synchronized with the location on the server. In the server scene, the shared objects are additionally placed. Often it is also useful to highlight the personal objects especially (eg color stand out or a player marker above the player, etc.).

Interaktion und Race-Conditions (bzw. kollidierender Zugriff): Interaction and race conditions (or conflicting access):

Will nun ein Nutzer sein GameObject (also das von ihm kontrollierte virtuelle Objekt) bewegen, so bewegt er sein GameObject in seiner lokalen AR-Szene, die eine gespiegelte/synchronisierte Version der AR-Szene auf dem Server ist. Dadurch bekommt er Interaktionen, die er selbst ausführt, direkt ohne Delay auch in der eigenen Szene angezeigt. Nun werden alle Änderungen, die „multiplayer-mäßig“ relevant sind (also z.B. Position, Rotation, Skalierung, Art der Darstellung (z.B. geänderte Farbe), spielbezogene Informationen (z.B. Leben verloren, Tor geschossen, Schuss abgefeuert, bestimmtes Item gekauft) – also alles, was auch für die anderen Nutzer sowie die Verwaltung der Spiellogik relevant ist), dieses GameObjects auf den Server übertragen, welcher wiederum die neue Position (und alle weiteren zu synchronisierenden Daten) mit allen anderen Nutzern synchronisiert. Dies geschieht so schnell, dass für die Nutzer mit "menschlicher Auffassungsgabe" zu keinem Zeitpunkt ein Unterschied der Szenen auf den einzelnen Devices zu erkennen wäre. In der Beispiel-Implementierung z.B. 1/30 s + WLAN-Latenz = max. 7ms. If a user wants to move his GameObject (ie the virtual object he controls), he moves his GameObject into his local AR scene, which is a mirrored / synchronized version of the AR scene on the server. As a result, he gets interactions that he himself executes, displayed directly in the scene without delay. Now all changes that are "multiplayer-moderately" relevant (eg position, rotation, scaling, type of representation (eg changed color), game-related information (eg lost life, scored goal, shot fired, purchased item) - ie everything that is also relevant for the other users as well as the management of the game logic), this GameObjects transferred to the server, which in turn synchronizes the new position (and all other data to be synchronized) with all other users. This happens so fast that for the users with "human comprehension" no difference of the scenes on the individual devices would be recognizable. In the example implementation e.g. 1/30 s + WLAN latency = max. 7 ms.

Will der Nutzer allerdings mit einem mit anderen Nutzern gemeinsam genutzten Objekt interagieren, muss er sich zunächst vom Server für diese Aktion autorisieren lassen. Nach der Aktion wird ihm diese dann wieder entzogen. Dadurch ist sichergestellt, dass nicht mehrere Nutzer gleichzeitig mit demselben Objekt interagieren können.However, if the user wants to interact with an object shared with other users, he must first have the server authorize the action. After the action, it is then withdrawn. This ensures that multiple users can not interact with the same object at the same time.

Eine weitere Besonderheit, die in der Beispiel-Implementierung umgesetzt wurde, ist die Möglichkeit, auf allen Clients anzuzeigen, wenn ein bestimmter Nutzer den Fokus auf das Target verliert. D.h. er bewegt entweder die Kamera weg oder das Kamerabild wird kurzfristig unscharf, was immer wieder vorkommen kann. Um hier nicht z.B. in Spielen den "noch anwesenden" Nutzern einen unfairen Vorteil zu verschaffen, wird der fehlende Nutzer "ausgeblendet", damit die anderen nicht trotzdem mit ihm interagieren können oder auch durch ihn evtl. abgelenkt sind. Hierfür wird, durch das AR-Gerät des zugehörigen Nutzers, ein neues Wurzel-Objekt im virtuellen Raum an einer weit entfernten (und somit "unsichtbaren") Stelle erstellt und das zugehörige Nutzer-Objekt darin als Child platziert. Dadurch erbt dieses Child die weit entfernte Position des neuen Wurzel-Objekts und der zugehörige Nutzer ist für keinen anderen Nutzer mehr sichtbar, er befindet sich aber immer noch in der Szene, so dass der zugehörige Nutzer noch interagieren kann, z.B. kann er ein nutzerbezogenes Menü aufrufen. Another feature implemented in the sample implementation is the ability to show on all clients when a particular user loses focus on the target. That he either moves the camera away or the camera image is blurred at short notice, which can happen again and again. To avoid here, for example In games to give the "still present" users an unfair advantage, the missing user is "hidden" so that the others can not interact with him anyway or may be distracted by him. For this purpose, a new root object is created in virtual space at a far-away (and hence "invisible") point by the AR device of the associated user and the associated user object is placed therein as a child. As a result, this child inherits the distant location of the new root object and the associated user is no longer visible to any other user, but is still in the scene so that the associated user can still interact, e.g. he can call a user-related menu.

Es gibt natürlich auch die Möglichkeit, den Nutzer nur z.B. eine bestimmte "Ich-bin-offline"-Pose einnehmen zu lassen oder ihn z.B. mit einem "Disconnected"-Icon o.ä. (z.B. über dem Kopf schwebend) zu markieren. Dies bleibt dem jeweiligen Entwickler überlassen.Of course, there is also the possibility to inform the user only e.g. to take a certain "I am offline" pose, or take it e.g. with a "disconnected" icon or similar (hovering over the head, for example). This is left to the respective developer.

Anstatt ein vorhandenes Infrastruktur-WLAN zu nutzen, ist es auch möglich, vom Server-Device ein Ad-Hoc-Netzwerk erstellen und alle Clients damit verbinden zu lassen. Dann ist man unabhängig vom physischen Standort, da das komplette Spiel bzw. die Kommunikation untereinander und die AR-Erstellung usw. komplett ohne Infrastruktur und auch ohne Internet-Zugriff funktioniert. Instead of using an existing infrastructure WLAN, it is also possible to create an ad hoc network from the server device and to let all clients connect to it. Then one is independent of the physical location, since the complete game or the communication between each other and the AR-creation etc. completely without infrastructure and also without Internet access works.

Man kann ein (Multiplayer-)Spiel somit auch an Orten spielen, an denen man kein mobiles Internet und kein Infrastruktur-WLAN hat, was mit anderen Lösungen nicht funktioniert, da man dort immer entweder ein vordefiniertes Target auf einem Server (im Internet) liegen hat oder die Interaktion mit Elementen über einen solchen abläuft.You can play a (multiplayer) game thus also in places, where one does not have a mobile Internet and infrastructure WLAN, which does not work with other solutions, since one always there either a predefined target on a server (on the Internet) has or interacts with elements over one.

Somit lassen sich mobile AR-Geräte (z.B. Smartphones) vollkommen unabhängig von jeder Infrastruktur nutzen, also z.B. überall in der freien Natur. Zusammen mit der Möglichkeit, ein Target frei und für jede Spielsession neu wählen zu können, ergibt sich eine größere Freiheit in der Auswahl der Spielumgebung und somit ein erweitertes Erlebnis. Thus, mobile AR devices (e.g., smartphones) can be used completely independently of any infrastructure, e.g. everywhere in the great outdoors. Together with the ability to choose a target freely and for each game session, there is a greater freedom in the selection of the game environment and thus an extended experience.

Nachfolgend ist zunächst eine kurze Beispiel-Anwendung anhand eines einfachen Spieles dargestellt. Sie wird unter Bezugnahme auf die 8 und 9 beschrieben. Below is a brief example of an application based on a simple game. She is referring to the 8th and 9 described.

Zwei Nutzer (Spieler) mit AR-Gerät 1 bzw. 2 sitzen sich gegenüber. Zwischen ihnen befindet sich ein Tisch, auf dem ein Buch liegt. Spieler 1 setzt nun mit der beschriebenen Technik ein virtuelles Spielfeld (Container-Objekt 8) auf das Buch (Target 7) und platziert seine Spiel-Figur (User Object 21) auf dem Spielfeld. Spieler 2 verbindet sich nun mit Spieler 1 und platziert dadurch auch seine Spiel-Figur (User Object 22) auf dem Spielfeld. Nun kann jeder Spieler seine Spielfigur mit Buttons auf seinem Smartphone (AR-Gerät 1 bzw. 2) steuern.Two users (players) with AR device 1 respectively. 2 sit opposite each other. Between them is a table with a book on it. player 1 Now uses the technique described to create a virtual playing field (container object 8th ) on the book (Target 7 ) and places his game character (User Object 21 ) on the field. player 2 now connects with players 1 and thereby also places his game character (User Object 22 ) on the field. Now every player can his character with buttons on his smartphone (AR device 1 respectively. 2 ) Taxes.

Anschließend kann ein Spiel gestartet werden, bei dem sich beide Spieler gegenseitig z.B. einen (virtuellen) Ball (virtuelles Objekt 22) zuspielen. Die virtuellen Objekte sind in der Abbildung als gepunktete Linien dargestellt. Der Ball ist, genau wie die Spieler oder alle anderen virtuellen Objekte ein 3D-Modell. Wie die Spieler liegt er in dieser Form bereits in der App vor und muss nur noch initialisiert werden. Es ist auch möglich, den zugehörigen Datensatz z.B. von einem Server zu laden oder zwischen den einzelnen Geräten auszutauschenSubsequently, a game can be started in which both players mutually eg a (virtual) ball (virtual object 22 ) to play. The virtual objects are shown in the figure as dotted lines. Like the players or any other virtual object, the ball is a 3D model. Like the players, it is already in the app in this form and only needs to be initialized. It is also possible to load the associated data record eg from a server or to exchange it between the individual devices

Auf seinem AR-Gerät hätte dann jeder der beiden Spieler etwa folgende Ansicht (vgl. 9) Mit den äußeren beiden Buttons kann er dann jeweils seine Spielfigur nach rechts oder nach links bewegen und mit dem mittleren den Ball auf das gegnerische Tor schießen.On his AR device, each player would have the following view (cf. 9 ) With the outer two buttons, he can then each move his character to the right or to the left and shoot with the middle the ball on the opponent's goal.

Ein anderes Beispiel ist: Ein Architekt führt seinen Kunden sein gestaltetes Haus vor. Er platziert es auf der “Spielfläche” (Grundstück) und im Anschluss können alle Kunden das Haus aus ihrer Perspektive betrachten. Der Architekt kann nun z.B. abwechselnd verschiedene Teile seines Hauses markieren, die auch auf allen Kunden-Geräten sichtbar sind, um die z.B. auf einen spezifischen Teil des Hauses aufmerksam zu machen. Oder er kann dynamisch bestimmte Elemente (Dach, Möbel, usw.) des Hauses ein- bzw. ausblenden.Another example is: An architect shows his customers his designed house. He places it on the "playing surface" (land) and then all customers can see the house from their perspective. The architect can now, for example, alternately mark different parts of his house, which are also visible on all customer equipment, in order to see the e.g. to draw attention to a specific part of the house. Or he can dynamically show or hide certain elements (roof, furniture, etc.) of the house.

Weitere Beispiele sind virtuelle Brettspiele; eine virtuelle Autorennbahn; eine virtuelle Band, die auf einer virtuellen Bühne spielt; eine Produktpräsentation (z.B. ein neues Spielzeug oder ein Auto); ein Möbelstück soll vor der Einrichtung darauf überprüft werden, ob es auch in die echte Umgebung passt (und mehrere Menschen können es so gleichzeitig betrachten und haben dadurch eine bessere Diskussionsgrundlage); ein virtuelles Theater; viele andere Anwendungen sind damit denkbar.Other examples are virtual board games; a virtual racecourse; a virtual band playing on a virtual stage; a product presentation (e.g., a new toy or a car); a piece of furniture should be checked before installation to see if it also fits into the real environment (and several people can look at it at the same time and thus have a better basis for discussion); a virtual theater; many other applications are conceivable.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

1 1
AR-Gerät von Nutzer 1 AR device of user 1
2 2
AR-Gerät von Nutzer 2 AR device of user 2
3 3
Sichtbereich von Nutzer 1 Visibility range of users 1
4 4
Sichtbereich von Nutzer 2 Visibility range of users 2
5 5
Virtuelles Objekt von Nutzer 1 Virtual object of users 1
6 6
Virtuelles Objekt von Nutzer 2 Virtual object of users 2
77
Target (Ziel) Target
8 8th
Virtueller Container (Container-Objekt)Virtual container (container object)
9 9
AR-RaumAR space
10 10
Oberflächesurface
11A 11A
1. Mit dem Server verbinden1. Connect to the server
11B 11B
2. Informationen zum Ziel bekommen2. Get information about the goal
12 12
Verbindung (z.B. WLAN)Connection (e.g., WLAN)
13 13
"Haupt"-Gerät"Main" device
14 14
"Client"-Gerät"Client" device
15 15
Display/ScreenDisplay / Screen
16 16
Kameracamera
17 17
AR-Anwendung/-AppAR application / app
18 18
Anwendungs-/Spiele-ServerApplication / game server
19 19
Server zum Austausch der Target-Informationen / Target-ServerServer for exchanging the target information / target server
20 20
Broadcast-ServerBroadcast server
21 21
Anwendungs-/Spiele-ClientApplication / Game Client
22 22
gemeinsam genutztes virtuelles Objekt (hier ein Ball)shared virtual object (here a ball)
23 23
Left-ButtonLeft button
24 24
Shoot-ButtonShoot button
25 25
Right-ButtonRight button

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte Nicht-PatentliteraturCited non-patent literature

  • https://docs.unity3d.com/Manual/UNet.html [0093] https://docs.unity3d.com/Manual/UNet.html [0093]

Claims (17)

Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein erstes AR-Gerät (1), auf der Basis eines Bildes ein Ausschnitt des Bildes als ein Target (7) definiert wird und von dem Ausschnitt des Bildes Informationen abgeleitet werden, welche für das Target (7) beschreibend sind, und wobei zumindest ein virtuelles dreidimensionales Container-Objekt (8) initialisiert und mit einer Lageangabe versehen wird, wobei die Lageangabe eine geometrische Relation zu dem Target (7) aufweist und wobei die für das Target (7) beschreibende Informationen, Informationen, die für das zumindest eine virtuelle Container-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes (8) durch das erste AR-Gerät (1) bereitgestellt wird und, über eine Kommunikationsverbindung, zur AR-mäßigen Anzeige des Container-Objektes (8) für zumindest ein zweites AR-Gerät (2) bereitgestellt wird. A computer-implemented method for presenting augmented reality based on images of a real three-dimensional scene, wherein, by a first AR device ( 1 ), on the basis of an image, a section of the image as a target ( 7 ) and from the section of the image information is derived, which for the target ( 7 ) are descriptive, and wherein at least one virtual three-dimensional container object ( 8th ) is initialized and provided with a position specification, wherein the position specification has a geometric relation to the target ( 7 ) and where for the target ( 7 ) descriptive information, information that is indicative of the at least one virtual container object, and the location indication for AR-moderate display of the container object ( 8th ) by the first AR device ( 1 ) and, via a communication link, for the AR-like display of the container object ( 8th ) for at least a second AR device ( 2 ) provided. Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein zweites AR-Gerät (2), Informationen, welche für ein Target (7) beschreibend sind, und Informationen, die für zumindest ein mit einer Lageangabe versehenes virtuelles Container-Objekt bezeichnend sind, wobei die Lageangabe eine geometrische Relation zu dem Target (7) aufweist, über eine Kommunikationsverbindung von einem ersten AR-Gerät kommend empfangen werden und auf der Basis der empfangenen Informationen das Target in Bildern, aufgenommen durch das zweite AR-Gerät (2) fokussiert wird und das virtuelle Container-Objekt (8) entsprechend der Relation AR-mäßig angezeigt wird. A computer-implemented method for presenting augmented reality based on images of a real three-dimensional scene, wherein, by a second AR device ( 2 ), Information for a target ( 7 ) are descriptive and information indicative of at least one virtual container object provided with a location indication, the location indication being a geometric relation to the target ( 7 ) are received via a communication link coming from a first AR device and, based on the received information, the target in pictures taken by the second AR device ( 2 ) and the virtual container object ( 8th ) according to the relation AR-moderately. Verfahren gemäß Anspruch 1 oder 2, wobei, durch ein AR-Gerät (1, 2), zumindest ein virtuelles dreidimensionales Nutzer-Objekt (5, 6) initialisiert wird, das eine Beschreibung zur Darstellung des Gegenstandes durch ein AR-Gerät (1, 2) enthält, und mit einer Lageangabe versehen wird, wobei die Lageangabe eine geometrische Relation zu der Lageangabe des Container-Objekts (8) aufweist, wobei das zumindest eine dreidimensionale Nutzer-Objekt (5, 6) durch das AR-Gerät (1) gesteuert wird und Informationen, die für das zumindest eine virtuelle Nutzer-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige durch das AR-Gerät (1, 2) bereitgestellt werden und zur Anzeige des Nutzer-Objektes (5, 6) für zumindest ein weiteres AR-Gerät (1, 2) bereitgestellt werden, vorzugsweise jeweils in Echtzeit. Method according to claim 1 or 2, wherein, by an AR device ( 1 . 2 ), at least one virtual three-dimensional user object ( 5 . 6 ) which is a description of how the article is represented by an AR device ( 1 . 2 ), and provided with a position specification, wherein the position statement has a geometric relation to the position specification of the container object ( 8th ), wherein the at least one three-dimensional user object ( 5 . 6 ) through the AR device ( 1 ) and information indicative of the at least one virtual user object and the location indication for AR-type display by the AR device ( 1 . 2 ) and to display the user object ( 5 . 6 ) for at least one further AR device ( 1 . 2 ), preferably each in real time. Verfahren gemäß einem der vorherigen Ansprüche, wobei das Container-Objekt (8) mit einer Wurzel-Eigenschaft einer vorbestimmten hierarchischen Relation versehen wird und zumindest ein virtuelles Objekt (5, 6) mit der vorbestimmten hierarchischen Relation zu einem weiteren virtuellen Objekt versehen wird, wobei die Wurzel auf höchster Hierarchieebene angeordnet ist, derart, dass die mit einer hierarchischen Relation versehenen virtuellen Objekte zusammen mit dem Wurzel-Objekt eine hierarchische Baumstruktur repräsentieren, so dass bei einer Bewegung eines virtuellen Objektes jedes Objekt mitbewegt wird, das in der hierarchischen Struktur von der Wurzel aus betrachtet hinter dem bewegten Objekt angeordnet ist.Method according to one of the preceding claims, wherein the container object ( 8th ) is provided with a root property of a predetermined hierarchical relation and at least one virtual object ( 5 . 6 ) is provided with the predetermined hierarchical relation to another virtual object, wherein the root is arranged at highest hierarchical level, such that the virtual objects provided with a hierarchical relation together with the root object represent a hierarchical tree structure, so that during a movement a virtual object of each object is moved, which is arranged in the hierarchical structure from the root behind the moving object. Verfahren gemäß einem der vorherigen Ansprüche, wobei die AR-Darstellung durch optische Überlagerung der mittels einer virtuellen Kamerafunktion dargestellten virtuellen Objekte und dem mittels einer realen Kamerafunktion erfassten Bild der Szene gewonnen wird, wobei die virtuelle Kamerafunktion der realen Kamerafunktion hinsichtlich Brennweite und Perspektive gleicht. Method according to one of the preceding claims, wherein the AR representation is obtained by optical superimposition of the virtual objects represented by a virtual camera function and the image captured by a real camera function image of the scene, wherein the virtual camera function of the real camera function in terms of focal length and perspective. Verfahren gemäß einem der vorherigen Ansprüche, wobei anwendungsrelevante Informationen jedes virtuellen Objekts in der Szene mittels zumindest einem AR-Gerät beeinflussbar sind und, vorzugsweise in Echtzeit, für weitere Geräte bereitgestellt werden. Method according to one of the preceding claims, wherein application-relevant information of each virtual object in the scene can be influenced by means of at least one AR device and, preferably in real time, provided for further devices. Verfahren gemäß einem der vorherigen Ansprüche, wobei, durch das erste AR-Gerät, ein zweiter Server (19) initialisiert wird, der die für das Target beschreibende Informationen, die Information, die für das zumindest eine virtuelle Container-Objekt bezeichnend ist, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein AR-Gerät zum Abruf durch zumindest ein AR-Gerät bereitstellt, und der auf dem ersten AR-Gerät läuft. Method according to one of the preceding claims, wherein, by the first AR device, a second server ( 19 ) initializing the information describing the target, the information indicative of the at least one virtual container object, and the location indication for AR-like display of the container object for at least one AR device for retrieval by at least one AR device running on the first AR device. Verfahren gemäß einem der vorherigen Ansprüche, wobei, durch das erste AR-Gerät, ein erster Server initialisiert wird, der definiert, für wieviele AR-Geräte die Szene abrufbar bereitgehalten wird, Netzwerk-Information sowie Informationen bereitstellt, welche beschreibend für ein Spiel sind, für das die Objekte bereitgestellt werden, Informationen zum Synchronisieren der Positionen und/oder weiterer Anwendungs-relevanter Informationen aller Objekte der Szene zum Abruf durch zumindest ein AR-Gerät bereitstellt, und der auf dem ersten AR-Gerät läuft. The method of claim 1, wherein, by the first AR device, a first server is defined that defines for how many AR devices the scene is retrievably held, provides network information as well as information descriptive of a game, for which the objects are provided, providing information for synchronizing the positions and / or other application-relevant information of all the objects of the scene for retrieval by at least one AR device, and running on the first AR device. Verfahren gemäß einem der vorherigen Ansprüche, wobei, durch das erste AR-Gerät, ein dritter Server (20) initialisiert wird, der Broadcastdaten aussendet, welche Informationen enthalten, um das erste AR-Gerät im Netzwerk zu finden, und um das AR-Gerät mit den Servern zu verbinden, die durch das zumindest eine weitere AR-Gerät zunächst empfangen werden. Method according to one of the preceding claims, wherein, by the first AR device, a third server ( 20 ), which broadcasts broadcast data containing information to find the first AR device in the network and to connect the AR device to the servers initially received by the at least one other AR device. Verfahren gemäß einem der vorherigen Ansprüche, wobei, wenn das Target im Bild optisch aus dem Fokus eines AR-Gerätes gerät, zwecks Unsichtbarmachung des dem AR-Gerät zugeordnete Spielerobjekts durch das AR-Gerät eine Lageangabe zugewiesen erhält, welche einer für alle AR-Geräte unsichtbaren Position in der Szene entspricht.Method according to one of the preceding claims, wherein, when the target in the image optically out of focus of an AR device, for the purpose of invisibility of the player device assigned to the AR device by the AR device assigned a location indication, which one for all AR devices invisible position in the scene. Verfahren gemäß einem der vorherigen Ansprüche, wobei, wenn das Target im Bild optisch aus dem Fokus eines AR-Gerätes gerät, und wobei, auf dem AR-Gerät das Container-Objekt eine Lageangabe zugewiesen erhält, die einer für das AR-Gerät unsichtbaren Position in der Szene entspricht. Method according to one of the preceding claims, wherein, when the target in the image visually gets out of focus of an AR device, and wherein, on the AR device, the container object is assigned a position indication that is an invisible position for the AR device in the scene corresponds. Verfahren gemäß einem der vorherigen Ansprüche, wobei, insbesondere während des Aufzeichnens des Bildes, das Target mittels einer Lichtquelle aufgehellt wird.Method according to one of the preceding claims, wherein, in particular during the recording of the image, the target is lightened by means of a light source. Programm, insbesondere App, das, wenn von einer elektronischen Verarbeitungseinrichtung ausgeführt, die elektronische Verarbeitungseinrichtung so steuert, dass sie das Verfahren gemäß einem der vorherigen Ansprüche ausführt.A program, in particular an app, which, when executed by an electronic processing device, controls the electronic processing device to carry out the method according to one of the preceding claims. Verfahren gemäß einem der vorherigen Ansprüche, wobei die Kommunikationsverbindung kabelgebunden oder drahtlos, insbesondere via Infrastruktur-WLAN, AdHoc-WLAN des ersten AR-Geräts oder eines zweiten AR-Geräts, Bluetooth, Mobilfunk abgewickelt wird.Method according to one of the preceding claims, wherein the communication connection is wired or wireless, in particular via infrastructure WLAN, AdHoc WLAN of the first AR device or a second AR device, Bluetooth, mobile phone is handled. Verfahren gemäß einem der vorherigen Ansprüche, wobei eine physische Änderung des Targets die Darstellung der virtuellen Objekte in der AR-Szene auf allen AR-Geräten beeinflusst, vorzugsweise in Echtzeit. Method according to one of the preceding claims, wherein a physical change of the target affects the representation of the virtual objects in the AR scene on all AR devices, preferably in real time. Programm, insbesondere App, Datenträger oder Signal, welche Anweisungen enthalten, die, wenn von einer elektronischen Verarbeitungseinrichtung ausgeführt, die elektronische Verarbeitungseinrichtung so steuert, dass sie das Verfahren gemäß einem der vorherigen Ansprüche ausführt.A program, in particular an app, data carrier or signal, containing instructions which, when executed by an electronic processing device, controls the electronic processing device to carry out the method according to one of the preceding claims. AR-Gerät, insbesondere Smartphone, Tablet-Computer oder Wearable Device, welches programmiert ist, das Verfahren gemäß einem der Ansprüche 1 bis 15 auszuführen.AR device, in particular smartphone, tablet computer or wearable device, which is programmed to carry out the method according to one of claims 1 to 15.
DE102016116582.4A 2016-09-05 2016-09-05 Method and apparatus for displaying augmented reality Withdrawn DE102016116582A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016116582.4A DE102016116582A1 (en) 2016-09-05 2016-09-05 Method and apparatus for displaying augmented reality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016116582.4A DE102016116582A1 (en) 2016-09-05 2016-09-05 Method and apparatus for displaying augmented reality

Publications (1)

Publication Number Publication Date
DE102016116582A1 true DE102016116582A1 (en) 2018-03-08

Family

ID=61198167

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016116582.4A Withdrawn DE102016116582A1 (en) 2016-09-05 2016-09-05 Method and apparatus for displaying augmented reality

Country Status (1)

Country Link
DE (1) DE102016116582A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111665947A (en) * 2020-06-10 2020-09-15 浙江商汤科技开发有限公司 Treasure box display method and device, electronic equipment and storage medium
CN112330819A (en) * 2020-11-04 2021-02-05 腾讯科技(深圳)有限公司 Interaction method and device based on virtual article and storage medium
CN114219924A (en) * 2021-10-18 2022-03-22 腾讯科技(深圳)有限公司 Method, apparatus, device, medium, and program product for adaptive display of virtual scene
CN114489342A (en) * 2022-01-29 2022-05-13 联想(北京)有限公司 Image processing method and device and electronic equipment

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
https://docs.unity3d.com/Manual/UNet.html
IRAWATI, Sylvia, et al. Varu framework: Enabling rapid prototyping of VR, AR and ubiquitous applications. In: Virtual Reality Conference, 2008. VR'08. IEEE. IEEE, 2008. S. 201-208. doi: 10.1109/VR.2008.4480774
WAGNER, Daniel, et al. Towards massively multi-user augmented reality on handheld devices. In: International Conference on Pervasive Computing. Springer Berlin Heidelberg, 2005. S. 208-219. doi: 10.1007/11428572_13

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111665947A (en) * 2020-06-10 2020-09-15 浙江商汤科技开发有限公司 Treasure box display method and device, electronic equipment and storage medium
CN112330819A (en) * 2020-11-04 2021-02-05 腾讯科技(深圳)有限公司 Interaction method and device based on virtual article and storage medium
CN112330819B (en) * 2020-11-04 2024-02-06 腾讯科技(深圳)有限公司 Interaction method and device based on virtual article and storage medium
CN114219924A (en) * 2021-10-18 2022-03-22 腾讯科技(深圳)有限公司 Method, apparatus, device, medium, and program product for adaptive display of virtual scene
CN114219924B (en) * 2021-10-18 2023-06-13 腾讯科技(深圳)有限公司 Adaptive display method, device, equipment, medium and program product for virtual scene
CN114489342A (en) * 2022-01-29 2022-05-13 联想(北京)有限公司 Image processing method and device and electronic equipment

Similar Documents

Publication Publication Date Title
DE102015100911B4 (en) Improved communication between remote participants using advanced and virtual reality
DE69934972T2 (en) IMAGING DEVICE AND IMAGING METHOD
DE102018207088A1 (en) PICTURE ANALYSIS WITHOUT MARKERS FOR AUGMENTED REALITY
CN110494196A (en) System and method for using virtual reality to study in coordination
DE102020107913A1 (en) USING GAME STYLE PATTERNS TO CREATE VIRTUAL REPRESENTATIONS OF PLAYERS
DE69937468T2 (en) System for film recording and editing
DE102016116582A1 (en) Method and apparatus for displaying augmented reality
EP3595789B1 (en) Virtual reality system using an actor and director model
US11100695B1 (en) Methods and systems for creating an immersive character interaction experience
KR101327995B1 (en) Apparatus and method for processing performance on stage using digital character
DE112018006666T5 (en) INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND PROGRAM
DE102016113060A1 (en) Method for controlling an object
CN110365666A (en) Multiterminal fusion collaboration command system of the military field based on augmented reality
DE112013005689T5 (en) Portable game console
WO2014140125A2 (en) New uses of smartphones and comparable mobile digital terminal devices
WO2021227864A1 (en) Virtual scene display method and apparatus, storage medium, and electronic device
CN112711458B (en) Method and device for displaying prop resources in virtual scene
DE112011105982T5 (en) Reinforcement of stored content with local sensors and AR communication
DE102018217898A1 (en) Different perspectives from a common virtual environment
DE102020108752A1 (en) JOIN OR REPEAT AN INSTANCE OF A GAME TRANSFER
CN112306321B (en) Information display method, device and equipment and computer readable storage medium
Sourin Nanyang Technological University virtual campus [virtual reality project]
CN113559510A (en) Virtual skill control method, device, equipment and computer readable storage medium
DE112020000725T5 (en) OBJECT POSITIONING AND MOVEMENT IN THREE-DIMENSIONAL CONTENT
Hoppe Urban art as countervisuality?

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: 2S-IP SCHRAMM SCHNEIDER BERTAGNOLL PATENT- UND, DE

R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee