WebXRManager.html 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body>
  10. <h1>[name]</h1>
  11. <p class="desc">
  12. 此类表示WebXR设备API的抽象,并由[page:WebGLRenderer]在内部使用。
  13. [name]还提供了一个公共接口,允许用户启用/禁用XR并执行XR相关任务,例如检索控制器。
  14. </p>
  15. <h2>Properties</h2>
  16. <h3>[property:Boolean cameraAutoUpdate]</h3>
  17. <p>
  18. manager的XR摄像头是否应自动更新。默认为*true*。
  19. </p>
  20. <h3>[property:Boolean enabled]</h3>
  21. <p>
  22. 此标志通知渲染器准备好进行XR渲染。默认为假。
  23. 如果您要在应用中使用XR,请将其设置为*true*。
  24. </p>
  25. <h3>[property:Boolean isPresenting]</h3>
  26. <p>
  27. XR演示是否处于活动状态。默认为*false*。该标志是只读的,由[name]自动设置。
  28. </p>
  29. <h2>方法(Methods)</h2>
  30. <h3>[method:XRWebGLLayer getBaseLayer]()</h3>
  31. <p>
  32. 返回当前基础层。如果目标 XR 设备支持 [link:https://www.w3.org/TR/webxrlayers-1/ WebXR Layers API],则返回 [link:https://developer.mozilla.org/en-US/docs/Web/API/XRProjectionLayer XRProjectionLayer];如果不支持,则返回 [link:https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer XRWebGLLayer]。
  33. </p>
  34. <h3>[method:XRWebGLBinding getBinding]()</h3>
  35. <p>
  36. 返回当前的 [link:https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLBinding XRWebGLBinding]。<br /><br />
  37. 如果浏览器支持,且尚未创建 `XRWebGLBinding`,则此方法将创建一个新的 `XRWebGLBinding`。
  38. </p>
  39. <h3>[method:ArrayCamera getCamera]()</h3>
  40. <p>
  41. 返回表示活动XR会话的XR相机的[page:ArrayCamera]实例。
  42. 对于每个视图,它在其[page:ArrayCamera.cameras cameras]属性中包含一个单独的相机对象。
  43. </p>
  44. <p>
  45. 当前未使用相机的*fov*,不反映 XR 相机的 fov。
  46. 如果您需要应用级别的fov,则必须从XR相机的投影矩阵中手动计算。
  47. </p>
  48. <h3>[method:Texture getCameraTexture]( [param:XRCamera xrCamera] )</h3>
  49. <p>
  50. [page:XRCamera xrCamera] — 要查询的 [link:https://immersive-web.github.io/raw-camera-access/#xr-camera-section XRCamera]。<br /><br />
  51. 从查询的 `XRCamera` 返回不透明纹理。仅在当前动画循环期间可用。<br /><br />
  52. 查看 [example:webxr_ar_camera_access webxr / ar / camera_access] 示例。
  53. </p>
  54. <h3>[method:Group getController]( [param:Integer index] )</h3>
  55. <p>
  56. [page:Integer index] — 控制器的索引。<br /><br />
  57. 返回表示XR控制器所谓的*目标光线*空间的[page:Group 组]。使用此空间可视化3D对象,支持用户完成UI交互等指向任务。
  58. </p>
  59. <h3>[method:Group getControllerGrip]( [param:Integer index] )</h3>
  60. <p>
  61. [page:Integer index] — 控制器的索引。<br /><br />
  62. 返回一个[page:Group 组],代表所谓的XR控制器的*抓地力*空间。如果用户要握住其他3D对象(如光剑),请使用此空间。
  63. </p>
  64. <p>
  65. 注意:如果你想显示用户手中的东西并同时提供指向光线,
  66. 你需要将手持对象附加到[page:.getControllerGrip]()返回的组,
  67. 并将光线附加到[page:.getController]()返回的组.
  68. 这个想法是在同一个WebXR控制器的两个不同坐标空间中有两个不同的组。
  69. </p>
  70. <h3>[method:Mesh getDepthSensingMesh]()</h3>
  71. <p>
  72. 如果可用,则返回表示用户环境计算深度的纹理,否则返回 `null`。
  73. </p>
  74. <h3>[method:ExternalTexture getDepthTexture]()</h3>
  75. <p>
  76. 如果可用,则返回表示用户环境计算深度的纹理,否则返回 `null`。
  77. </p>
  78. <h3>[method:Float getFoveation]()</h3>
  79. <p>
  80. 返回 XR 合成器用于投影层的注视点渲染强度。
  81. </p>
  82. <h3>[method:XRFrame getFrame]()</h3>
  83. <p>
  84. 返回当前的 [link:https://developer.mozilla.org/en-US/docs/Web/API/XRFrame XRFrame]。如果在没有正在进行的 XR 会话的情况下,则返回 `null`。
  85. </p>
  86. <h3>[method:Group getHand]( [param:Integer index] )</h3>
  87. <p>
  88. [page:Integer index] — 控制器的索引。 <br /><br />
  89. 返回代表XR控制器所谓的*手或关节*空间的[page:Group 组]。在不使用物理控制器时,使用此空间可视化用户的手。
  90. </p>
  91. <h3>[method:String getReferenceSpace]()</h3>
  92. <p>
  93. 返回参考空间。
  94. </p>
  95. <h3>[method:XRSession getSession]()</h3>
  96. <p>
  97. 返回*XRSession*对象,它允许在应用程序级别更细粒度地管理活动的WebXR会话。
  98. </p>
  99. <h3>[method:Boolean hasDepthSensing]()</h3>
  100. <p>
  101. 如果 XR 设备提供了深度感知数据,则返回 `true`。
  102. </p>
  103. <h3>[method:undefined setFoveation]( [param:Float foveation] )</h3>
  104. <p>
  105. [page:Float foveation] — 要设置的注视点渲染强度。<br /><br />
  106. 指定 XR 合成器为该图层使用的注视点渲染强度。必须为介于 `0` 和 `1` 之间的值。
  107. </p>
  108. <h3>[method:undefined setFramebufferScaleFactor]( [param:Float factor], [param:Boolean limited] )</h3>
  109. <p>
  110. [page:Float factor] — 要设置的帧缓冲区比例因子。<br />
  111. [page:Boolean limited] — 如果值最终高于设备的能力,是否应将帧缓冲区比例因子减小到本机限制。默认为`false`。<br /><br />
  112. 指定在渲染到XR设备时确定帧缓冲区大小时要使用的比例因子。
  113. 该值是相对于默认XR设备显示分辨率的。默认为*1*。值0.5将指定具有显示器原始分辨率50%的帧缓冲区。
  114. </p>
  115. <p>
  116. 注意:在呈现XR内容时无法更改帧缓冲区比例因子。
  117. </p>
  118. <h3>[method:undefined setReferenceSpace]( [param:XRReferenceSpace referenceSpace] )</h3>
  119. <p>
  120. [page:XRReferenceSpace referenceSpace] — 自定义参考空间。<br /><br />
  121. 可用于配置覆盖默认参考空间的自定义参考空间。
  122. </p>
  123. <h3>[method:undefined setReferenceSpaceType]( [param:String referenceSpaceType] )</h3>
  124. <p>
  125. [page:String referenceSpaceType] — 要设置的参考空间类型。<br /><br />
  126. 可用于配置与用户物理环境的空间关系。
  127. 根据用户在3D空间中的移动方式,设置适当的参考空间可以改进跟踪。
  128. 默认为*本层空间*。
  129. 请查看[link:https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpaceType MDN]以了解可能的值及其用例。
  130. </p>
  131. <h3>[method:undefined updateCamera]( [param:PerspectiveCamera camera] )</h3>
  132. <p>
  133. 更新 XR 相机的状态。
  134. 如果您将[page:.cameraAutoUpdate]设置为*false*,请在应用级别使用此方法。
  135. 该方法需要场景的非 XR 相机作为参数。
  136. 调用此方法时,传入的相机变换会自动调整到 XR 相机的位置。
  137. </p>
  138. <p>
  139. 注意:在呈现 XR 内容时无法更改参考空间类型。
  140. </p>
  141. <h2>源代码(Source)</h2>
  142. <p>
  143. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  144. </p>
  145. </body>
  146. </html>
粤ICP备19079148号