提交 81de0318 编写于 作者: M Morgan Villedieu

Final working version of the Polyfill

上级 1acd3d89
if ('xr' in navigator && /(Helio)/g.test(navigator.userAgent)) {
console.log('Helio WebXR Polyfill', navigator.xr);
if( 'xr' in navigator ) {
console.log('Helio - (Chrome m73) WebXR Polyfill', navigator.xr);
// WebXRManager - XR.supportSession() Polyfill - WebVR.js line 147 // WebXRManager - XR.supportSession() Polyfill - WebVR.js line 147
navigator.xr.supportsSession = navigator.xr.supportsSessionMode; if ('supportsSession' in navigator.xr === false) navigator.xr.supportsSession = navigator.xr.supportsSessionMode;
if( 'supportsSessionMode' in navigator.xr ) { if ('requestSession' in navigator.xr) {
const tempRequestSession = navigator.xr.requestSession.bind(navigator.xr); const tempRequestSession = navigator.xr.requestSession.bind(navigator.xr);
navigator.xr.requestSession = function (sessionType) { navigator.xr.requestSession = function (sessionType) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
tempRequestSession({ mode: sessionType }) tempRequestSession({
.then(session => { mode: sessionType
})
.then(function (session) {
// WebXRManager - xrFrame.getPose() Polyfill - line 279 // WebXRManager - xrFrame.getPose() Polyfill - line 279
...@@ -31,11 +31,11 @@ if( 'xr' in navigator ) { ...@@ -31,11 +31,11 @@ if( 'xr' in navigator ) {
const tempGetViewerPose = frame.getViewerPose.bind(frame); const tempGetViewerPose = frame.getViewerPose.bind(frame);
frame.getViewerPose = function ( referenceSpace ) { frame.getViewerPose = function (referenceSpace) {
const pose = tempGetViewerPose( referenceSpace ); const pose = tempGetViewerPose(referenceSpace);
pose.views.forEach(view => { pose.views.forEach(function (view) {
view.transform = { view.transform = {
inverse: { inverse: {
...@@ -63,11 +63,11 @@ if( 'xr' in navigator ) { ...@@ -63,11 +63,11 @@ if( 'xr' in navigator ) {
} }
callback(time, frame); callback(time, frame)
}) })
}; }
// WebXRManager - xrFrame.getPose( inputSource.targetRaySpace, referenceSpace) Polyfill - line 279 // WebXRManager - xrFrame.getPose( inputSource.targetRaySpace, referenceSpace) Polyfill - line 279
...@@ -83,9 +83,9 @@ if( 'xr' in navigator ) { ...@@ -83,9 +83,9 @@ if( 'xr' in navigator ) {
get: function () { get: function () {
return xrInputSource return xrInputSource
}, },
}); })
}); })
return res; return res;
} }
...@@ -98,7 +98,9 @@ if( 'xr' in navigator ) { ...@@ -98,7 +98,9 @@ if( 'xr' in navigator ) {
// WebXRManager - xrSession.updateRenderState() Polyfill Line 129 // WebXRManager - xrSession.updateRenderState() Polyfill Line 129
session.updateRenderState = function ({ baseLayer }) { session.updateRenderState = function ({
baseLayer
}) {
session.baseLayer = baseLayer; session.baseLayer = baseLayer;
...@@ -116,13 +118,19 @@ if( 'xr' in navigator ) { ...@@ -116,13 +118,19 @@ if( 'xr' in navigator ) {
session.requestReferenceSpace = function () { session.requestReferenceSpace = function () {
return temp({ type: 'stationary', subtype: 'floor-level' }); return temp({
type: 'stationary',
subtype: 'floor-level'
})
} }
resolve(session); resolve(session);
}); })
.catch(function (error) {
return reject(error);
})
}) })
} }
...@@ -130,5 +138,3 @@ if( 'xr' in navigator ) { ...@@ -130,5 +138,3 @@ if( 'xr' in navigator ) {
} }
} }
...@@ -48,8 +48,6 @@ var WEBVR = { ...@@ -48,8 +48,6 @@ var WEBVR = {
function onSessionStarted( session ) { function onSessionStarted( session ) {
console.log(session);
session.addEventListener( 'end', onSessionEnded ); session.addEventListener( 'end', onSessionEnded );
renderer.vr.setSession( session ); renderer.vr.setSession( session );
...@@ -135,16 +133,12 @@ var WEBVR = { ...@@ -135,16 +133,12 @@ var WEBVR = {
} }
console.log(navigator);
if ( 'xr' in navigator ) { if ( 'xr' in navigator ) {
console.log('test');
var button = document.createElement( 'button' ); var button = document.createElement( 'button' );
button.style.display = 'none'; button.style.display = 'none';
stylizeElement( button ); stylizeElement( button );
console.log(navigator.xr)
navigator.xr.supportsSession( sessionType ).then( showEnterXR ); navigator.xr.supportsSession( sessionType ).then( showEnterXR );
return button; return button;
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
<a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - ball shooter <a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - ball shooter
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/Polyfill.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<script src="js/geometries/BoxLineGeometry.js"></script> <script src="js/geometries/BoxLineGeometry.js"></script>
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
<div id="info"> <div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - interactive cubes <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - interactive cubes
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - dragging <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - dragging
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
</head> </head>
<body> <body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<script> <script>
......
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - paint <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - paint
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<script src="js/loaders/OBJLoader.js"></script> <script src="js/loaders/OBJLoader.js"></script>
<script> <script>
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
<link type="text/css" rel="stylesheet" href="main.css"> <link type="text/css" rel="stylesheet" href="main.css">
</head> </head>
<body> <body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<script> <script>
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
</head> </head>
<body> <body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/RollerCoaster.js"></script> <script src="js/RollerCoaster.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<script> <script>
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
</head> </head>
<body> <body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/objects/Lensflare.js"></script> <script src="js/objects/Lensflare.js"></script>
......
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - sculpt <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - sculpt
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
......
...@@ -14,8 +14,9 @@ ...@@ -14,8 +14,9 @@
stereoscopic panoramic render by <a href="http://pedrofe.com/rendering-for-oculus-rift-with-arnold/" target="_blank" rel="noopener">pedrofe</a>. scene from <a href="http://www.meryproject.com/" target="_blank" rel="noopener">mery project</a>. stereoscopic panoramic render by <a href="http://pedrofe.com/rendering-for-oculus-rift-with-arnold/" target="_blank" rel="noopener">pedrofe</a>. scene from <a href="http://www.meryproject.com/" target="_blank" rel="noopener">mery project</a>.
</div> </div>
<script src="../build/three.js"></script>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<video id="video" loop muted crossOrigin="anonymous" webkit-playsinline style="display:none"> <video id="video" loop muted crossOrigin="anonymous" webkit-playsinline style="display:none">
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - paint <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - paint
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/ViveController.js"></script> <script src="js/vr/ViveController.js"></script>
......
...@@ -12,9 +12,11 @@ ...@@ -12,9 +12,11 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - sculpt <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - sculpt
</div> </div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script> <script src="../build/three.js"></script>
<script src="js/vr/ViveController.js"></script> <script src="js/vr/ViveController.js"></script>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="js/vr/WebVR.js"></script> <script src="js/vr/WebVR.js"></script>
<script src="js/loaders/OBJLoader.js"></script> <script src="js/loaders/OBJLoader.js"></script>
......
...@@ -261,7 +261,6 @@ function WebXRManager( renderer ) { ...@@ -261,7 +261,6 @@ function WebXRManager( renderer ) {
if ( inputPose !== null ) { if ( inputPose !== null ) {
controller.matrix.fromArray( inputPose.transform.matrix ); controller.matrix.fromArray( inputPose.transform.matrix );
controller.matrix.decompose( controller.position, controller.rotation, controller.scale ); controller.matrix.decompose( controller.position, controller.rotation, controller.scale );
controller.visible = true; controller.visible = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册