私はアンドロイドでCardboard SDKを使って360メディアプレーヤーを作っています(実際には私は新しいGoogleVR SDKを使用していますが、ほぼ同じです)。これを行うには、thisコードに従っています:ボールペンで球体をステレオレンダリング
すべてが単眼視力で、歪んでいない場合はステレオで大きく機能します(cardboardView.setDistortionCorrectionEnabled(false))。歪み補正が有効になっている
場合はGLコンテキストに設定されます。私はGVRのAPIでこれを見つけた
:私は歪み補正を使用しようとすると、しかし、それは、この引き分けこの呼び出しの時点でテクスチャに裏打ちされたフレームバッファへ を描くので、 実装者がいくつかのレンダリング段階 のためのフレームバッファを変更する必要があるならば、実装は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");
}
任意のアイデア?本当にありがとうございました
(私はキューブを描く代わりの場合ちなみに、球すべてがうまく動作します)