0

我在项目 RajawaliVuforiaExample ( https://github.com/MasDennis/RajawaliVuforia ) 中导入了一个 obj 文件,obj 和 mtl 文件是用搅拌机导出的。我按照教程https://github.com/MasDennis/Rajawali/wiki/Tutorial-17-Importing-.Obj-Files
但是我的应用程序崩溃了。

LoaderOBJ objParser = new LoaderOBJ(mContext.getResources(), mTextureManager, R.raw.a_obj);
objParser.parse();
mObject = objParser.getParsedObject();
getCurrentScene().addChild(mObject);

我跟踪了错误:在公共 void onDrawFrame(GL10 glUnused) 方法中的 RajawaliRenderer.java 文件中,此行附近:

public void onDrawFrame(GL10 glUnused) {
    performFrameTasks(); //Execute any pending frame tasks
    synchronized (mNextSceneLock) { 
        //Check if we need to switch the scene, and if so, do it.
        if (mNextScene != null) {
            switchSceneDirect(mNextScene);
            mNextScene = null;
        }
    }

    final double deltaTime = (SystemClock.elapsedRealtime() - mLastRender) / 1000d;
    mLastRender = SystemClock.elapsedRealtime();

    onRender(deltaTime);

    ++mFrameCount;
    if (mFrameCount % 50 == 0) {
        long now = System.nanoTime();
        double elapsedS = (now - mStartTime) / 1.0e9;
        double msPerFrame = (1000 * elapsedS / mFrameCount);
        mLastMeasuredFPS = 1000 / msPerFrame;

        mFrameCount = 0;
        mStartTime = now;

        if(mFPSUpdateListener != null)
            mFPSUpdateListener.onFPSUpdate(mLastMeasuredFPS); //Update the FPS listener
    }

    int error = glUnused.glGetError();

    if(error > 0)
    {
        if(error != mLastReportedGLError)
        {
            mLastReportedGLError = error;
            throw new RuntimeException("OpenGL Error: " + GLU.gluErrorString(error) + " " + error);
        }
    } else {
        mLastReportedGLError = 0;
    }
}

和日志猫:

E/AndroidRuntime(3839): FATAL EXCEPTION: GLThread 9505

E/AndroidRuntime(3839): java.lang.RuntimeException: OpenGL Error: invalid operation 1282

E/AndroidRuntime(3839): at rajawali.renderer.RajawaliRenderer.onDrawFrame(RajawaliRenderer.java:387)

E/AndroidRuntime(3839): at rajawali.vuforia.RajawaliVuforiaRenderer.onDrawFrame(RajawaliVuforiaRenderer.java:123)

E/AndroidRuntime(3839): at com.example.rajawalivuforiaexample.RajawaliVuforiaExampleRenderer.onDrawFrame(RajawaliVuforiaExampleRenderer.java:180)

E/AndroidRuntime(3839): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)

E/AndroidRuntime(3839): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

E/dalvikvm(3839): threadid=17: exiting,name=pool-5-thread-1

E/dalvikvm(3839): threadid=18: exiting,name=pool-1-thread-1

有人能帮我吗?

4

0 回答 0