小编Maa*_*ing的帖子

将屏幕坐标转换为OpenGL坐标

我正在为Android创建一个Dice Roller应用程序.使用Kotlin,OpenGL-ES和jBullet.我已经实现了骰子.现在我需要创建墙,因为否则骰子将从屏幕滚出.

因为屏幕可以有不同的宽高比,我试图确定墙的位置glUnProject,但我无法弄明白.我收到的坐标不正确.

    gl.glViewport(0,0,width,height)    //Reset The Current Viewport
    gl.glMatrixMode(GL10.GL_PROJECTION)    //Select The Projection Matrix
    gl.glLoadIdentity()                    //Reset The Projection Matrix

    //Calculate The Aspect Ratio Of The Window
    GLU.gluPerspective(gl, 35.0f, width.toFloat() / height.toFloat(), 0.1f, 100.0f)

    GLU.gluLookAt(gl,
           0.0f, 30.0f,  0.0f, //Pos
           0.0f,  0.0f,  0.0f, //Look at
           0.0f,  0.0f,  1.0f  //Up
    );

    gl.glMatrixMode(GL10.GL_MODELVIEW)    //Select The Modelview Matrix
    gl.glLoadIdentity()                    //Reset The Modelview Matrix

    // Get matrices
    gl.glGetFloatv(GL11.GL_PROJECTION_MATRIX, glProjectionMatrix,0)
    gl.glGetFloatv(GL11.GL_MODELVIEW_MATRIX, glModelMatrix,0)
    gl.glGetIntegerv(GL11.GL_VIEWPORT, glViewPort,0)

    // Allocate matrices
    var modelMatrix = glModelMatrix
    var projMatrix  = glProjectionMatrix
    var …
Run Code Online (Sandbox Code Playgroud)

android opengl-es bulletphysics jbullet

5
推荐指数
1
解决办法
824
查看次数

标签 统计

android ×1

bulletphysics ×1

jbullet ×1

opengl-es ×1