Advanced Getting Started: Difference between revisions

From JogampWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:
pmvMatrix can make a matrix by using glTranslate/glRotate etc. FFP instructions.
pmvMatrix can make a matrix by using glTranslate/glRotate etc. FFP instructions.


Example (for camera):
=== Camera setup esample ===
     pmvMatrix.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
     pmvMatrix.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
     pmvMatrix.glLoadIdentity();
     pmvMatrix.glLoadIdentity();
Line 18: Line 18:
     pmvMatrix.update();
     pmvMatrix.update();


=== Using with shaders ===
=== Using with shaders esample ===
     GLUniformData pmvMatrixUniform;
     GLUniformData pmvMatrixUniform;



Revision as of 00:13, 28 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.

Camera setup esample

   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 esample

   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