https://playcanvas.com/project/1089242/overview/demolookingglass
import { LookingGlassWebXRPolyfill, LookingGlassConfig } from "https://unpkg.com/@lookingglass/webxr@0.1.9/dist/webxr.js"
const config = LookingGlassConfig
config.tileHeight = 256
config.numViews = 20
config.targetY = 0
config.targetZ = 0
config.targetDiam = 3
config.fovy = (14 * Math.PI) / 180
new LookingGlassWebXRPolyfill()var Lg = pc.createScript('lg');
Lg.prototype.initialize = function() {
pc.app.xr._available["immersive-vr"] = true;
var htmlAsset = this.app.assets.find('LG.html');
var div = document.createElement('script');
div.type = "module"
div.innerHTML = htmlAsset.resource;
document.body.appendChild(div);
htmlAsset.on('load', function () {
div.innerHTML = htmlAsset.resource;
});
};
Lg.prototype.update = function(dt) {
if(this.app.keyboard.wasPressed(pc.KEY_ENTER)){
this.camera.camera.startXr(pc.XRTYPE_VR, pc.XRSPACE_LOCALFLOOR);
}
};以上で、LookingGlass用のPlayCanvasアプリケーションが実行されます。
webxr.jsはWeb標準のWebXR APIをラップし、オープンソースで提供されています。このライブラリは3Dエンジンに依存せず、カメラの位置を取得し、複数のレンダリングを立体視可能な画像に変換して出力します。
LookingGlass用のウィンドウはマウスイベントの受け取りと最終レンダリングを行います。実質的には、このウィンドウはPlayCanvasのLaunchタブそのものです。そのため、タブを閉じたりバックグラウンドに移動すると、動作が停止します。また、複数のレンダリングを行うため、描画負荷が増大する点には注意が必要です。
PlayCanvasでアプリケーションを実行すると、webxr.jsにより定義されたcanvasのサイズ変更アルゴリズムがBufferの問題で誤った数値を出力する可能性があります。その結果、画像が意図せずにトリミングされる可能性があります。立体視画像の生成には複数の画像が必要なので、一部の画像が欠落したり黒くなったりすると、立体視が一部見えなくなる欠点があります。この問題は、canvasのサイズをオーバーライドすることで一時的に対処可能です。
裸眼立体視技術は以前から存在していましたが、その技術を5万円程度の手頃な価格で利用できるポータブルデバイスに組み込み、しかもWeb技術のみで実行可能という点で、その革新性を感じます。Bridgeの導入などまだ一部制限はありますが、Webとの接続性により、環境構築の手間が減少し、さまざまなAPIとの接続によるコンテンツ開発が進むでしょう。
stable-diffusion-webuiで使用しているpythonのバージョンを変更する
2023年4月20日(木) 2時36分43秒 | 11988 viewvue-scrolltoとv-b-scrollspyが共存したらかっこよかった
2021年12月1日(水) 16時37分57秒 | 307 viewWindows11でダークモードにした際にChromeでCSSが変更されて見えづらくなってしまう問題を解決した
2022年2月24日(木) 12時49分57秒 | 183 view会社のテックブログを勝手に爆速にしてみた
2021年2月1日(月) 14時22分18秒 | 45 viewncmbのREST APIでエラー{"error":"12.16.1 is invalid version","status":400,"code":"E400001"}が出る
2022年10月9日(日) 12時41分30秒 | 26 view