Ich mache einen 360 Media Player mit Cardboard SDK in Android (eigentlich verwende ich das neue GoogleVR SDK, aber es funktioniert ziemlich ähnlich). Um dies zu tun, ich folge this code:Stereo Rendern einer Kugel mit Karton
Alles funktioniert gut mit einem monokularen Vision und mit einem Stereo, wenn nicht verzerrt (pappeView.setDistortionCorrectionEnabled (false)). Aber wenn ich versuche, die Verzerrungskorrektur zu verwenden, zieht es das:
ich dies in der GVR API gefunden habe:
Wenn Verzerrungskorrektur der GL Kontext aktiviert ist, wird eingestellt werden ziehen in einen Bildpuffer durch eine Textur zum Zeitpunkt dieser Aufforderung gesichert, so dass, wenn ein Implementierer müssen den Framebuffer für einige Rendering-Stufe ändern dann muss der Implementierer setzen Sie den Framebuffer auf die über glGetIntegerv erhalten ein (GL_FRAMEBUFFER_BINDING, .. .) danach.
Aber ich bin mir nicht sicher, ob das verwandt ist.
Das ist mein onDrawEye Code:
/**
* 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");
}
Irgendwelche Ideen wie diese zu lösen? Vielen Dank
(By the way, wenn ich stattdessen einen Würfel ziehen von einer Kugel alles gut funktioniert)