1

所以我正在使用 Electron 和 Three.js 创建一个 WebXR 应用程序。我正在使用 StereoCamera 类来模拟 VR 耳机所需的立体效果。现在 StereoCamera 类提供了一个名为 eyeSep 的属性,它模仿了用户的 IPD(瞳孔间距)。在我的应用程序中,我允许用户通过使用范围滑块来调整 eyeSep 值,但我遇到了一个小问题。

随着 ipd 值的降低,正在渲染的 2 个图像移得更远 在此处输入图像描述

然后随着 ipd 值的增加,正在渲染的 2 个图像一起移近 在此处输入图像描述

所以我的问题不应该是相反的吗?随着 IPD 减小,图像应该靠得更近,如果 IPD 值增加,图像应该离得更远?

然后这是我用来更改 eyeSep 值的 javascript 代码

  this.updateIPD = function(){
    stereo.eyeSep = parseFloat(new_IPD);
  }

然后是 HTML 滑块的代码:

    <div class="collapse" id="collapse-ipd-slider">
        <div id="collapse-container" class="card card-body">
            <div class="d-flex justify-content-center my-4">
                <div class="w-75">
                  <input type="range" class="custom-range" id="customRange11" value="0.064" min="0.040" max="0.080" step="0.001">
                  <p>IPD: <span id="value"></span></p>
                </div>
              </div>
        </div>
      </div>

也许也许我是那个把这一切都倒过来的人。我真的可以使用了解 three.js 中的 Stereocamera 类或以前从事过类似工作的人。任何帮助表示赞赏,谢谢。

4

0 回答 0