Hi, I have a 2x2 grid of canvas’s and I want to attach a camera to each. So that we have front,back and side views of a scene at once.
So HTML wise we have
<canvas class="scene-multi" ref="camera1" touch-action="none"></canvas>
<canvas class="scene-multi" ref="camera2" touch-action="none"></canvas>
<canvas class="scene-multi" ref="camera3" touch-action="none"></canvas>
<canvas class="scene-multi" ref="camera4" touch-action="none"></canvas>
In my create scene code I have
scene = new BABYLON.Scene(engine);
const camera1 = new BABYLON.ArcRotateCamera("camera1", 0, 0.8, 20, new BABYLON.Vector3.Zero(), scene);
const camera2 = new BABYLON.ArcRotateCamera("camera2", Math.PI/2, 0.8, 20, new BABYLON.Vector3.Zero(), scene);
const camera3 = new BABYLON.ArcRotateCamera("camera3", Math.PI, 0.8, 20, new BABYLON.Vector3.Zero(), scene);
const camera4 = new BABYLON.ArcRotateCamera("camera4", Math.PI*1.5, 0.8, 20, new BABYLON.Vector3.Zero(), scene);
Then we attach with
this.loadScene(Scene.createScene(vue.engine))
Scene.addCamera(vue.engine,vue.$refs['camera1'],'camera1')
Scene.addCamera(vue.engine,vue.$refs['camera2'],'camera2')
Scene.addCamera(vue.engine,vue.$refs['camera3'],'camera3')
Scene.addCamera(vue.engine,vue.$refs['camera4'],'camera4')
function addCamera(engine,canvas, name){
let camera = scene.getCameraByName(name)
console.log("Attaching Camera")
console.log(camera)
console.log(canvas)
engine.registerView(canvas, camera);
}
The issue is with canvas1, it uses camera4 no matter what I do. I have tried creating camera1 last, I have tried setting it as the active camera for the scene. you can see I am registering it as a view. Cant think what to try next. I supect a bug, or a at-least I need to do something unintuitive