Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
1acd3d89
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1acd3d89
编写于
5月 31, 2019
作者:
M
Morgan Villedieu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add controller matrix polyfill and viewMatrix
上级
1f2c53ad
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
36 addition
and
31 deletion
+36
-31
examples/js/vr/Polyfill.js
examples/js/vr/Polyfill.js
+34
-5
src/renderers/webvr/WebXRManager.js
src/renderers/webvr/WebXRManager.js
+2
-26
未找到文件。
examples/js/vr/Polyfill.js
浏览文件 @
1acd3d89
...
...
@@ -2,7 +2,7 @@
if
(
'
xr
'
in
navigator
)
{
console
.
log
(
'
Helio
: Chrome m73 WebXR Polyfill:
'
,
navigator
.
xr
);
console
.
log
(
'
Helio
- (Chrome m73) WebXR Polyfill
'
,
navigator
.
xr
);
// WebXRManager - XR.supportSession() Polyfill - WebVR.js line 147
...
...
@@ -10,12 +10,12 @@ if( 'xr' in navigator ) {
if
(
'
supportsSessionMode
'
in
navigator
.
xr
)
{
const
temp
=
navigator
.
xr
.
requestSession
.
bind
(
navigator
.
xr
);
const
temp
RequestSession
=
navigator
.
xr
.
requestSession
.
bind
(
navigator
.
xr
);
navigator
.
xr
.
requestSession
=
function
(
sessionType
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
temp
({
mode
:
sessionType
})
temp
RequestSession
({
mode
:
sessionType
})
.
then
(
session
=>
{
// WebXRManager - xrFrame.getPose() Polyfill - line 279
...
...
@@ -26,11 +26,40 @@ if( 'xr' in navigator ) {
return
tempRequestAnimationFrame
(
function
(
time
,
frame
)
{
// WebXRManager - xrFrame.getViewerPose() Polyfill - line 279
// Transforms view.viewMatrix to view.transform.inverse.matrix
const
tempGetViewerPose
=
frame
.
getViewerPose
.
bind
(
frame
);
frame
.
getViewerPose
=
function
(
referenceSpace
)
{
const
pose
=
tempGetViewerPose
(
referenceSpace
);
pose
.
views
.
forEach
(
view
=>
{
view
.
transform
=
{
inverse
:
{
matrix
:
view
.
viewMatrix
}
}
})
return
pose
;
}
// WebXRManager - xrFrame.getPose() Polyfill - line 259
frame
.
getPose
=
function
(
targetRaySpace
,
referenceSpace
)
{
console
.
log
(
'
targetRay
'
,
targetRaySpace
)
const
inputPose
=
frame
.
getInputPose
(
targetRaySpace
,
referenceSpace
);
inputPose
.
transform
=
{
matrix
:
inputPose
.
targetRay
.
transformMatrix
}
return
frame
.
getInputPose
(
targetRaySpace
,
referenceSpace
)
;
return
inputPose
;
}
...
...
src/renderers/webvr/WebXRManager.js
浏览文件 @
1acd3d89
...
...
@@ -227,17 +227,7 @@ function WebXRManager( renderer ) {
var
viewMatrix
;
if
(
'
transform
'
in
view
)
{
viewMatrix
=
view
.
transform
.
inverse
.
matrix
;
}
else
{
// DEPRECATED
viewMatrix
=
view
.
viewMatrix
;
}
viewMatrix
=
view
.
transform
.
inverse
.
matrix
;
var
camera
=
cameraVR
.
cameras
[
i
];
camera
.
matrix
.
fromArray
(
viewMatrix
).
getInverse
(
camera
.
matrix
);
...
...
@@ -270,21 +260,7 @@ function WebXRManager( renderer ) {
if
(
inputPose
!==
null
)
{
if
(
'
transform
'
in
inputPose
)
{
controller
.
matrix
.
fromArray
(
inputPose
.
transform
.
matrix
);
}
else
if
(
'
targetRay
'
in
inputPose
)
{
controller
.
matrix
.
elements
=
inputPose
.
targetRay
.
transformMatrix
;
}
else
if
(
'
pointerMatrix
'
in
inputPose
)
{
// DEPRECATED
controller
.
matrix
.
elements
=
inputPose
.
pointerMatrix
;
}
controller
.
matrix
.
fromArray
(
inputPose
.
transform
.
matrix
);
controller
.
matrix
.
decompose
(
controller
.
position
,
controller
.
rotation
,
controller
.
scale
);
controller
.
visible
=
true
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录