suchen
HeimWeb-Frontendjs-TutorialAugmented Reality im Browser mit Ehrfurcht.js

Augmented Reality im Browser mit Ehrfurcht.js

Key Takeaways

  • Augmented Reality (AR) kann in mobilen Browsern mit der Awe.js -Bibliothek implementiert werden, die die Kamera des Geräts und drei.js zum Erstellen von AR -Erlebnissen nutzt.
  • Die Awe.js-Bibliothek unterstützt mehrere AR-Erlebnisse, einschließlich GEO-basierter AR, Integration mit Oculus Rift, Leap Motion Controller und Marker-basiertem AR, der in der Demo verwendet wird.
  • Für die Demo benötigen Sie Google Chrome für Mobilgeräte, ein IFTTT -Konto und einen gedruckten AR -Marker. Die Demo funktioniert auch auf einigen Desktop -Browsern wie Chrome und Opera.
  • Die Demo umfasst eine 3D -Steuerplatte, die über einem physischen Marker erscheint und mit externen Diensten wie IFTTT interagieren kann, um Einstellungen wie leichte Farben zu ändern.
  • Awe.js erfordert das Einrichten verschiedener Parameter wie Gerätetyp, Kameraposition und Lichteinstellungen im Browser und verwendet Punkte von Interesse (POI) und Projektionen, um AR -Elemente zu verwalten.
  • Chrome merkt jetzt HTTPS für Webseiten, die auf die Kamera zugreifen, und erfordert Anpassungen wie die Verwendung von HTTPS -Tunneln für lokale Tests.

Augmented Reality ist ein ordentliches Konzept. Wir sehen uns die Welt um uns herum aus und ergänzen sie mit Bildern, Text, Ton und Video. Tech -Unternehmen beginnen, die Möglichkeiten von AR mit Geräten wie Meta -Brillen, Microsoft HoloLens und Magic Leap zu erkunden. Diese sehr aufregenden AR -Headsets sind noch nicht ganz bereit für die Verbraucherfreigabe, daher kann es ein wenig dauern, bis jeder Haushalt ein Paar hat. Es gibt jedoch eine andere Möglichkeit, die Welt in die Realität zu erweitern, mit etwas, auf das sie möglicherweise leichter Zugriff haben - den mobilen Browser.

Ich habe zuvor andere Arten von Reality -Erstellung und -manipulation mit JavaScript und drei.js hier bei SitePoint in meinen Artikeln über das VR mit Google Cardboard und drei.js und Filterung der Realität mit JavaScript und Google Cardboard behandelt. In diesem Artikel werde ich zeigen, wie Sie eine JavaScript -Bibliothek namens Awe.js verwenden können, um ein Augmented Reality -Erlebnis im mobilen Web zu erstellen. Wir werden eine 3D -Steuerplatte erstellen, die sich über einen Papiermarker öffnet. Wir können es anschließen, um so ziemlich alles zu tun, was über eine JavaScript -HTTP -Anforderung aktiviert werden kann. Ich habe sie so eingerichtet, dass ich die Farbe meines LIFX -Glühbirnens mit IFTTT ändert.

was Sie benötigen

Für diese Demo benötigen Sie derzeit Google Chrome für Mobile. Es kann möglicherweise auch für Mobile auf Firefox funktionieren, aber ich habe festgestellt, dass Click -Ereignisse für mich nicht ausgelöst wurden, als ich es auf meinem HTC One M9 ausprobiert habe. Es funktioniert auch in einigen Desktop -Browsern (Chrome und Opera hat auf meinem Mac ziemlich gut funktioniert), ist aber definitiv nicht die gleiche Erfahrung wie ein Smartphone mit Touch -Events. Es könnte jedoch auf einem Tablet ordentlich sein.

Sie benötigen auch ein IFTTT -Konto und Kenntnisse darüber, wie der Maker -Kanal mit Regeln eingerichtet wird, die auf HTTP -Anforderungen ausgelöst werden. Wenn Sie neu bei IFTTT sind, haben wir zuvor die Grundlagen im Artikel zum Anschließen von LIFX -Glühbirnen mit ITTT mit IFTTT durchgesehen. Für diejenigen, die neu im Maker -Kanal sind, haben wir dies auch bei der Verbindung des IoT und des Node.js mit IFTTT.

abgedeckt

Schließlich müssen Sie einen Marker auf ein Stück Papier ausdrucken. Der Marker, den wir verwenden werden, lautet:

Augmented Reality im Browser mit Ehrfurcht.js

Der Code

Wenn Sie es vorziehen, direkt in den Code zu gelangen und ihn auszuprobieren, ist alles auf Github verfügbar.

Awe.js

Awe.js ist eine JavaScript -Bibliothek, die drei.js, die Kamera Ihres Geräts und einige ziemlich intelligente Techniken verwendet, um eine Augmented Reality im Browser zu erstellen. Sie können die Bibliothek und einige Muster auf dem Awe.js Github Repo herunterladen. Es liefert vier verschiedene Arten von AR -Erlebnissen, jeweils ihr eigenes Beispiel im Repo:

  • Geo_ar - Ermöglicht Sie, Objekte an den Set -Kompasspunkten zu setzen.
  • GRIFT_AR - kompatibel mit einem Oculus Rift.
  • lap_ar - integriert in den Leap Motion Controller.
  • marker_ar - Ermöglicht Ihnen eine Erfahrung, die auf Augmented -Reality -Markern positioniert ist. Dies ist diejenige, mit der wir in dieser Demo arbeiten werden.

Unser erweiterter Reality -Demo -Code

Unser Demo -Code ist über 300 Zeilen lang, aber ein Großteil davon ist wiederholter Code für ähnliche Objekte. Ich würde empfehlen, den Demo -Code aus dem Github Repo der Demo herunterzuladen und die hier angegebenen Erklärungen zu folgen. Sobald Sie eine Vorstellung davon haben, wie es alles funktioniert, versuchen Sie, sich davon abzubiefen und etwas Eigenes zu bauen.

Alles beginnt innerhalb des Load -Ereignisses in unserem Fenster. Das allererste, was wir einschließen, ist eine Variable, um zu verfolgen, ob unser AR -Bedienfeld (ich habe es kurz hier als "Menü" bezeichnet) geöffnet oder nicht. Anfangs ist es geschlossen.

<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>

Dann verwenden wir die Awe.js -Bibliothek. Alles, was wir tun, ist im Fenster definiert.awe.init () Funktion. Wir beginnen mit einigen globalen Einstellungen für unsere AR -Szene.

<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>
  • device_type - Alle Beispiele setzen dies auf Awe.auto_detect_device_type, der es fordert, das Gerät automatisch zu erkennen. Bisher habe ich nicht gesehen, dass ich dies ändern musste.
  • Einstellungen - Einstellungen Wir möchten hier tatsächlich lebendig ändern. Dazu gehören:
    • container_id - Die ID des Elements, das unsere gesamte Erfahrung in der Inneren erzeugt wird.
    • fps - unsere gewünschten Frames pro Sekunde (optional).
    • default_camera_position - Die Standard -Kamera -Position, die wir unsere Szene von (wir beginnen sie unter (0,0,0))).
    • default_lights - Wir können eine Reihe verschiedener drei.js -Lichter für unsere Szene einrichten, wobei jeder ID die Art von Licht und seine Farbe definiert. Unsere Demo hat nur einen weißen Drei -Js -Punktlicht. Für den Lichttyp stehen eine Reihe von Optionen zur Verfügung, die verschiedenen Arten von drei Leuchten entsprechen - 'Bereich', 'Richtungssteuer', 'Hemisphäre', 'Point' und 'Spot'.

Sobald unsere Einstellungen vorhanden sind, definieren wir dann, was zu tun ist, wenn Ehrfurcht initialisiert wurde. Alles ist in eine Ehrfurcht. Achten Sie darauf, nur die Browserfunktionen zu definieren, die Sie für die Demo benötigen, da Sie Ihre AR -App unnötig verhindern können, dass Sie in einigen Browsern arbeiten, wenn Sie diese fälschlicherweise mit Funktionen definieren, die in einigen ihrer anderen Github -Beispiele aufgeführt sind. Um beispielsweise Elemente basierend auf Kompasspunkten positioniert zu haben, benötigen Sie Zugriff auf die Gyro -Fähigkeit. Das funktioniert bei den meisten Desktop -Browsern nicht. Das brauchen wir in dieser Demo nicht, also schließen wir es aus.

<span>window.awe.init({
</span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
</span>    <span>settings: {
</span>      <span>container_id: 'container',
</span>      <span>fps: 30,
</span>      <span>default_camera_position: { x:0, y:0, z:0 },
</span>      <span>default_lights: [{
</span>        <span>id: 'point_light',
</span>        <span>type: 'point',
</span>        <span>color: 0xFFFFFF
</span>      <span>}]
</span>    <span>},</span>

Die Dateien, die definiert sind, ziehen in spezifische Funktionen für Awe.js-lib/Awes-standard-Abhängigkeiten.js, lib/Awes-standard.js und lib/Awes-standard-window_Resized.js ziemlich verbreitet, definieren Die Standard -Teile für Ehrfurcht und Handhabungsfenster ändern sich. Unsere Demo verwendet Marker, für die die beiden anderen Dateien unter diesen aufgeführt sind.

<span>ready: function() {
</span>    awe<span>.util.require([
</span>      <span>{
</span>        <span>capabilities: ['gum','webgl'],</span>

Sobald wir alle diese Dateien erfolgreich geladen haben, führen wir die treffend benannte Success () Awe.js -Funktion aus. Die erste Funktion, die Sie immer ausgeführt haben, wenn Sie mit der Anzeige von Elementen beginnen können, legt die Awe.js -Szene ein.

<span>files: [ 
</span>    <span>['lib/awe-standard-dependencies.js', 'lib/awe-standard.js'],
</span>    <span>'lib/awe-standard-window_resized.js',
</span>    <span>'lib/awe-standard-object_clicked.js',
</span>    <span>'lib/awe-jsartoolkit-dependencies.js',
</span>    <span>'lib/awe.marker_ar.js'
</span>  <span>],</span>
Alle Elemente in Ehrfurcht.js sind innerhalb von „Punkten von Interesse“ (POI) positioniert. Dies sind spezifische Punkte in der Szene, die über Koordinaten gekennzeichnet sind, dass Objekte innerhalb von von positioniert werden können. Sie können Pois in Ehrfurcht und Elementen selbst bewegen. Wir erstellen einen einzelnen POI, der überall dort platziert wird, wo ein bestimmter Papiermarker zu sehen ist. Um eine POI zu erstellen, verwenden wir die Funktion von Awe.js von Awe.pois.add ().

Ich habe ihm eine ID von "Marker" gegeben, aber Sie könnten es alles nennen, was Sie möchten, solange Sie in anderen Verweise auf diesen POI im Code konsistent sind. Wir setzen seine anfängliche Position auf (0,0.10000), was sie ein wenig in die Ferne positioniert, bis wir sie verwenden können. Wir setzen es auch so, dass es unsichtbar ist, bis wir den Marker erkennen.

<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>

Elemente, die wir in unsere Pois hinzufügen, werden als „Projektionen“ in Awe.js. bezeichnet. Die erste Projektion, die wir in unsere Szene hinzufügen, habe ich "Wurmloch" genannt, da dies ein flaches schwarzes Quadrat ist, an dem unsere Menüpunkte auf magische Weise erscheinen. So wie die ID des POI, können Sie Ihre absolut alles nennen, solange Sie sie mit anderen Verweise darauf in Ihrem Code übereinstimmen. Wir fügen es in unserem POI mit der Funktion Awe.Projektions.Add () hinzu.

<span>window.awe.init({
</span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
</span>    <span>settings: {
</span>      <span>container_id: 'container',
</span>      <span>fps: 30,
</span>      <span>default_camera_position: { x:0, y:0, z:0 },
</span>      <span>default_lights: [{
</span>        <span>id: 'point_light',
</span>        <span>type: 'point',
</span>        <span>color: 0xFFFFFF
</span>      <span>}]
</span>    <span>},</span>

Es gibt einige Optionen für die Objekte, die wir als Projektionen hinzufügen können. Ich werde sie daher genauer erläutern. Beachten Sie - alle Werte von x, y und z für die Positionierung und Drehung stehen in Bezug auf seine POI. Dieser POI wird am Ende durch seine ID als {poi_id: 'marker'}.

definiert
  • Geometrie - Dies bezieht sich auf die drei.js -Geometrieoptionen der Projektion. Die für jede Geometrie -Art von Geometrie erforderlichen Optionen entsprechen denen in Awe.js. Zum Beispiel würde die Spheregometrie in drei.js als {Form: 'Sphere', Radius: 10} in Awe.js. dargestellt. Eine Sache, die für diejenigen, die die neuesten drei.js verwenden, in der aktuell verfügbaren Version von Awe.js verwenden, verwendet BoxGeometry immer noch CubeGeometry. Um Kästchen zu erstellen, verwenden wir das Format {Form: 'Cube', x: 20, y: 30, z: 5} (trotz des Namens muss es kein „Würfel“ sein).
  • Position - Sie können die X-, Y- und Z -Achse des Elements in Bezug auf ihre Poi anpassen.
  • Rotation - Sie können das Element in Bezug auf seine POI um seine x-, y- und z -Achse drehen. Ich drehe das Wurmloch um 90 Grad auf der X -Achse, so dass es flach auf dem Tisch und 45 Grad durch ihre Z -Achse sitzt, da ich dachte Es macht dies auf einer Diagonale weniger offensichtlich).
  • Material - Dies definiert das drei.js -Material der Projektion. Ich habe "Phong" (Meshphongmaterial in drei.Js) verwendet, aber es sieht aus wie "Lambert", "Shader", "Sprite" und "Sprite_canvas" sind möglicherweise ebenfalls als Optionen erhältlich. Wir können seine Farbe auch in Hex definieren.
  • Textur - Dies wird in der Demo nicht verwendet, aber ich wollte sie für die Vollständigkeit in diesen Artikel aufnehmen. Um eine Textur zu definieren, können Sie Textur einschließen: {Pfad: 'yourTexturefileName.png'}.

In der Demo füge ich der Szene sieben verschiedene Kästchen/Würfel hinzu, jeder ist 30 Pixel hoch und platziere 31 Pixel auf der Y -Achse, so dass es ursprünglich vom Wurmloch versteckt wird. Sie sind alle etwas andere Breiten, damit sie ein bisschen wie eine Glühbirne aussehen.

Ich bewege sie ein wenig von der Mitte des Wurmlochs über ihre X- und Z -Koordinaten zurück, aber um ehrlich zu sein, würde es wahrscheinlich auch für diejenigen, wenn -5 nervt, einwandfrei aussehen. Ich habe es um 45 Grad auf der Y -Achse gedreht, so dass es in einem schönen Winkel über dem Wurmloch tritt.

<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>

Jedes von diesen hat eine ID von 'ar_button_ {number}', wobei die Nummer der Index der Menüschaltfläche von unten nach oben ist. Wir werden diese ID in unseren HTTP -Aufrufen bei IFTTT verwenden, so

Nachdem unsere Projektionen definiert sind, definieren wir ein ziemlich wichtiges Stück unseres AR -Puzzles - unser Markererkennungsereignis. Wir fügen dies als ein Array hinzu, das an die Funktion ave.events.add () übergeben wird.

<span>window.awe.init({
</span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
</span>    <span>settings: {
</span>      <span>container_id: 'container',
</span>      <span>fps: 30,
</span>      <span>default_camera_position: { x:0, y:0, z:0 },
</span>      <span>default_lights: [{
</span>        <span>id: 'point_light',
</span>        <span>type: 'point',
</span>        <span>color: 0xFFFFFF
</span>      <span>}]
</span>    <span>},</span>
Wir haben nur ein Ehrfurcht, also gibt es hier nur ein einziges Ereignis. Das Ereignis ist mit einer ID definiert, die wir alles nennen können. Ich habe es 'ar_tracking_marker' genannt. Wir definieren die Arten von Geräten, auf die sie anwendbar sind. Dies scheint in allen bisherigen Beispielen in allen Ehrfurcht in ihrem Repo gleich zu sein. Ich habe es so gelassen, wie es bei PC und Android auf 1.

ist

<span>ready: function() {
</span>    awe<span>.util.require([
</span>      <span>{
</span>        <span>capabilities: ['gum','webgl'],</span>
Dann haben wir register () und unregister () Funktionen zum Hinzufügen und Entfernen des Ereignishörers, der nach dem Marker beobachtet wird.

<span>files: [ 
</span>    <span>['lib/awe-standard-dependencies.js', 'lib/awe-standard.js'],
</span>    <span>'lib/awe-standard-window_resized.js',
</span>    <span>'lib/awe-standard-object_clicked.js',
</span>    <span>'lib/awe-jsartoolkit-dependencies.js',
</span>    <span>'lib/awe.marker_ar.js'
</span>  <span>],</span>
Wir definieren dann den Ereignishandler, der so lange ausgeführt wird, sobald wir einen Marker entdecken. Wir achten auf den „64“ -Marker und führen nur eine Antwort aus, wenn wir ihn finden.

<span>success: function() {
</span>    <span>window.awe.setup_scene();</span>
In unserer Reaktion auf die Suche nach einem Marker möchten wir unseren POI, den wir als "Marker" bezeichnet haben, mit unserem physischen Papiermarker an die Stelle bringen und sie sichtbar machen. Wir transformieren es in die physische Markierung mit Ereignis.Detail ['64 ']. Transform.

awe<span>.pois.add({id: 'marker', position: {x: 0, y: 0, z: 10000}, visible: false});</span>
Wir setzen auch unsere "Wurmloch" -Projektion als sichtbar.

awe<span>.projections.add({ 
</span>    <span>id: 'wormhole',
</span>    <span>geometry: {shape: 'plane', height: 400, width: 400},
</span>    <span>position: {x: 0, y: 0, z: 0},
</span>    <span>rotation: {x: 90, z: 45},
</span>    <span>material: {
</span>      <span>type: 'phong',
</span>      <span>color: 0x000000
</span>    <span>}
</span>  <span>}, {poi_id: 'marker'});</span>
Wenn wir den Marker nicht sehen, aber unser Menü geöffnet sind, stellen wir fest, dass wir geöffnet bleiben, aber das Wurmloch verbergen. Das Hauptreden dafür ist, dass der Marker bei einigen Lichtveränderungen unleserlich wird. Wir wollen uns nicht in ein bestimmtes Farblicht fangen, ohne zurückzukehren!

awe<span>.projections.add({
</span>    <span>id: 'ar_button_one',
</span>    <span>geometry: {shape: 'cube', x: 60, y: 30, z: 5},
</span>    <span>rotation: {y: 45},
</span>    <span>position: {x: -5, y: -31, z: -5},
</span>    <span>material: {
</span>      <span>type: 'phong',
</span>      <span>color: 0xFF0000
</span>    <span>}
</span>  <span>}, {poi_id: 'marker'});</span>
Wenn es keinen Marker gibt und unser Menü nicht geöffnet ist, wartet der gesamte POI versteckt darauf, dass wir es sehen.

awe<span>.events.add([
</span>    <span>// Our events here
</span>  <span>]);</span>
Wir beenden Awe.js, die Szene zu aktualisieren.

<span>id: 'ar_tracking_marker',
</span>  <span>device_types: {
</span>    <span>pc: 1,
</span>    <span>android: 1
</span>  <span>},</span>
Die letzte tatsächliche Funktionalität, die wir einrichten werden, sind unsere Klickereignisse. All dies befindet sich innerhalb des Ereignisses von Object_clicked.

<span>register: function(handler) {
</span>    <span>window.addEventListener('ar_tracking_marker', handler, false);
</span>  <span>},
</span>  <span>unregister: function(handler) {
</span>    <span>window.removeEventListener('ar_tracking_marker', handler, false);
</span>  <span>},</span>
Unser Klickereignis enthält die ID der Projektion, auf die in e.Detail.Projection_id geklickt wurde. Wir verwenden eine Switch -Anweisung, um zu bestimmen, wie auf den Klick reagiert werden. Klicken auf das Wurmloch Öffnen und schließen Sie das virtuelle Menü, während auf die virtuellen Menüschaltflächen klicken. Wir verwenden eine Switch -Anweisung, da jede der Schaltflächen denselben Antwortcode ausführt.

<span>window.addEventListener('load', function() {
</span>    <span>var menu_open = false;
</span>    
    <span>// Our code continues here
</span>  <span>});</span>

Unser Wurmloch klicken Sie auf Ereignisse öffnen und schließen Sie das Menü ab, je nachdem, ob Menus_open wahr oder falsch ist. Wenn es falsch ist, verwenden wir die Funktion der Awe.js Awe.Projektion.Update (), um jede Taste auf der y -Achse über eine Sekunde zu animieren. Das bewegt es aus dem Wurmloch. Der einzige Unterschied zwischen der Bewegung jeder Projektion ist, wie sehr sich jedes Objekt über die y -Achse bewegt.

<span>window.awe.init({
</span>    <span>device_type: awe.AUTO_DETECT_DEVICE_TYPE,
</span>    <span>settings: {
</span>      <span>container_id: 'container',
</span>      <span>fps: 30,
</span>      <span>default_camera_position: { x:0, y:0, z:0 },
</span>      <span>default_lights: [{
</span>        <span>id: 'point_light',
</span>        <span>type: 'point',
</span>        <span>color: 0xFFFFFF
</span>      <span>}]
</span>    <span>},</span>

Andernfalls verschieben wir sie alle zurück in ihre ursprüngliche Position unter dem Wurmloch und versteckt sich aus der Ansicht.

<span>ready: function() {
</span>    awe<span>.util.require([
</span>      <span>{
</span>        <span>capabilities: ['gum','webgl'],</span>

Nach unserer Anweisung IF ENTWEISE WIRKEN WIR MENUEM MEUSE_OPEN auf das Gegenteil von dem, was es war, so verfolgen wir, wo es vor sich geht.

<span>files: [ 
</span>    <span>['lib/awe-standard-dependencies.js', 'lib/awe-standard.js'],
</span>    <span>'lib/awe-standard-window_resized.js',
</span>    <span>'lib/awe-standard-object_clicked.js',
</span>    <span>'lib/awe-jsartoolkit-dependencies.js',
</span>    <span>'lib/awe.marker_ar.js'
</span>  <span>],</span>

In unserem Schaltflächenklick -Ereignis stellen wir eine HTTP -Anfrage an IFTTT, die die ID unserer Schaltfläche als Ereignisnamen und unseren Schlüssel zum Zugriff auf den IFTTT -Dienst enthält. Wir verwenden die zurückkommenden Daten nicht wirklich. Wir protokollieren sie für Debugging -Zwecke bei der Konsole, aber ansonsten stammen die tatsächlichen Ergebnisse von IFTTT, die auf den HTTP -Aufruf reagieren.

<span>success: function() {
</span>    <span>window.awe.setup_scene();</span>

Danach haben wir, wenn Awe.js aufgrund von Inkompatibilitäten usw. nicht lädt, ein alternatives Skript, das eine Fehlermeldung angezeigt wird.

awe<span>.pois.add({id: 'marker', position: {x: 0, y: 0, z: 10000}, visible: false});</span>

Es ist https Zeit

Update Ende 2015 - Ich springe in diesen Artikel zurück, um ein neues Stück ziemlich wichtige Informationen hinzuzufügen - Chrome erfordert jetzt, dass Webseiten mit der Kamera über HTTPS serviert werden. Bevor Sie versuchen, dies auszuführen, müssen Sie einen Weg finden, Ihren Service über HTTPS auszuführen. Eine Methode, die ich bisher zum Testen verwendet habe, ist NGROK, mit dem Sie Ihrem örtlichen Haus einen HTTPS -Tunnel bereitstellen können. Wir haben einen Leitfaden beim Zugriff auf Localhost von überall hier bei SitePoint, der Ihnen helfen kann, den Einstieg zu erlangen.

die Demo in Aktion

Wenn wir diesen Code auf Google Chrome für Mobile ausführen und auf unseren Marker zeigen, sollte ein Wurmloch erscheinen.

Augmented Reality im Browser mit Ehrfurcht.js

Wenn wir auf das Wurmloch klicken, sollten unsere Menüschaltflächen in ihre richtigen Stellen animieren.

Augmented Reality im Browser mit Ehrfurcht.js

Wenn wir auf einen der Menüelemente klicken…

Augmented Reality im Browser mit Ehrfurcht.js

Es sollte die Farbe unseres Lebenslichts verändern!

Augmented Reality im Browser mit Ehrfurcht.js

Schlussfolgerung

Das ist alles, was Sie wissen müssen, um mit AWE.Js. Es hat viel Potenzial, wie viele Entwicklungen in der Tech -Welt heutzutage! Das Awe.js -Team arbeitet ständig am Plugin und es sollte eine neuere und noch umfassendere Version geben, die bald kommt! Es könnte auch möglich sein, einen stereoskopischen Effekt von drei.js für die Verwendung in Google Cardboard einzurichten und diese mit einigen Funktionen von Awe.js zu kombinieren, um AR -Headset -Erlebnisse zu erstellen. Ich dachte, es könnte ein bisschen viel für einen Artikel sein. Achten Sie also auf einen zukünftigen Artikel dazu!

Wenn Sie mit etwas AR -Magie mit diesem Code experimentieren oder noch weiter gehen, in den Kommentaren eine Notiz hinterlassen oder auf Twitter (@thatpatrickGuy) mit mir in Verbindung setzen, würde ich es gerne auschecken!

häufig gestellte Fragen zur Augmented Reality im Browser mit Awe.js

Wie unterscheidet sich Awe.js in Bezug auf Funktionalität und Leistung von ar.js? Sie unterscheiden sich jedoch in mehrfacher Hinsicht. Awe.js ist ein umfassenderer Rahmen, der eine breite Palette von Funktionen für die Schaffung immersiver AR -Erlebnisse bietet. Es unterstützt mehrere Tracking -Methoden, einschließlich GPS-, Kompass- und Gyroscopic -Verfolgung, und es unterstützt auch 3D -Modelle. Andererseits konzentriert sich AR.JS mehr auf Marker-basierte Verfolgung und ist bekannt für seine hohe Leistung und Effizienz. Für Anfänger ist es auch einfacher zu verwenden, aber es bietet möglicherweise nicht die gleiche Flexibilität wie Awe.js.

Kann ich AWE.js verwenden, um eine AR -Web -App zu entwickeln?

Ja, Sie können Awe.js verwenden, um eine AR -Web -App zu entwickeln. Awe.js ist eine JavaScript -Bibliothek, mit der Sie AR -Erlebnisse direkt im Browser erstellen können, ohne dass zusätzliche Plugins oder Downloads erforderlich sind. Dies ist eine gute Wahl für die Entwicklung webbasierter AR-Anwendungen. Sie können es verwenden, um eine breite Palette von AR -Erlebnissen zu erstellen, von einfachen 2D -Overlays bis zu komplexen 3D -Szenen. JS, Sie müssen zuerst die Bibliothek aus dem offiziellen Github -Repository herunterladen. Sobald Sie dies getan haben, können Sie Ihre AR -Szenen erstellen, indem Sie JavaScript -Code schreiben. Awe.js bietet eine Reihe von APIs und Funktionen, mit denen Sie die AR -Erfahrung steuern können, einschließlich Funktionen zum Erstellen von Objekten, zur Steuerung der Kamera und zur Bearbeitung von Benutzereingaben.

Was sind einige Beispiele für Anwendungen, die mit Awe.js erstellt werden können? Sie können beispielsweise eine AR -Tour Guide -App erstellen, in der Benutzer ihr Telefon auf verschiedene Sehenswürdigkeiten zeigen können, um Informationen darüber zu erhalten. Sie können es auch verwenden, um ein AR -Spiel zu erstellen, bei dem Benutzer mit virtuellen Objekten in der realen Welt interagieren können. Andere mögliche Anwendungen umfassen AR -Einkaufs -Apps, AR -Bildungs ​​-Apps und vieles mehr. möglich. Da es jedoch erweiterte Web -Technologien wie WebGL und WEBRTC verwendet, funktioniert es möglicherweise nicht bei älteren Browsern, die diese Technologien nicht unterstützen. Für die besten Ergebnisse wird empfohlen, Awe.js mit einem modernen, aktuellen Browser wie Chrome, Firefox oder Safari zu verwenden. 🎜>

Ja, Sie können Awe.js neben anderen JavaScript -Bibliotheken oder Frameworks verwenden. Awe.js ist so konzipiert, dass es flexibel und modular ist, sodass Sie es problemlos in Ihre vorhandenen JavaScript -Projekte integrieren können. Denken Sie jedoch daran, dass einige Merkmale von Awe.js möglicherweise nicht mit bestimmten Bibliotheken oder Frameworks kompatibel sind. Daher ist es immer eine gute Idee, Ihren Code gründlich zu testen.

Wenn Sie Probleme mit Ehrfurcht haben.js, können Sie mehrere Ressourcen wenden, um Hilfe zu erhalten. Das offizielle Github -Repository für Awe.js enthält eine umfassende Dokumentation, die alle Aspekte der Bibliothek abdeckt. Sie können auch den Ausgabe -Tracker auf GitHub überprüfen, um festzustellen, ob jemand anderes auf das gleiche Problem gestoßen ist. Wenn Sie dort keine Lösung finden, können Sie versuchen, um Hilfe beim Stapelüberlauf oder anderen Online -Entwicklergemeinschaften zu fragen.

Ist Awe.js Open Source? ein Open -Source -Projekt. Dies bedeutet, dass Sie den Code frei verwenden, ändern und verteilen können, solange Sie den Bedingungen der Lizenz einhalten. Der Quellcode für Awe.js ist in GitHub verfügbar, sodass Sie auch zum Projekt beitragen können, indem Sie Fehlerberichte einreichen, neue Funktionen vorschlagen oder sogar Ihren eigenen Code senden. .js? Wenn Sie Hilfe bei Awe.js benötigen, können Sie auf der Github -Seite des Projekts oder auf anderen Online -Entwicklergemeinschaften um Hilfe bitten. Es gibt auch viele Tutorials und Anleitungen online, mit denen Sie mit AWE.JS.

beginnen können

Wie kann ich zum Awe.js -Projekt beitragen? Wenn Sie ein Entwickler sind, können Sie einen Beitrag leisten, indem Sie Fehlerberichte einreichen, neue Funktionen vorschlagen oder Code schreiben. Wenn Sie kein Entwickler sind, können Sie dennoch einen Beitrag leisten, indem Sie Dokumentation schreiben, Tutorials erstellen oder dabei helfen, das Wort über Awe.js. zu verbreiten. Alle Beiträge werden sehr geschätzt und helfen, Ehrfurcht zu einem besseren Werkzeug für alle zu machen.

Das obige ist der detaillierte Inhalt vonAugmented Reality im Browser mit Ehrfurcht.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
JavaScripts Kern: Ist es auf C oder C aufgebaut?JavaScripts Kern: Ist es auf C oder C aufgebaut?May 05, 2025 am 12:07 AM

JavaScriptisnotbuiltoncorc; Es ist angehört, dass sich JavaScriptWasdedeSthatrunsonGineoFtencninc.

JavaScript-Anwendungen: Von Front-End bis Back-EndJavaScript-Anwendungen: Von Front-End bis Back-EndMay 04, 2025 am 12:12 AM

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

Python vs. JavaScript: Welche Sprache sollten Sie lernen?Python vs. JavaScript: Welche Sprache sollten Sie lernen?May 03, 2025 am 12:10 AM

Die Auswahl von Python oder JavaScript sollte auf Karriereentwicklung, Lernkurve und Ökosystem beruhen: 1) Karriereentwicklung: Python ist für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet, während JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung geeignet ist. 2) Lernkurve: Die Python -Syntax ist prägnant und für Anfänger geeignet; Die JavaScript -Syntax ist flexibel. 3) Ökosystem: Python hat reichhaltige wissenschaftliche Computerbibliotheken und JavaScript hat ein leistungsstarkes Front-End-Framework.

JavaScript -Frameworks: Stromversorgung moderner WebentwicklungJavaScript -Frameworks: Stromversorgung moderner WebentwicklungMay 02, 2025 am 12:04 AM

Die Kraft des JavaScript -Frameworks liegt in der Vereinfachung der Entwicklung, der Verbesserung der Benutzererfahrung und der Anwendungsleistung. Betrachten Sie bei der Auswahl eines Frameworks: 1. Projektgröße und Komplexität, 2. Teamerfahrung, 3. Ökosystem und Community -Unterstützung.

Die Beziehung zwischen JavaScript, C und BrowsernDie Beziehung zwischen JavaScript, C und BrowsernMay 01, 2025 am 12:06 AM

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

Node.js Streams mit TypeScriptNode.js Streams mit TypeScriptApr 30, 2025 am 08:22 AM

Node.js zeichnet sich bei effizienten E/A aus, vor allem bei Streams. Streams verarbeiten Daten inkrementell und vermeiden Speicherüberladung-ideal für große Dateien, Netzwerkaufgaben und Echtzeitanwendungen. Die Kombination von Streams mit der TypeScript -Sicherheit erzeugt eine POWE

Python vs. JavaScript: Leistung und EffizienzüberlegungenPython vs. JavaScript: Leistung und EffizienzüberlegungenApr 30, 2025 am 12:08 AM

Die Unterschiede in der Leistung und der Effizienz zwischen Python und JavaScript spiegeln sich hauptsächlich in: 1 wider: 1) Als interpretierter Sprache läuft Python langsam, weist jedoch eine hohe Entwicklungseffizienz auf und ist für eine schnelle Prototypentwicklung geeignet. 2) JavaScript ist auf einen einzelnen Thread im Browser beschränkt, aber Multi-Threading- und Asynchronen-E/A können verwendet werden, um die Leistung in Node.js zu verbessern, und beide haben Vorteile in tatsächlichen Projekten.

Die Ursprünge von JavaScript: Erforschung seiner ImplementierungsspracheDie Ursprünge von JavaScript: Erforschung seiner ImplementierungsspracheApr 29, 2025 am 12:51 AM

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools