List of usage examples for org.lwjgl.opengl GL11 glDepthMask
public static void glDepthMask(@NativeType("GLboolean") boolean flag)
From source file:eplus.renders.TableEntityItemRenderer.java
License:LGPL
/** * Render the item's icon or block into the GUI, including the glint effect. *//* ww w. j av a 2 s . c om*/ public void renderItemAndEffectIntoGUI(FontRenderer par1FontRenderer, RenderEngine par2RenderEngine, ItemStack par3ItemStack, int par4, int par5) { if (par3ItemStack != null) { if (!ForgeHooksClient.renderInventoryItem(renderBlocks, par2RenderEngine, par3ItemStack, renderWithColor, zLevel, (float) par4, (float) par5)) { this.renderItemIntoGUI(par1FontRenderer, par2RenderEngine, par3ItemStack, par4, par5); } if (par3ItemStack.hasEffect()) { GL11.glDepthFunc(GL11.GL_GREATER); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDepthMask(false); par2RenderEngine.bindTexture("%blur%/misc/glint.png"); this.zLevel -= 50.0F; GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR); GL11.glColor4f(0.5F, 0.25F, 0.8F, 1.0F); this.renderGlint(par4 * 431278612 + par5 * 32178161, par4 - 2, par5 - 2, 20, 20); GL11.glDisable(GL11.GL_BLEND); GL11.glDepthMask(true); this.zLevel += 50.0F; GL11.glEnable(GL11.GL_LIGHTING); GL11.glDepthFunc(GL11.GL_LEQUAL); } } }
From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java
License:Open Source License
public void initSolidAndLineRendering() { GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST); // Set Perspective Calculations To Most Accurate disableAllTextureUnits();/*from w ww .ja v a 2 s . c om*/ GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); GL11.glEnableClientState(GL11.GL_COLOR_ARRAY); }
From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java
License:Open Source License
public void initTexturedRendering() { // GL11.glDepthMask(true); // GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing // GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do GL11.glDisable(GL11.GL_BLEND);//w w w . j av a 2s .c o m ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); GL11.glEnableClientState(GL11.GL_COLOR_ARRAY); GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); }
From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java
License:Open Source License
public void initBlendedRendering() { GL11.glDepthMask(false); GL11.glEnable(GL11.GL_DEPTH_TEST);// w w w . j ava 2 s. c om GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do GL11.glEnable(GL11.GL_BLEND); // Enable Blending GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); // Type Of Blending To Perform // GL11.glHint(GL11.GL_POINT_SMOOTH_HINT, GL11.GL_NICEST); // Really Nice Point Smoothing }
From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java
License:Open Source License
public void disableBlendedRendering() { GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do // GL11.glHint (GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST); // Set Perspective Calculations To Most Accurate GL11.glDisable(GL11.GL_BLEND);/*from ww w. j a v a 2 s.c o m*/ }
From source file:espresso3d.engine.window.viewport.E3DViewport.java
License:Open Source License
/** * This will automatically be called by the engine. Users needn't worry about this. * Sets the perspective to the values stored in this viewport. This keeps track of whether * the values have changed or not, so it will keep the GL calls to a minimum (only set the perspective * if something has actually changed).// ww w.j a va 2 s.c om * */ private void setPerspective() { if (perspectiveChanged) { GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix GL11.glLoadIdentity(); // Reset The Projection Matrix if (mode == VIEWPORT_MODE_PERSPECTIVE) { // Calculate The Aspect Ratio Of The Window GLU.gluPerspective((float) fovY, (float) ((float) width / (float) height), (float) nearClipPlane, (float) farClipPlane); } else if (mode == VIEWPORT_MODE_ORTHOGRAPHIC) GL11.glOrtho(left * orthoZoom, right * orthoZoom, bottom * orthoZoom, top * orthoZoom, nearClipPlane, farClipPlane); //todo: this needs to center around the camera. Need to determin whether to use X/Y, Y/Z, or X/Z to center on recalcProjectionViewMatrix(); perspectiveChanged = false; } GL11.glMatrixMode(GL11.GL_MODELVIEW); // Select The Projection Matrix GL11.glLoadIdentity(); // Reset The Modelview Matrix GL11.glDepthMask(true); //Re-enable this. IF particles turn this off, it has to be turned on to be able to clear the depth buffer GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer GLU.gluLookAt((float) cameraActor.getOrientation().getPosition().getX(), (float) cameraActor.getOrientation().getPosition().getY(), (float) cameraActor.getOrientation().getPosition().getZ(), ((float) (cameraActor.getOrientation().getPosition().getX() + cameraActor.getOrientation().getForward().getX())), ((float) (cameraActor.getOrientation().getPosition().getY() + cameraActor.getOrientation().getForward().getY())), ((float) (cameraActor.getOrientation().getPosition().getZ() + cameraActor.getOrientation().getForward().getZ())), (float) cameraActor.getOrientation().getUp().getX(), (float) cameraActor.getOrientation().getUp().getY(), (float) cameraActor.getOrientation().getUp().getZ()); //If something has changed camera wise, we need to recalculate the viewport matrix // the next time something asks for a projection or unprojection if (!cameraActor.getOrientation().getPosition().equals(lastPosition) || !cameraActor.getOrientation().getForward().equals(lastForward) || !cameraActor.getOrientation().getUp().equals(lastUp)) { lastPosition.set(cameraActor.getOrientation().getPosition()); lastForward.set(cameraActor.getOrientation().getForward()); lastUp.set(cameraActor.getOrientation().getUp()); needViewArrayRecalc = true; } }
From source file:forestry.apiculture.render.EntityBeeFX.java
License:Open Source License
public void renderParticle(Tessellator tessellator, float f, float f1, float f2, float f3, float f4, float f5) { tessellator.draw();// w ww .j av a2s .c o m GL11.glPushMatrix(); GL11.glDepthMask(false); GL11.glEnable(3042); GL11.glBlendFunc(770, blendmode); Proxies.common.bindTexture(texture); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float f10 = 0.1F * particleScale; float f11 = (float) ((prevPosX + (posX - prevPosX) * f) - interpPosX); float f12 = (float) ((prevPosY + (posY - prevPosY) * f) - interpPosY); float f13 = (float) ((prevPosZ + (posZ - prevPosZ) * f) - interpPosZ); // GL11.glRotatef(this.rand.nextFloat(), 0.0F, 1.0F, 0.0F); tessellator.startDrawingQuads(); tessellator.setBrightness(0x0000f0); tessellator.setColorRGBA_F(particleRed, particleGreen, particleBlue, 1.0F); tessellator.addVertexWithUV(f11 - f1 * f10 - f4 * f10, f12 - f2 * f10, f13 - f3 * f10 - f5 * f10, 0, 1); tessellator.addVertexWithUV((f11 - f1 * f10) + f4 * f10, f12 + f2 * f10, (f13 - f3 * f10) + f5 * f10, 1, 1); tessellator.addVertexWithUV(f11 + f1 * f10 + f4 * f10, f12 + f2 * f10, f13 + f3 * f10 + f5 * f10, 1, 0); tessellator.addVertexWithUV((f11 + f1 * f10) - f4 * f10, f12 - f2 * f10, (f13 + f3 * f10) - f5 * f10, 0, 0); tessellator.draw(); GL11.glDisable(3042); GL11.glDepthMask(true); GL11.glPopMatrix(); GL11.glBindTexture(3553 /* GL_TEXTURE_2D *//* GL_TEXTURE_2D */, Proxies.common.getClientInstance().renderEngine.getTexture("/particles.png")); tessellator.startDrawingQuads(); }
From source file:forestry.apiculture.render.ParticleRenderer.java
License:Open Source License
private synchronized void render(float partialTicks) { Minecraft.getMinecraft().mcProfiler.startSection(name + "-render"); float rotationX = ActiveRenderInfo.rotationX; float rotationZ = ActiveRenderInfo.rotationZ; float rotationYZ = ActiveRenderInfo.rotationYZ; float rotationXY = ActiveRenderInfo.rotationXY; float rotationXZ = ActiveRenderInfo.rotationXZ; EntityLivingBase player = Minecraft.getMinecraft().renderViewEntity; EntityFX.interpPosX = player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks; EntityFX.interpPosY = player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks; EntityFX.interpPosZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks; // bind the texture Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture); // save the old gl state GL11.glPushAttrib(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // gl states/settings for drawing GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND);//from www. jav a2s. c om GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); for (EntityFX particle : particles) { tessellator.setBrightness(particle.getBrightnessForRender(partialTicks)); particle.renderParticle(tessellator, partialTicks, rotationX, rotationXZ, rotationZ, rotationYZ, rotationXY); } tessellator.draw(); // restore previous gl state GL11.glPopAttrib(); Minecraft.getMinecraft().mcProfiler.endSection(); }
From source file:forestry.core.render.EntitySnowFX.java
License:Open Source License
public void renderParticle(Tessellator tessellator, float f, float f1, float f2, float f3, float f4, float f5) { tessellator.draw();//from ww w. j a va 2 s. c o m GL11.glPushMatrix(); GL11.glDepthMask(false); GL11.glEnable(3042); GL11.glBlendFunc(770, blendmode); Proxies.common.bindTexture(texture); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float f10 = 0.1F * particleScale; float f11 = (float) ((prevPosX + (posX - prevPosX) * f) - interpPosX); float f12 = (float) ((prevPosY + (posY - prevPosY) * f) - interpPosY); float f13 = (float) ((prevPosZ + (posZ - prevPosZ) * f) - interpPosZ); GL11.glRotatef((float) motionY, 0.0F, 1.0F, 0.0F); tessellator.startDrawingQuads(); tessellator.setBrightness(0x0000f0); tessellator.setColorRGBA_F(particleRed, particleGreen, particleBlue, 1.0F); tessellator.addVertexWithUV(f11 - f1 * f10 - f4 * f10, f12 - f2 * f10, f13 - f3 * f10 - f5 * f10, 0, 1); tessellator.addVertexWithUV((f11 - f1 * f10) + f4 * f10, f12 + f2 * f10, (f13 - f3 * f10) + f5 * f10, 1, 1); tessellator.addVertexWithUV(f11 + f1 * f10 + f4 * f10, f12 + f2 * f10, f13 + f3 * f10 + f5 * f10, 1, 0); tessellator.addVertexWithUV((f11 + f1 * f10) - f4 * f10, f12 - f2 * f10, (f13 + f3 * f10) - f5 * f10, 0, 0); tessellator.draw(); GL11.glDisable(3042); GL11.glDepthMask(true); GL11.glPopMatrix(); GL11.glBindTexture(3553 /* GL_TEXTURE_2D *//* GL_TEXTURE_2D */, Proxies.common.getClientInstance().renderEngine.getTexture("/particles.png")); tessellator.startDrawingQuads(); }
From source file:fr.blaze_empire.phenix246.projector_mod.client.TileEntitySpotlightRender.java
License:Creative Commons License
public void renderLaser(TileEntityEmitter tileentity, double x, double y, double z, float tick) { block1 = ProjectorMod.emitter;/*ww w .j ava2s . co m*/ block2 = ProjectorMod.transmitter; xCoord = tileentity.xCoord; yCoord = tileentity.yCoord; zCoord = tileentity.zCoord; world = tileentity.getWorldObj(); direction = tileentity.getDirection(); f0 = 0.0F; f1 = 1.0F; d0 = 0.0D; d1 = 1.0D; distanceT = MathsHelper.getMaxLengh(world, xCoord, yCoord, zCoord); distance = (MathsHelper.getMaxLengh(world, xCoord, yCoord, zCoord) + 0.5F); recepter = MathsHelper.getRecepeterBlock(world, xCoord, yCoord, zCoord); if (world.getBlock(xCoord, yCoord, zCoord) == block1) isActive = world.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); if (world.getBlock(xCoord, yCoord, zCoord) == block2) // instance { TileEntityTransmitter tile = (TileEntityTransmitter) tileentity; isActive = tile.isActive(); } // /////////////////////////////////////////////////////////////// // Render GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); if (isActive) { Tessellator tessellator = Tessellator.instance; this.bindTexture(texture); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, 10497.0F); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, 10497.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_BLEND); GL11.glDepthMask(true); OpenGlHelper.glBlendFunc(770, 1, 1, 0); time = (float) world.getTotalWorldTime() + tick; f3 = -time * 0.2F - (float) MathHelper.floor_float(-time * 0.1F); b0 = 1; d3 = (double) time * 0.025D * (d1 - (double) (b0 & 1) * 2.5D); // /////////////////////////////////////////////////////////////// // determine the coordinates d5 = (double) b0 * 0.2D; d7 = 0.5D + Math.cos(d3 + 2.356194490192345D) * d5; d9 = 0.5D + Math.sin(d3 + 2.356194490192345D) * d5; d11 = 0.5D + Math.cos(d3 + (Math.PI / 4D)) * d5; d13 = 0.5D + Math.sin(d3 + (Math.PI / 4D)) * d5; d15 = 0.5D + Math.cos(d3 + 3.9269908169872414D) * d5; d17 = 0.5D + Math.sin(d3 + 3.9269908169872414D) * d5; d19 = 0.5D + Math.cos(d3 + 5.497787143782138D) * d5; d21 = 0.5D + Math.sin(d3 + 5.497787143782138D) * d5; d25 = 0.0D; d27 = 1.0D; d28 = (double) (-f1 + f3); d4 = 0.2D; d6 = 0.8D; d8 = 0.2D; d10 = 0.2D; d12 = 0.8D; d14 = 0.8D; d16 = 0.8D; d20 = 0.0D; d22 = 1.0D; d24 = (double) (-f1 + f3); d30 = 0.2D; // /////////////////////////////////////////////////////////////// // determine the colors short[] rgb = { 255, 255, 255 }; rgb[0] = tileentity.getRed(); rgb[1] = tileentity.getGreen(); rgb[2] = tileentity.getBlue(); // = MathsHelper.getRGB(world, xCoord, yCoord, zCoord, tileentity); // // Send colors (RBG) // MathsHelper.sendRGB(world, xCoord, yCoord, zCoord, rgb[0], // rgb[1], rgb[2]); // /////////////////////////////////////////////////////////////// tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); if (direction == 0) // bottom /** -Y */ { d23 = (double) (distance * f1); d29 = (double) (distance * f1) * (0.5D / d5) + d28; d18 = (double) (distance * f1); d26 = (double) (distance * f1) + d24; y = y + 0.5D; tessellator.addVertexWithUV(x + d7, y - d23, z + d9, d27, d29); tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d27, d28); tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d25, d28); tessellator.addVertexWithUV(x + d11, y - d23, z + d13, d25, d29); tessellator.addVertexWithUV(x + d19, y - d23, z + d21, d27, d29); tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d27, d28); tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d25, d28); tessellator.addVertexWithUV(x + d15, y - d23, z + d17, d25, d29); tessellator.addVertexWithUV(x + d11, y - d23, z + d13, d27, d29); tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d27, d28); tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d25, d28); tessellator.addVertexWithUV(x + d19, y - d23, z + d21, d25, d29); tessellator.addVertexWithUV(x + d15, y - d23, z + d17, d27, d29); tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d27, d28); tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d25, d28); tessellator.addVertexWithUV(x + d7, y - d23, z + d9, d25, d29); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); tessellator.addVertexWithUV(x + d30, y - d18, z + d4, d22, d26); tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d22, d24); tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d20, d24); tessellator.addVertexWithUV(x + d6, y - d18, z + d8, d20, d26); tessellator.addVertexWithUV(x + d14, y - d18, z + d16, d22, d26); tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d22, d24); tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d20, d24); tessellator.addVertexWithUV(x + d10, y - d18, z + d12, d20, d26); tessellator.addVertexWithUV(x + d6, y - d18, z + d8, d22, d26); tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d22, d24); tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d20, d24); tessellator.addVertexWithUV(x + d14, y - d18, z + d16, d20, d26); tessellator.addVertexWithUV(x + d10, y - d18, z + d12, d22, d26); tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d22, d24); tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d20, d24); tessellator.addVertexWithUV(x + d30, y - d18, z + d4, d20, d26); } if (direction == 1) // Top /** +Y */ { d23 = (double) (distance * f1); d29 = (double) (distance * f1) * (0.5D / d5) + d28; d18 = (double) (distance * f1); d26 = (double) (distance * f1) + d24; y = y + 0.5D; tessellator.addVertexWithUV(x + d7, y + d23, z + d9, d27, d29); tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d27, d28); tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d25, d28); tessellator.addVertexWithUV(x + d11, y + d23, z + d13, d25, d29); tessellator.addVertexWithUV(x + d19, y + d23, z + d21, d27, d29); tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d27, d28); tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d25, d28); tessellator.addVertexWithUV(x + d15, y + d23, z + d17, d25, d29); tessellator.addVertexWithUV(x + d11, y + d23, z + d13, d27, d29); tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d27, d28); tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d25, d28); tessellator.addVertexWithUV(x + d19, y + d23, z + d21, d25, d29); tessellator.addVertexWithUV(x + d15, y + d23, z + d17, d27, d29); tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d27, d28); tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d25, d28); tessellator.addVertexWithUV(x + d7, y + d23, z + d9, d25, d29); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); tessellator.addVertexWithUV(x + d30, y + d18, z + d4, d22, d26); tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d22, d24); tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d20, d24); tessellator.addVertexWithUV(x + d6, y + d18, z + d8, d20, d26); tessellator.addVertexWithUV(x + d14, y + d18, z + d16, d22, d26); tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d22, d24); tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d20, d24); tessellator.addVertexWithUV(x + d10, y + d18, z + d12, d20, d26); tessellator.addVertexWithUV(x + d6, y + d18, z + d8, d22, d26); tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d22, d24); tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d20, d24); tessellator.addVertexWithUV(x + d14, y + d18, z + d16, d20, d26); tessellator.addVertexWithUV(x + d10, y + d18, z + d12, d22, d26); tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d22, d24); tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d20, d24); tessellator.addVertexWithUV(x + d30, y + d18, z + d4, d20, d26); } if (direction == 2) // South /** +Z */ { d23 = (double) (distance * f1); d29 = (double) (distance * f1) * (0.5D / d5) + d28; d18 = (double) (distance * f1); d26 = (double) (distance * f1) + d24; z = z + 0.5D; tessellator.addVertexWithUV(x + d7, y + d9, z + d23, d27, d29); tessellator.addVertexWithUV(x + d7, y + d9, z + d0, d27, d28); tessellator.addVertexWithUV(x + d11, y + d13, z + d0, d25, d28); tessellator.addVertexWithUV(x + d11, y + d13, z + d23, d25, d29); tessellator.addVertexWithUV(x + d19, y + d21, z + d23, d27, d29); tessellator.addVertexWithUV(x + d19, y + d21, z + d0, d27, d28); tessellator.addVertexWithUV(x + d15, y + d17, z + d0, d25, d28); tessellator.addVertexWithUV(x + d15, y + d17, z + d23, d25, d29); tessellator.addVertexWithUV(x + d11, y + d13, z + d23, d27, d29); tessellator.addVertexWithUV(x + d11, y + d13, z + d0, d27, d28); tessellator.addVertexWithUV(x + d19, y + d21, z + d0, d25, d28); tessellator.addVertexWithUV(x + d19, y + d21, z + d23, d25, d29); tessellator.addVertexWithUV(x + d15, y + d17, z + d23, d27, d29); tessellator.addVertexWithUV(x + d15, y + d17, z + d0, d27, d28); tessellator.addVertexWithUV(x + d7, y + d9, z + d0, d25, d28); tessellator.addVertexWithUV(x + d7, y + d9, z + d23, d25, d29); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); tessellator.addVertexWithUV(x + d30, y + d4, z + d18, d22, d26); tessellator.addVertexWithUV(x + d30, y + d4, z + d0, d22, d24); tessellator.addVertexWithUV(x + d6, y + d8, z + d0, d20, d24); tessellator.addVertexWithUV(x + d6, y + d8, z + d18, d20, d26); tessellator.addVertexWithUV(x + d14, y + d16, z + d18, d22, d26); tessellator.addVertexWithUV(x + d14, y + d16, z + d0, d22, d24); tessellator.addVertexWithUV(x + d10, y + d12, z + d0, d20, d24); tessellator.addVertexWithUV(x + d10, y + d12, z + d18, d20, d26); tessellator.addVertexWithUV(x + d6, y + d8, z + d18, d22, d26); tessellator.addVertexWithUV(x + d6, y + d8, z + d0, d22, d24); tessellator.addVertexWithUV(x + d14, y + d16, z + d0, d20, d24); tessellator.addVertexWithUV(x + d14, y + d16, z + d18, d20, d26); tessellator.addVertexWithUV(x + d10, y + d12, z + d18, d22, d26); tessellator.addVertexWithUV(x + d10, y + d12, z + d0, d22, d24); tessellator.addVertexWithUV(x + d30, y + d4, z + d0, d20, d24); tessellator.addVertexWithUV(x + d30, y + d4, z + d18, d20, d26); } if (direction == 4) // North /** -Z */ { d23 = (double) (distance * f1); d29 = (double) (distance * f1) * (0.5D / d5) + d28; d18 = (double) (distance * f1); d26 = (double) (distance * f1) + d24; z = z + 0.5D; tessellator.addVertexWithUV(x + d7, y + d9, z - d23, d27, d29); tessellator.addVertexWithUV(x + d7, y + d9, z - d0, d27, d28); tessellator.addVertexWithUV(x + d11, y + d13, z - d0, d25, d28); tessellator.addVertexWithUV(x + d11, y + d13, z - d23, d25, d29); tessellator.addVertexWithUV(x + d19, y + d21, z - d23, d27, d29); tessellator.addVertexWithUV(x + d19, y + d21, z - d0, d27, d28); tessellator.addVertexWithUV(x + d15, y + d17, z - d0, d25, d28); tessellator.addVertexWithUV(x + d15, y + d17, z - d23, d25, d29); tessellator.addVertexWithUV(x + d11, y + d13, z - d23, d27, d29); tessellator.addVertexWithUV(x + d11, y + d13, z - d0, d27, d28); tessellator.addVertexWithUV(x + d19, y + d21, z - d0, d25, d28); tessellator.addVertexWithUV(x + d19, y + d21, z - d23, d25, d29); tessellator.addVertexWithUV(x + d15, y + d17, z - d23, d27, d29); tessellator.addVertexWithUV(x + d15, y + d17, z - d0, d27, d28); tessellator.addVertexWithUV(x + d7, y + d9, z - d0, d25, d28); tessellator.addVertexWithUV(x + d7, y + d9, z - d23, d25, d29); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); tessellator.addVertexWithUV(x + d30, y + d4, z - d18, d22, d26); tessellator.addVertexWithUV(x + d30, y + d4, z - d0, d22, d24); tessellator.addVertexWithUV(x + d6, y + d8, z - d0, d20, d24); tessellator.addVertexWithUV(x + d6, y + d8, z - d18, d20, d26); tessellator.addVertexWithUV(x + d14, y + d16, z - d18, d22, d26); tessellator.addVertexWithUV(x + d14, y + d16, z - d0, d22, d24); tessellator.addVertexWithUV(x + d10, y + d12, z - d0, d20, d24); tessellator.addVertexWithUV(x + d10, y + d12, z - d18, d20, d26); tessellator.addVertexWithUV(x + d6, y + d8, z - d18, d22, d26); tessellator.addVertexWithUV(x + d6, y + d8, z - d0, d22, d24); tessellator.addVertexWithUV(x + d14, y + d16, z - d0, d20, d24); tessellator.addVertexWithUV(x + d14, y + d16, z - d18, d20, d26); tessellator.addVertexWithUV(x + d10, y + d12, z - d18, d22, d26); tessellator.addVertexWithUV(x + d10, y + d12, z - d0, d22, d24); tessellator.addVertexWithUV(x + d30, y + d4, z - d0, d20, d24); tessellator.addVertexWithUV(x + d30, y + d4, z - d18, d20, d26); } if (direction == 3) // West /** -X */ { d23 = (double) (distance * f1); d29 = (double) (distance * f1) * (0.5D / d5) + d28; d18 = (double) (distance * f1); d26 = (double) (distance * f1) + d24; x = x + 0.5D; tessellator.addVertexWithUV(x - d23, y + d7, z + d9, d27, d29); tessellator.addVertexWithUV(x - d0, y + d7, z + d9, d27, d28); tessellator.addVertexWithUV(x - d0, y + d11, z + d13, d25, d28); tessellator.addVertexWithUV(x - d23, y + d11, z + d13, d25, d29); tessellator.addVertexWithUV(x - d23, y + d19, z + d21, d27, d29); tessellator.addVertexWithUV(x - d0, y + d19, z + d21, d27, d28); tessellator.addVertexWithUV(x - d0, y + d15, z + d17, d25, d28); tessellator.addVertexWithUV(x - d23, y + d15, z + d17, d25, d29); tessellator.addVertexWithUV(x - d23, y + d11, z + d13, d27, d29); tessellator.addVertexWithUV(x - d0, y + d11, z + d13, d27, d28); tessellator.addVertexWithUV(x - d0, y + d19, z + d21, d25, d28); tessellator.addVertexWithUV(x - d23, y + d19, z + d21, d25, d29); tessellator.addVertexWithUV(x - d23, y + d15, z + d17, d27, d29); tessellator.addVertexWithUV(x - d0, y + d15, z + d17, d27, d28); tessellator.addVertexWithUV(x - d0, y + d7, z + d9, d25, d28); tessellator.addVertexWithUV(x - d23, y + d7, z + d9, d25, d29); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); tessellator.addVertexWithUV(x - d18, y + d30, z + d4, d22, d26); tessellator.addVertexWithUV(x - d0, y + d30, z + d4, d22, d24); tessellator.addVertexWithUV(x - d0, y + d6, z + d8, d20, d24); tessellator.addVertexWithUV(x - d18, y + d6, z + d8, d20, d26); tessellator.addVertexWithUV(x - d18, y + d14, z + d16, d22, d26); tessellator.addVertexWithUV(x - d0, y + d14, z + d16, d22, d24); tessellator.addVertexWithUV(x - d0, y + d10, z + d12, d20, d24); tessellator.addVertexWithUV(x - d18, y + d10, z + d12, d20, d26); tessellator.addVertexWithUV(x - d18, y + d6, z + d8, d22, d26); tessellator.addVertexWithUV(x - d0, y + d6, z + d8, d22, d24); tessellator.addVertexWithUV(x - d0, y + d14, z + d16, d20, d24); tessellator.addVertexWithUV(x - d18, y + d14, z + d16, d20, d26); tessellator.addVertexWithUV(x - d18, y + d10, z + d12, d22, d26); tessellator.addVertexWithUV(x - d0, y + d10, z + d12, d22, d24); tessellator.addVertexWithUV(x - d0, y + d30, z + d4, d20, d24); tessellator.addVertexWithUV(x - d18, y + d30, z + d4, d20, d26); } if (direction == 5) // East /** +X */ { d23 = (double) (distance * f1); d29 = (double) (distance * f1) * (0.5D / d5) + d28; d18 = (double) (distance * f1); d26 = (double) (distance * f1) + d24; x = x + 0.5D; tessellator.addVertexWithUV(x + d23, y + d7, z + d9, d27, d29); tessellator.addVertexWithUV(x + d0, y + d7, z + d9, d27, d28); tessellator.addVertexWithUV(x + d0, y + d11, z + d13, d25, d28); tessellator.addVertexWithUV(x + d23, y + d11, z + d13, d25, d29); tessellator.addVertexWithUV(x + d23, y + d19, z + d21, d27, d29); tessellator.addVertexWithUV(x + d0, y + d19, z + d21, d27, d28); tessellator.addVertexWithUV(x + d0, y + d15, z + d17, d25, d28); tessellator.addVertexWithUV(x + d23, y + d15, z + d17, d25, d29); tessellator.addVertexWithUV(x + d23, y + d11, z + d13, d27, d29); tessellator.addVertexWithUV(x + d0, y + d11, z + d13, d27, d28); tessellator.addVertexWithUV(x + d0, y + d19, z + d21, d25, d28); tessellator.addVertexWithUV(x + d23, y + d19, z + d21, d25, d29); tessellator.addVertexWithUV(x + d23, y + d15, z + d17, d27, d29); tessellator.addVertexWithUV(x + d0, y + d15, z + d17, d27, d28); tessellator.addVertexWithUV(x + d0, y + d7, z + d9, d25, d28); tessellator.addVertexWithUV(x + d23, y + d7, z + d9, d25, d29); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); tessellator.startDrawingQuads(); tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32); tessellator.addVertexWithUV(x + d18, y + d30, z + d4, d22, d26); tessellator.addVertexWithUV(x + d0, y + d30, z + d4, d22, d24); tessellator.addVertexWithUV(x + d0, y + d6, z + d8, d20, d24); tessellator.addVertexWithUV(x + d18, y + d6, z + d8, d20, d26); tessellator.addVertexWithUV(x + d18, y + d14, z + d16, d22, d26); tessellator.addVertexWithUV(x + d0, y + d14, z + d16, d22, d24); tessellator.addVertexWithUV(x + d0, y + d10, z + d12, d20, d24); tessellator.addVertexWithUV(x + d18, y + d10, z + d12, d20, d26); tessellator.addVertexWithUV(x + d18, y + d6, z + d8, d22, d26); tessellator.addVertexWithUV(x + d0, y + d6, z + d8, d22, d24); tessellator.addVertexWithUV(x + d0, y + d14, z + d16, d20, d24); tessellator.addVertexWithUV(x + d18, y + d14, z + d16, d20, d26); tessellator.addVertexWithUV(x + d18, y + d10, z + d12, d22, d26); tessellator.addVertexWithUV(x + d0, y + d10, z + d12, d22, d24); tessellator.addVertexWithUV(x + d0, y + d30, z + d4, d20, d24); tessellator.addVertexWithUV(x + d18, y + d30, z + d4, d20, d26); } tessellator.draw(); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(true); } GL11.glAlphaFunc(GL11.GL_GREATER, 0.5F); }