Skip to content

Commit b094251

Browse files
committed
layers example with comparison
1 parent db5282e commit b094251

File tree

3 files changed

+26
-21
lines changed

3 files changed

+26
-21
lines changed

examples/layers/app.tsx

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { Canvas, useThree } from '@react-three/fiber'
22
import { createXRStore, useHover, XR, XRLayer } from '@react-three/xr'
3+
import { Text } from '@react-three/drei'
34
import { useEffect, useMemo, useRef } from 'react'
4-
import { Mesh } from 'three'
5+
import { Mesh, SRGBColorSpace, VideoTexture } from 'three'
56
import { forwardHtmlEvents } from '@pmndrs/pointer-events'
67

78
const store = createXRStore({
@@ -10,11 +11,16 @@ const store = createXRStore({
1011

1112
export function App() {
1213
// eslint-disable-next-line react-hooks/rules-of-hooks
13-
const image = useMemo(() => {
14+
const video = useMemo(() => {
1415
const result = document.createElement('video')
1516
result.src = 'test.mp4'
1617
return result
1718
}, [])
19+
const videoTexture = useMemo(() => {
20+
const texture = new VideoTexture(video)
21+
texture.colorSpace = SRGBColorSpace
22+
return texture
23+
}, [video])
1824
return (
1925
<>
2026
<button onClick={() => store.enterAR()}>Enter AR</button>
@@ -25,23 +31,18 @@ export function App() {
2531
>
2632
<SwitchToXRPointerEvents />
2733
<XR store={store}>
28-
{image != null && (
29-
<XRLayer
30-
position={[0, 1.5, -0.5]}
31-
onClick={() => image.play()}
32-
scale={0.5}
33-
shape="quad"
34-
pixelHeight={1024}
35-
pixelWidth={1024}
36-
centralAngle={Math.PI}
37-
centralHorizontalAngle={Math.PI}
38-
lowerVerticalAngle={-Math.PI / 2}
39-
upperVerticalAngle={Math.PI / 2}
40-
src={image}
41-
>
42-
<Inner />
43-
</XRLayer>
44-
)}
34+
<Text scale={0.03} color="black" position={[-0.3, 1.78, -0.5]}>
35+
With XRLayer
36+
</Text>
37+
<XRLayer position={[-0.3, 1.5, -0.5]} onClick={() => video.play()} scale={0.5} shape="quad" src={video} />
38+
39+
<Text scale={0.03} color="black" position={[0.3, 1.78, -0.5]}>
40+
Without XRLayer
41+
</Text>
42+
<mesh position={[0.3, 1.5, -0.5]} scale={0.5}>
43+
<planeGeometry />
44+
<meshBasicMaterial map={videoTexture} toneMapped={false} />
45+
</mesh>
4546
</XR>
4647
</Canvas>
4748
</>

examples/layers/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"dependencies": {
3-
"@react-three/xr": "workspace:^",
4-
"@pmndrs/pointer-events": "workspace:^"
3+
"@pmndrs/pointer-events": "workspace:^",
4+
"@react-three/drei": "^9.111.0",
5+
"@react-three/xr": "workspace:^"
56
},
67
"scripts": {
78
"dev": "vite --host"

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)