我正在尝试调整现有的 Three.js 项目以与 WebVR 配合使用。我已经取得了不错的进展——我可以在 VR 中环顾场景,但我无法将相机位置从它产生的初始位置移开(看起来接近0,0,0,似乎有一个预定义的位置)userHeight被考虑在内)
一旦我调用,renderer.vr.setDevice( vrDisplay )似乎就创建了一个新相机,并且我的场景使用的现有相机不再使用。我想继续使用该相机,或者至少继承它的大部分属性。
我注意到有一个renderer.vr.getCamera()方法(链接到源),但我还没有找到任何如何使用它的示例或文档(或者我是否应该使用它)。奇怪的是,这个方法接受 acamera作为参数,这对于 a 来说有点不直观getter。看看代码,似乎应该调用该函数setCamera,这让我有点困惑。我尝试调用该函数并传入我现有的函数,camera但没有效果。
任何帮助表示赞赏。我正在使用 Three.js R91 在最新版本的 Android/Chrome 上使用 Google Daydream View
我希望产生与以下示例非常相似的效果: https://thirdjs.org/examples/ ?q=trails#webgl_trails
然而,我想让旧的踪迹随着时间的推移逐渐消失在背景中——而不是仅仅停留在越来越混乱的屏幕上。
看来以下代码将允许您绘制先前的帧而不清除它们:
renderer = new THREE.WebGLRenderer( { preserveDrawingBuffer: true } );
renderer.autoClearColor = false;
但我不确定如何使每个帧淡入背景,因为新帧绘制在顶部。似乎用某种透明的颜色在屏幕上绘画会起作用,但我不确定如何处理。