Advanced Getting Started: Difference between revisions

From JogampWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 17: Line 17:
     pmvMatrix.glTranslatef(-position.x, -position.y, -position.z);
     pmvMatrix.glTranslatef(-position.x, -position.y, -position.z);
     pmvMatrix.update();
     pmvMatrix.update();
Using with shaders:
    GLUniformData pmvMatrixUniform;
    PMVMatrix pmvMatrix = ...;
    state.attachObject("pmvMatrix", pmvMatrix);
    pmvMatrixUniform = new GLUniformData("pmvMatrix", 4, 4, pmvMatrix.glGetPMvMatrixf());
    state.ownUniform(pmvMatrixUniform);
    state.uniform(gl, pmvMatrixUniform);
    state.uniform(gl, pmvMatrixUniform);





Revision as of 23:11, 27 October 2012

Moving from OpenGL Fixed Functions

pmvMatrix

com.jogamp.opengl.util.PMVMatrix

pmvMatrix can make a matrix by using glTranslate/glRotate etc. FFP instructions.

Example (for camera):

   pmvMatrix.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
   pmvMatrix.glLoadIdentity();
   pmvMatrix.gluPerspective(fov, aspect, zNear, zFar);
   pmvMatrix.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
   pmvMatrix.glLoadIdentity();
   pmvMatrix.glRotatef(360 - pitch, 1, 0, 0);
   pmvMatrix.glRotatef(360 - yaw, 0, 1, 0);
   pmvMatrix.glRotatef(360 - roll, 0, 0, 1);
   pmvMatrix.glTranslatef(-position.x, -position.y, -position.z);
   pmvMatrix.update();

Using with shaders:

   GLUniformData pmvMatrixUniform;
   PMVMatrix pmvMatrix = ...;
   state.attachObject("pmvMatrix", pmvMatrix);
   pmvMatrixUniform = new GLUniformData("pmvMatrix", 4, 4, pmvMatrix.glGetPMvMatrixf());
   state.ownUniform(pmvMatrixUniform);
   state.uniform(gl, pmvMatrixUniform);
   state.uniform(gl, pmvMatrixUniform);


immModeSink

com.jogamp.opengl.util.ImmModeSink

ImmModeSink can make VBO by using FFP instructions