Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
33d85af5
T
three.js
项目概览
Ablesons
/
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,体验更适合开发者的 AI 搜索 >>
提交
33d85af5
编写于
7月 28, 2020
作者:
M
Mugen87
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Examples: Clean up.
上级
2f741c0a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
32 addition
and
31 deletion
+32
-31
examples/jsm/webxr/XRHandModelFactory.js
examples/jsm/webxr/XRHandModelFactory.js
+9
-10
examples/jsm/webxr/XRHandOculusMeshModel.js
examples/jsm/webxr/XRHandOculusMeshModel.js
+8
-8
examples/jsm/webxr/XRHandPrimitiveModel.js
examples/jsm/webxr/XRHandPrimitiveModel.js
+15
-13
未找到文件。
examples/jsm/webxr/XRHandModelFactory.js
浏览文件 @
33d85af5
import
{
Object3D
}
from
"
../../../build/three.module.js
"
;
}
from
'
../../../build/three.module.js
'
;
import
{
XRHandPrimitiveModel
}
from
"
./XRHandPrimitiveModel.js
"
;
}
from
'
./XRHandPrimitiveModel.js
'
;
import
{
XRHandOculusMeshModel
}
from
"
./XRHandOculusMeshModel.js
"
;
}
from
'
./XRHandOculusMeshModel.js
'
;
function
XRHandModel
(
controller
)
{
...
...
@@ -40,7 +40,7 @@ XRHandModel.prototype = Object.assign( Object.create( Object3D.prototype ), {
}
);
var
XRHandModelFactory
=
(
function
()
{
const
XRHandModelFactory
=
(
function
()
{
function
XRHandModelFactory
()
{
...
...
@@ -62,7 +62,6 @@ var XRHandModelFactory = ( function () {
createHandModel
:
function
(
controller
,
profile
,
options
)
{
const
handModel
=
new
XRHandModel
(
controller
);
let
scene
=
null
;
controller
.
addEventListener
(
'
connected
'
,
(
event
)
=>
{
...
...
@@ -74,15 +73,15 @@ var XRHandModelFactory = ( function () {
handModel
.
xrInputSource
=
xrInputSource
;
// @todo Detect profile if not provided
if
(
profile
===
undefined
||
profile
===
"
spheres
"
)
{
if
(
profile
===
undefined
||
profile
===
'
spheres
'
)
{
handModel
.
motionController
=
new
XRHandPrimitiveModel
(
handModel
,
controller
,
this
.
path
,
xrInputSource
.
handedness
,
{
primitive
:
"
sphere
"
}
);
handModel
.
motionController
=
new
XRHandPrimitiveModel
(
handModel
,
controller
,
this
.
path
,
xrInputSource
.
handedness
,
{
primitive
:
'
sphere
'
}
);
}
else
if
(
profile
===
"
boxes
"
)
{
}
else
if
(
profile
===
'
boxes
'
)
{
handModel
.
motionController
=
new
XRHandPrimitiveModel
(
handModel
,
controller
,
this
.
path
,
xrInputSource
.
handedness
,
{
primitive
:
"
box
"
}
);
handModel
.
motionController
=
new
XRHandPrimitiveModel
(
handModel
,
controller
,
this
.
path
,
xrInputSource
.
handedness
,
{
primitive
:
'
box
'
}
);
}
else
if
(
profile
===
"
oculus
"
)
{
}
else
if
(
profile
===
'
oculus
'
)
{
handModel
.
motionController
=
new
XRHandOculusMeshModel
(
handModel
,
controller
,
this
.
path
,
xrInputSource
.
handedness
,
options
);
...
...
examples/jsm/webxr/XRHandOculusMeshModel.js
浏览文件 @
33d85af5
import
{
FBXLoader
}
from
"
../loaders/FBXLoader.js
"
;
import
{
FBXLoader
}
from
'
../loaders/FBXLoader.js
'
;
class
XRHandOculusMeshModel
{
...
...
@@ -8,17 +8,17 @@ class XRHandOculusMeshModel {
this
.
handModel
=
handModel
;
this
.
bones
=
[];
var
loader
=
new
FBXLoader
();
const
low
=
options
&&
options
.
model
===
"
lowpoly
"
?
"
_low
"
:
""
;
const
loader
=
new
FBXLoader
();
const
low
=
options
&&
options
.
model
===
'
lowpoly
'
?
'
_low
'
:
''
;
loader
.
setPath
(
path
);
loader
.
load
(
`OculusHand_
${
handedness
===
"
right
"
?
"
R
"
:
"
L
"
}${
low
}
.fbx`
,
object
=>
{
loader
.
load
(
`OculusHand_
${
handedness
===
'
right
'
?
'
R
'
:
'
L
'
}${
low
}
.fbx`
,
object
=>
{
this
.
handModel
.
add
(
object
);
// Hack because of the scale of the skinnedmesh
object
.
scale
.
setScalar
(
0.01
);
const
mesh
=
object
.
getObjectByProperty
(
"
type
"
,
"
SkinnedMesh
"
);
const
mesh
=
object
.
getObjectByProperty
(
'
type
'
,
'
SkinnedMesh
'
);
mesh
.
frustumCulled
=
false
;
mesh
.
castShadow
=
true
;
mesh
.
receiveShadow
=
true
;
...
...
@@ -59,7 +59,7 @@ class XRHandOculusMeshModel {
if
(
boneName
)
{
const
bone
=
object
.
getObjectByName
(
boneName
.
replace
(
"
%
"
,
handedness
===
"
right
"
?
"
r
"
:
"
l
"
)
);
const
bone
=
object
.
getObjectByName
(
boneName
.
replace
(
/%/g
,
handedness
===
'
right
'
?
'
r
'
:
'
l
'
)
);
this
.
bones
.
push
(
bone
);
}
else
{
...
...
@@ -78,7 +78,7 @@ class XRHandOculusMeshModel {
// XR Joints
const
XRJoints
=
this
.
controller
.
joints
;
for
(
var
i
=
0
;
i
<
this
.
bones
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
bones
.
length
;
i
++
)
{
const
bone
=
this
.
bones
[
i
];
const
XRJoint
=
XRJoints
[
i
];
...
...
@@ -93,7 +93,7 @@ class XRHandOculusMeshModel {
bone
.
position
.
copy
(
position
.
clone
().
multiplyScalar
(
100
)
);
bone
.
quaternion
.
copy
(
XRJoint
.
quaternion
);
// bone.scale.setScalar( XRJoint.jointRadius ||
defaultRadius );
// bone.scale.setScalar( XRJoint.jointRadius ||
defaultRadius );
}
...
...
examples/jsm/webxr/XRHandPrimitiveModel.js
浏览文件 @
33d85af5
...
...
@@ -4,7 +4,7 @@ import {
MeshStandardMaterial
,
Mesh
,
Group
}
from
"
../../../build/three.module.js
"
;
}
from
'
../../../build/three.module.js
'
;
class
XRHandPrimitiveModel
{
...
...
@@ -20,28 +20,29 @@ class XRHandPrimitiveModel {
if
(
window
.
XRHand
)
{
var
geometry
;
if
(
!
options
||
!
options
.
primitive
||
options
.
primitive
===
"
sphere
"
)
{
let
geometry
;
if
(
!
options
||
!
options
.
primitive
||
options
.
primitive
===
'
sphere
'
)
{
geometry
=
new
SphereBufferGeometry
(
1
,
10
,
10
);
}
else
if
(
options
.
primitive
===
"
box
"
)
{
}
else
if
(
options
.
primitive
===
'
box
'
)
{
geometry
=
new
BoxBufferGeometry
(
1
,
1
,
1
);
}
var
jointMaterial
=
new
MeshStandardMaterial
(
{
color
:
0xffffff
,
roughness
:
1
,
metalness
:
0
}
);
var
tipMaterial
=
new
MeshStandardMaterial
(
{
color
:
0x999999
,
roughness
:
1
,
metalness
:
0
}
);
const
jointMaterial
=
new
MeshStandardMaterial
(
{
color
:
0xffffff
,
roughness
:
1
,
metalness
:
0
}
);
const
tipMaterial
=
new
MeshStandardMaterial
(
{
color
:
0x999999
,
roughness
:
1
,
metalness
:
0
}
);
const
tipIndexes
=
[
XRHand
.
THUMB_PHALANX_TIP
,
XRHand
.
INDEX_PHALANX_TIP
,
XRHand
.
MIDDLE_PHALANX_TIP
,
XRHand
.
RING_PHALANX_TIP
,
XRHand
.
LITTLE_PHALANX_TIP
window
.
XRHand
.
THUMB_PHALANX_TIP
,
window
.
XRHand
.
INDEX_PHALANX_TIP
,
window
.
XRHand
.
MIDDLE_PHALANX_TIP
,
window
.
XRHand
.
RING_PHALANX_TIP
,
window
.
XRHand
.
LITTLE_PHALANX_TIP
];
for
(
let
i
=
0
;
i
<=
XRHand
.
LITTLE_PHALANX_TIP
;
i
++
)
{
for
(
let
i
=
0
;
i
<=
window
.
XRHand
.
LITTLE_PHALANX_TIP
;
i
++
)
{
var
cube
=
new
Mesh
(
geometry
,
tipIndexes
.
indexOf
(
i
)
!==
-
1
?
tipMaterial
:
jointMaterial
);
cube
.
castShadow
=
true
;
...
...
@@ -61,7 +62,8 @@ class XRHandPrimitiveModel {
// XR Joints
const
XRJoints
=
this
.
controller
.
joints
;
for
(
var
i
=
0
;
i
<
objects
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
objects
.
length
;
i
++
)
{
const
jointMesh
=
objects
[
i
];
const
XRJoint
=
XRJoints
[
i
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录