right continuing as im home again and can test things
@scenic crest minimal reproducible example:
<script lang="ts">
import { onMount } from "svelte";
import { Scene, PerspectiveCamera, BoxGeometry, Group, Mesh, WebGLRenderer} from "three";
let renderer: WebGLRenderer | undefined;
let scene: Scene | undefined;
let camera: PerspectiveCamera | undefined;
let frameRequest: ReturnType<typeof requestAnimationFrame> | undefined;
onMount(() => {
scene = new Scene();
renderer = new WebGLRenderer();
camera = new PerspectiveCamera();
scene.add(camera);
let group = new Group();
scene.add(group);
let geom = new BoxGeometry(1, 1, 1);
let mesh = new Mesh(geom);
mesh.position.set(1, 0, 0);
group.add(mesh);
return () => {
if (frameRequest !== undefined) {
cancelAnimationFrame(frameRequest);
}
}
});
function render(): void {
console.log("render");
frameRequest = requestAnimationFrame(render);
renderer!.render(scene!, camera!);
}
async function startVR(): Promise<void> {
let sessionOptions: XRSessionInit = {
optionalFeatures: [
"local-floor",
"bounded-floor",
"hand-tracking",
"layers"
]
};
let xrSession = await navigator.xr!.requestSession("immersive-vr", sessionOptions);
renderer!.xr.enabled = true;
renderer!.xr.setSession(xrSession);
frameRequest = requestAnimationFrame(render);
}
</script>
<button onclick={startVR}>Start VR</button>
The cube will be perfectly visible in the emulator addon however completely invisible on the quest for me