2

VREffect がアクティブなときにwebvr-boilerplateを使用しているプロジェクトでミラー効果を正しく機能させようとしてい ます。

THREE.Mirrorを使用するために(r72devとr72を使用して)試しました:

    //webVR-boilerplate + Mirror.js

    verticalMirror = new THREE.Mirror( renderer, camera, { clipBias: 0.03, textureWidth: 256, textureHeight: 256, color:0x889999 } );

    verticalMirrorMesh = new THREE.Mesh( new THREE.PlaneBufferGeometry( 10, 10 ), verticalMirror.material );

    verticalMirrorMesh.add( verticalMirror );

    scene.add( verticalMirrorMesh );

    // Request animation frame loop function
    function animate( timestamp ) {

          verticalMirror.render();

          // Update VR headset position and apply to camera.
          controls.update();
      
          // Render the scene through the manager.
          manager.render( scene, camera, timestamp );

          requestAnimationFrame( animate );

    }

VR モードを有効にし、ステレオ表示を有効にすると、レンダー ターゲットの更新が停止します。

ミラーはカメラの後ろにあり、モデルを回転させてミラーの動作を観察しました。

なぜこれが起こるのか、それを修正する方法について何か考えはありますか? ミラーまたは立体効果の初期化パラメータが不足していますか?

前もって感謝します。


編集: 問題は webvr-boilerplate だけでなく、StereoEffect.js と Mirror.jsでも発生するようです。これは、three.js のStereoEffect.js の例へのミラーを使用してシーンをセットアップし、それでも同じ問題が発生するためです..

ステレオ http://ruidorey.webfactional.com/stereo.png ミラーとステレオ効果 - 実際の例

ステレオなし http://ruidorey.webfactional.com/nostereo.png ミラー ステレオ効果なし - 実例

4

2 に答える 2

2

この回答は、投稿のコードではなく、実際の例のコードに基づいています。

問題は をStereoEffect呼び出すrenderer.clear()ことですが、ミラーの以前にレンダリングされた をクリアしていますWebGLRenderTarget

1 つの解決策は、次のようなことを行うことです。

verticalMirror.render();

renderer.setRenderTarget( null ); // add this line

effect.render( scene, camera );

three.js r.72

于 2015-09-17T05:08:08.140 に答える