The rig camer has two properties - TargetCamera | Babylon.js Documentation (babylonjs.com) If one of them is true, you will know which eye it is.

All mounts ordered with lenses will be calibrated to the lens and will come with the correct total shim thickness marked on the inside of the mount. Please take care to use the mount shim thickness indicated.

The camera transformation is updated every render call, which is being called for each camera individually. Babylon takes care of that for you. Do you mean if you can run a different shader altogether on each eye, or if those values are updated for each camera?

the camera’s position is updated on every render call for each eye. It is however possible that currentCamera is incorrect. Would you be able to show a quick reproduction of how you use it on the playground so I can be able to help better?

You should use the onBeforeCameraRenderObservable, as the onBeforeRender only runs once a frame, using the parent WebXRCamera:

My question is if there is any chance to make shaders dependent on each viewpoint (that is different for each eye). Note that my shaders are already reading the position but both eyes are reading the position of the camera itself instead of using a different position for each point of view.

You mean scene.activeCamera.position? I’m not getting any difference between frames in this sample if the position change it should print it to the console.

Unfortunately I didn’t manage how to check if the camera belongs to the right or left eye once you’ve moved your VR Device

Both EF and PL mounts are user-swappable with the Orion Series interchangeable mount system. Mounts can be easily changed with the recommended number of shims (marked on the inside of each mount) and a T6 Torx driver in a clean environment.

This is updated for you. Otherwise XR would not work. Every render call is using a different camera (the two rig cameras that are the children of the xr camera in case of VR)

The shader will render twice, one for each eye. If the currentCamera variable is set correctly, the protein will be different each time. Don’t expect a huge change, there should be a different of can 60-70 mm between the two eyes