Advanced Getting Started

From JogampWiki
Jump to: navigation, search

Moving from OpenGL Fixed Functions

pmvMatrix

com.jogamp.opengl.util.PMVMatrix

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

Camera setup example

   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 example

   GLUniformData pmvMatrixUniform;

init code...

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

display code...

   state.uniform(gl, pmvMatrixUniform);


immModeSink

com.jogamp.opengl.util.ImmModeSink

ImmModeSink can make VBO by using FFP instructions