XR8.Babylonjs.xrCameraBehavior()
XR8.Babylonjs.xrCameraBehavior(config, xrConfig)
概要
以下のようにBabylonカメラに取り付けられるビヘイビアを取得します。 camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())
パラメータ
パラメータ | 説明 |
---|---|
config [Optional] | XR8.run() に渡す設定パラメータ。 |
xrConfig [Optional] | XR8.XrController に渡す設定パラメータ。 |
config
[Optional] は、以下のプロパティを持つオブジェクトです。
プロパティ | タイプ | デフォルト | 説明 |
---|---|---|---|
webgl2 [Optional] | Boolean | false | true の場合、利用可能な場合は WebGL2 を使用し、そうでない場合は WebGL1 にフォールバックします。 false の場合、常にWebGL1を使用します。 |
ownRunLoop [Optional] | Boolean | false | true の場合、XR は独自の run ループを使用する必要があります。 false の場合、独自の実行ループを用意し、 runPreRender と runPostRender を自分で呼び出す必要があります。(高度なユーザーのみ) |
cameraConfig: {direction} [Optional] | Object | {direction: XR8.XrConfig.camera().BACK} | 使用したいカメラ。 サポートされているdirection の値は、 XR8.XrConfig.camera().BACK または XR8.XrConfig.camera().FRONT です。 |
glContextConfig [Optional] | WebGLContextAttributes | null | WebGL canvas contextを構成する属性です。 |
allowedDevices [Optional] | XR8.XrConfig.device() | XR8.XrConfig.device().MOBILE | パイプラインで実行するデバイスの種類を指定します。 現在のデバイスがそのクラスにない場合は、カメラを開く前に実行が失敗します。 allowedDevicesが XR8.XrConfig.device().ANY の場合は、常にカメラを開きます。 ワールド・トラッキングは、 XR8.XrConfig.device().MOBILE でのみ使用できることに注意してください。 |
xrConfig
[Optional] は、以下のプロパティを持つオブジェクトです。
パラメータ | 説明 |
---|---|
enableLighting [Optional] | true の場合、ライト情報の推定値を返します。 |
enableWorldPoints [Optional] | true の場合、トラッキングに使用するマップポイントを返します。 |
disableWorldTracking [Optional] | true の場合、効率化のためにSLAMトラッキングをオフにします。 |
imageTargets [Optional] | 検出するイメージ・ターゲットの名称のリスト。 実行時に変更可能です。 注意事項: 現在アクティブなイメージターゲットはすべて、このリストで指定されたものに置き換わります。 |
leftHandedAxes [Optional] | true の場合、左手座標系を使用します。 |
imageTargets [Optional] | true の場合、出力で左右を反転させる。 |
戻り値
XRエンジンをBabylonカメラに接続し、カメラフィードとトラッキングを開始するBabylon JSのビヘイビアです。
例
let surface, engine, scene, camera
const startScene = () => {
const canvas = document.getElementById('renderCanvas')
engine = new BABYLON.Engine(canvas, true, { stencil: true, preserveDrawingBuffer: true })
engine.enableOfflineSupport = false
scene = new BABYLON.Scene(engine)
camera = new BABYLON.FreeCamera('camera', new BABYLON.Vector3(0, 3, 0), scene)
initXrScene({ scene, camera }) // シーンへのオブジェクト追加とカメラの開始位置の設定です。
// XRエンジンにカメラを接続し、カメラフィードを表示する
camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())
engine.runRenderLoop(() => {
scene.render()
})
window.addEventListener('resize', () => {
engine.resize()
})
}