Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void renderLightRuneFx(Vec3Int coord) {
- glPushMatrix();
- EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
- double offsetX = coord.x - (player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks) + 0.5;
- double offsetY = coord.y - (player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks) + 5.5;
- double offsetZ = coord.z - (player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks) + 0.5;
- int renderDistBlocks = FMLClientHandler.instance().getClient().gameSettings.renderDistanceChunks * 16;
- if ((offsetX*offsetX + offsetZ*offsetZ) > (renderDistBlocks*renderDistBlocks)) return;
- glTranslated(offsetX, offsetY, offsetZ);
- glColor4f(0.8f, 0.8f, 1f, 0.9f);
- glRotatef(renderTick, 0, 1, 0);
- glDisable(GL_TEXTURE_2D);
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
- blurredXTexBuffer.bindFramebuffer(true); // true = adjust viewport
- ShaderHelper.useShader(ShaderHelper.GAUSSIAN);
- ShaderHelper.setUniform(ShaderHelper.GAUSSIAN, "direction", DIRECTION_X);
- sphere.draw(2, 24, 24);
- glEnable(GL_TEXTURE_2D);
- blurredYTexBuffer.bindFramebuffer(true);
- ShaderHelper.useShader(ShaderHelper.GAUSSIAN);
- ShaderHelper.setUniform(ShaderHelper.GAUSSIAN, "direction", DIRECTION_Y);
- glBindTexture(GL_TEXTURE_2D, blurredXTexBuffer.framebufferTexture);
- glDrawArrays(GL_TRIANGLES, 0, 6);
- blurredYTexBuffer.unbindFramebuffer();
- ShaderHelper.useShader(ShaderHelper.GAUSSIAN);
- ShaderHelper.setUniform(ShaderHelper.GAUSSIAN, "direction", DIRECTION_Z);
- glBindTexture(GL_TEXTURE_2D, blurredYTexBuffer.framebufferTexture);
- glDrawArrays(GL_TRIANGLES, 0, 6);
- glEnable(GL_TEXTURE_2D);
- glDisable(GL_BLEND);
- glPopMatrix();
- }
- public static void setUniform(int shader, String name, IntBuffer values) {
- int location = ARBShaderObjects.glGetUniformLocationARB(shader, name);
- ARBShaderObjects.glUniform1ARB(location, values);
- }
- public static void useShader(int shader, IntConsumer callback) {
- if(!useShaders())
- return;
- ARBShaderObjects.glUseProgramObjectARB(shader);
- if(shader != 0) {
- // We'll see if we need this
- //int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time");
- //ARBShaderObjects.glUniform1iARB(time, ClientTickHandler.ticksInGame);
- if(callback != null)
- callback.accept(shader);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement