2016-07-18 12 views
0

私はアンドロイドでCardboard SDKを使って360メディアプレーヤーを作っています(実際には私は新しいGoogleVR SDKを使用していますが、ほぼ同じです)。これを行うには、thisコードに従っています:ボールペンで球体をステレオレンダリング

すべてが単眼視力で、歪んでいない場合はステレオで大きく機能します(cardboardView.setDistortionCorrectionEnabled(false))。歪み補正が有効になっている

場合はGLコンテキストに設定されます。私はGVRのAPIでこれを見つけた

enter image description here

:私は歪み補正を使用しようとすると、しかし、それは、この引き分けこの呼び出しの時点でテクスチャに裏打ちされたフレームバッファへ を描くので、 実装者がいくつかのレンダリング段階 のためのフレームバッファを変更する必要があるならば、実装はglGetIntegerv(GL_FRAMEBUFFER_BINDING、経由 を得たものにフレームバッファをリセットする必要があります。.. 。)その後。

しかし、これが関連しているかどうかはわかりません。

これは私のonDrawEyeコードです:これを解決する方法

/** 
* Draws a frame for an eye. 
* 
* @param eye The eye to render. Includes all required transformations. 
*/ 
@Override 
public void onDrawEye(Eye eye) { 


    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); 
    Matrix.multiplyMM(mView, 0, eye.getEyeView(), 0, mCamera, 0); 
    Matrix.multiplyMM(mViewProjectionMatrix, 0, mProjectionMatrix, 0, mView, 0); 

    mSphere.draw(mViewProjectionMatrix); 

    checkGLError("onDrawEye"); 

} 

任意のアイデア?本当にありがとうございました

(私はキューブを描く代わりの場合ちなみに、球すべてがうまく動作します)

答えて

0

よしは、ほぼ2ヶ月後、私はようやく私の問題を解決しました。もし誰かがどのように知りたければ、それはgvrの問題ではありませんでしたが、私はどのように私のシーンを初期化していましたか。基本的には、私はSphereコンストラクタのすべての作業を描画メソッドに移動しましたが、シェーダの初期化を行いました。

関連する問題