Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • V Visualization
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • Volker Coors
  • Visualization
  • Wiki
  • Create a simple web AR application [De]

Create a simple web AR application [De] · Changes

Page history
Update Create a simple web AR application [De] authored 2 years ago by Alfakhori's avatar Alfakhori
Hide whitespace changes
Inline Side-by-side
Showing
with 24 additions and 25 deletions
+24 -25
Create-a-simple-web-AR-application-[De].md
View page @ b7120e52
......@@ -197,11 +197,11 @@ Navigieren Sie auf Ihrem Gerät zur erstellten Webseite. Sie sollten einen farbi
Der vollständige Code kann unter [cube.html](uploads/ac0260539a69bb6d5e8c440ac33c353e/cube.html) heruntergeladen werden, und eine Live-Demo kann [hier](https://transfer.hft-stuttgart.de/pages/coors/visualization/webXR/1-Cube.html) aufgerufen werden.
# **Tap to place**
A common way of interacting with the AR world is through a **hit test**, which finds an intersection between a ray and real-world geometry. In Hello WebXR, you'll use a hit test to place a sunflower in the virtual world.
# **Tippen, um zu platzieren**
Eine gängige Methode zur Interaktion mit der AR-Welt ist ein Treffertest, bei dem eine Schnittstelle zwischen einer Optik und einer realen Geometrie ermittelt wird. Mit Hello WebXR platzieren Sie einen Treffertest, um eine Sonnenblume in der virtuellen Welt zu platzieren.
## Remove the demo cube
Remove the unlit cube and replace it with a scene that includes lighting:
## Demowürfel entfernen
Entferne den beleuchteten Würfel und ersetze ihn durch eine Beleuchtung.
```
const scene = new THREE.Scene();
......@@ -210,16 +210,16 @@ directionalLight.position.set(10, 15, 10);
scene.add(directionalLight);
```
## Use the hit-test feature
To initialize **hit test** functionality, request session with the hit-test feature. Find the previous **requestSession()** fragment, and add **hit-test** to it:
## Funktion hit-test verwenden
Um die Treffertestfunktionen zu initialisieren, fordern Sie eine Sitzung mit der Funktion hit-test an. Suche das vorherige **requestSession()**-Fragment und füge **hit-test** hinzu:
```
const session = await navigator.xr.requestSession("immersive-ar", {requiredFeatures: ['hit-test']});
```
## Add a model loader
Currently, the scene only contains a colored cube. To make the experience more interesting, add a model loader, which allows GLTF models to be loaded.
## Modellladeprogramm hinzufügen
Derzeit enthält die Szene nur einen farbigen Würfel. Fügen Sie einen Modelllader hinzu, der das Laden von GLTF-Modellen ermöglicht, um das Erlebnis noch interessanter zu machen.
In your document's **<head>** tag, add three.js' **GLTFLoader**.
Fügen Sie in Ihrem **<head>**-Tag des Dokuments Three.js**GLTFLoader** ein.
```
<!-- three.js -->
......@@ -228,10 +228,10 @@ In your document's **<head>** tag, add three.js' **GLTFLoader**.
<script src="https://unpkg.com/three@0.126.0/examples/js/loaders/GLTFLoader.js"></script>
```
## Load GLTF models
Use the model loader from the previous step to load a targeting reticle and a sunflower from the web.
## GLTF-Modelle laden
Verwenden Sie das Modellladeprogramm aus dem vorherigen Schritt, um ein Ausrichtungsretikel und eine Sonnenblume aus dem Web zu laden.
Add this code above **onXRFrame**:
Fügen Sie diesen Code über **onXRFrame** hinzu:
```
const loader = new THREE.GLTFLoader();
......@@ -250,10 +250,10 @@ loader.load("https://immersive-web.github.io/webxr-samples/media/gltf/sunflower/
// Create a render loop that allows us to draw on the AR view.
const onXRFrame = (time, frame) => {
```
## Create a hit test source
To calculate intersections with real-world objects, create a **XRHitTestSource** using **XRSession.requestHitTestSource()**. The ray used for hit testing has the **viewer **reference space as origin, meaning that the hit test is done from the center of the viewport.
## Treffertestquelle erstellen
Erstellen Sie mit **XRSession.requestHitTestSource()** eine **XRHitTestSource**, um Schnittmengen mit echten Objekten zu berechnen. Der für Treffertests verwendete Ray hat den Referenzbereich viewer als Ursprung. Das bedeutet, dass der Treffertest von der Mitte des Darstellungsbereichs aus durchgeführt wird.
To create a hit test source, add this code after creating the **local **reference space:
Fügen Sie nach dem Erstellen des Referenzbereichs **local **den folgenden Code hinzu, um eine Treffertestquelle zu erstellen:
```
// A 'local' reference space has a native origin that is located
......@@ -266,10 +266,10 @@ const viewerSpace = await session.requestReferenceSpace('viewer');
const hitTestSource = await session.requestHitTestSource({ space: viewerSpace });
```
## Drawing a targeting reticle
To make it clear where the sunflower will be placed, add a targeting reticle to the scene. This reticle will appear to stick to real-world surfaces, signifying where the sunflower will be anchored.
## Ausrichtungsretikel zeichnen
Damit klar erkennbar ist, wo die Sonnenblume platziert wird, fügen Sie der Szene ein Fadenkreuz hinzu. Dieser Netzhaut scheint an tatsächlichen Oberflächen zu kleben, was darauf hinweist, wo die Sonnenblume verankert wird.
**XRFrame.getHitTestResults** returns an array of **XRHitTestResult** and exposes intersections with real-world geometry. Use these intersections to position the targeting reticle on every frame.
**XRFrame.getHitTestResults** gibt ein Array von **XRHitTestResult** zurück und stellt Kreuzungen mit realen Geometrien bereit. Mit diesen Schnittpunkten können Sie das Targeting-Risko in jedem Frame positionieren.
```
camera.projectionMatrix.fromArray(view.projectionMatrix);
......@@ -284,11 +284,10 @@ if (hitTestResults.length > 0 && reticle) {
}
```
## Adding interactions on tap
**XRSession **receives select events when the user completes a primary action. In an AR session, this corresponds to a tap on the screen.
Make a new sunflower appear when the user taps on the screen by adding this code during initialization:
## Interaktionen durch Tippen hinzufügen
**XRSession **erhält **select**-Ereignisse, wenn der Nutzer eine primäre Aktion ausführt. In einer AR-Sitzung entspricht dies einem Tippen auf den Bildschirm.
Wenn der Nutzer auf den Bildschirm tippt, fügen Sie während der Initialisierung den folgenden Code hinzu:
```
let flower;
loader.load("https://immersive-web.github.io/webxr-samples/media/gltf/sunflower/sunflower.gltf", function(gltf) {
......@@ -304,9 +303,9 @@ session.addEventListener("select", (event) => {
});
```
## Tap to Place result
Use your mobile device to navigate to the page. After WebXR builds an understanding of the environment, the reticle should appear on real-world surfaces. Tap the screen to place a sunflower, which can be viewed from all sides.
## Ergebnis von Tippen zum Platzieren
Verwenden Sie Ihr Mobilgerät, um zur Seite zu navigieren. Nachdem WebXR ein Verständnis für die Umgebung aufgebaut hat, sollte das Fadenkreuz auf realen Oberflächen erscheinen. Tippen Sie auf den Bildschirm, um eine Sonnenblume zu platzieren, die von allen Seiten aus betrachtet werden kann.
![hit](uploads/4d2ded22b60a5a7a91c11b3d4f33a1ad/hit.gif)
The complete code can be downloaded [hit2place.html](uploads/eaa488c6737044ead8a3dc41aaf11489/hit2place.html) and a live demo can be accessed [here](https://transfer.hft-stuttgart.de/pages/coors/visualization/webXR/2-Hit.html).
\ No newline at end of file
Der vollständige Code kann unter [hit2place.html](uploads/eaa488c6737044ead8a3dc41aaf11489/hit2place.html) heruntergeladen werden, und eine Live-Demo kann [hier](https://transfer.hft-stuttgart.de/pages/coors/visualization/webXR/2-Hit.html)aufgerufen werden.
\ No newline at end of file
Clone repository
  • Create a simple web AR application [De]
  • Create a simple web AR application
  • Exercise for Multiresolution Models
    • Feature manipulation engine (FME)
    • Introduction
    • Open source datasets
    • Visualization with ArcGIS
    • Visualization with CesiumJS
    • Visualization with Deck.gl
  • FME
  • OGC API 3D GeoVolume
  • Project_1
  • Styling of 3D building models by Attributes
  • Three.js 101 : Hello World!
  • Useful tools
  • Visualization of Bike Sharing Data
View All Pages

Menu

Explore Projects Groups Snippets

Dies ist die Gitlab-Instanz des Transferportals der Hochschule für Technik Stuttgart. Hier geht es zurück zum Portal