Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.16 KB | None | 0 0
  1. Framebuffer bufferA = new Framebuffer(displayWidth, displayHeight, true);
  2. Framebuffer bufferB = new Framebuffer(displayWidth, displayHeight, true);
  3.  
  4. private void renderLightRuneFx(Vec3Int coord) {
  5.         glPushMatrix();
  6.  
  7.         double offsetX = coord.x - (player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks) + 0.5;
  8.         double offsetY = coord.y - (player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks) + 5.5;
  9.         double offsetZ = coord.z - (player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks) + 0.5;
  10.  
  11.         glTranslated(offsetX, offsetY, offsetZ);
  12.         glColor4f(0.8f, 0.8f, 1f, 0.9f);
  13.         glRotatef(renderTick, 0, 1, 0);
  14.         glDisable(GL_TEXTURE_2D);
  15.  
  16.         glEnable(GL_BLEND);
  17.         glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
  18.  
  19.         // Render to framebuffer A
  20.         bufferA.bindFramebuffer(false); // true = adjust viewport
  21.         sphere.draw(2, 24, 24);
  22.  
  23.         glEnable(GL_TEXTURE_2D);
  24.  
  25.         // Render to framebuffer B, apply first blur
  26.         ShaderHelper.useShader(ShaderHelper.GAUSSIAN_BLUR_X);
  27.         bufferB.bindFramebuffer(false);
  28.         ShaderHelper.setUniform(ShaderHelper.GAUSSIAN_BLUR_X, "tex", bufferA.framebufferTexture);
  29.         glBindTexture(GL_TEXTURE_2D, bufferA.framebufferTexture);
  30.         glDrawArrays(GL_TRIANGLES, 0, 6);
  31.  
  32.         // Render to screen, apply second blur
  33.         ShaderHelper.useShader(ShaderHelper.GAUSSIAN_BLUR_Y);
  34.         bufferB.unbindFramebuffer();
  35.         ShaderHelper.setUniform(ShaderHelper.GAUSSIAN_BLUR_Y, "tex", bufferB.framebufferTexture);
  36.         glBindTexture(GL_TEXTURE_2D, bufferB.framebufferTexture);
  37.         glDrawArrays(GL_TRIANGLES, 0, 6);
  38.  
  39.         glDisable(GL_BLEND);
  40.         glPopMatrix();
  41.         ShaderHelper.releaseShader();
  42.     }
  43.  
  44.     public static void useShader(int shader) {
  45.         if(!useShaders())
  46.             return;
  47.  
  48.         glUseProgram(shader);
  49.     }
  50.  
  51.  
  52.  
  53.     public static void setUniform(int shader, String name, float val1, float val2) {
  54.     //And similar overloads
  55.         int location = glGetUniformLocation(shader, name);
  56.         glUniform2f(location, val1, val2);
  57.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement