Advertisement
nabr

fog gl2

Jan 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.99 KB | None | 0 0
  1. // processing version 2.2.1
  2.  
  3. import javax.media.opengl.GL2;
  4.  
  5. float a;
  6.  
  7. PGraphicsOpenGL pg;
  8. PGL pgl;
  9. GL2 gl;
  10.  
  11. float[] projMatrix, mvMatrix;
  12.  
  13.  
  14. float[] fogColor = {
  15.   1.0f, 0.0f, 0.0f, 1.0f
  16. };
  17.  
  18. void setup() {
  19.   size(800, 600, P3D);
  20.  
  21.   projMatrix = new float[16];
  22.   mvMatrix = new float[16];
  23.  
  24.   pg = (PGraphicsOpenGL) g;
  25.   pgl = beginPGL();  
  26.   gl = ((PJOGL) pgl).gl.getGL2();
  27.  
  28.  /* gl.glClearDepth(1.0f);
  29.   gl.glEnable(GL2.GL_DEPTH_TEST);
  30.   gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST);
  31.   gl.glShadeModel(GL2.GL_SMOOTH);
  32.   gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);*/
  33.  
  34.   //Setup Fog mode
  35.   gl.glEnable(GL2.GL_FOG);
  36.   gl.glFogfv(GL2.GL_FOG_COLOR, fogColor, 0);
  37.   gl.glFogf(GL2.GL_FOG_DENSITY, .35f);
  38.   gl.glHint(GL2.GL_FOG_HINT, GL2.GL_NICEST);
  39.   gl.glFogf(GL2.GL_FOG_START, 1f);
  40.   gl.glFogf(GL2.GL_FOG_END, 5f);
  41. }
  42.  
  43. void draw() {
  44.   // background(255);
  45.   gl.glClearColor(0.85f, 0.85f, 0.85f, 1.0f);
  46.   gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
  47.   gl.glFogi(GL2.GL_FOG_MODE, GL2.GL_EXP);
  48.  
  49.   copyMatrices();  
  50.   // Do some things with gl.xxx functions here.
  51.   // For example, the program above is translated into:
  52.   gl.glColor4f(0.7, 0.7, 0.7, 0.8);
  53.   gl.glTranslatef(width/2, height/2, 0);
  54.   gl.glRotatef(a, 1, 0, 0);
  55.   gl.glRotatef(a*2, 0, 1, 0);
  56.   gl.glRectf(-200, -200, 200, 200);
  57.   gl.glRotatef(90, 1, 0, 0);
  58.   gl.glRectf(-200, -200, 200, 200);
  59.  
  60.   endPGL();
  61.  
  62.   a += 0.5;
  63. }
  64.  
  65. // Copies the current projection and modelview matrices from Processing to OpenGL.
  66. // It needs to be done explicitly, otherwise GL will use identity matrices by default!
  67. void copyMatrices() {
  68.   PGraphicsOpenGL pg = (PGraphicsOpenGL) g;
  69.  
  70.   gl.glMatrixMode(GL2.GL_PROJECTION);
  71.   projMatrix[0] = pg.projection.m00;
  72.   projMatrix[1] = pg.projection.m10;
  73.   projMatrix[2] = pg.projection.m20;
  74.   projMatrix[3] = pg.projection.m30;
  75.  
  76.   projMatrix[4] = pg.projection.m01;
  77.   projMatrix[5] = pg.projection.m11;
  78.   projMatrix[6] = pg.projection.m21;
  79.   projMatrix[7] = pg.projection.m31;
  80.  
  81.   projMatrix[8] = pg.projection.m02;
  82.   projMatrix[9] = pg.projection.m12;
  83.   projMatrix[10] = pg.projection.m22;
  84.   projMatrix[11] = pg.projection.m32;
  85.  
  86.   projMatrix[12] = pg.projection.m03;
  87.   projMatrix[13] = pg.projection.m13;
  88.   projMatrix[14] = pg.projection.m23;
  89.   projMatrix[15] = pg.projection.m33;
  90.  
  91.   gl.glLoadMatrixf(projMatrix, 0);
  92.  
  93.   gl.glMatrixMode(GL2.GL_MODELVIEW);
  94.   mvMatrix[0] = pg.modelview.m00;
  95.   mvMatrix[1] = pg.modelview.m10;
  96.   mvMatrix[2] = pg.modelview.m20;
  97.   mvMatrix[3] = pg.modelview.m30;
  98.  
  99.   mvMatrix[4] = pg.modelview.m01;
  100.   mvMatrix[5] = pg.modelview.m11;
  101.   mvMatrix[6] = pg.modelview.m21;
  102.   mvMatrix[7] = pg.modelview.m31;
  103.  
  104.   mvMatrix[8] = pg.modelview.m02;
  105.   mvMatrix[9] = pg.modelview.m12;
  106.   mvMatrix[10] = pg.modelview.m22;
  107.   mvMatrix[11] = pg.modelview.m32;
  108.  
  109.   mvMatrix[12] = pg.modelview.m03;
  110.   mvMatrix[13] = pg.modelview.m13;
  111.   mvMatrix[14] = pg.modelview.m23;
  112.   mvMatrix[15] = pg.modelview.m33;
  113.   gl.glLoadMatrixf(mvMatrix, 0);
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement