List of usage examples for org.lwjgl.opengl GL11 glAlphaFunc
public static native void glAlphaFunc(@NativeType("GLenum") int func, @NativeType("GLfloat") float ref);
From source file:de.sanandrew.core.manpack.util.client.helpers.ItemRenderHelper.java
License:Creative Commons License
/** * Renders an ItemStack in 3D.//from ww w . ja v a 2 s.c o m * * @param stack the ItemStack to be rendered */ public static void renderItemIn3D(ItemStack stack) { if (stack.getItem() != null) { GL11.glPushMatrix(); GL11.glEnable(GL12.GL_RESCALE_NORMAL); IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(stack, ItemRenderType.EQUIPPED); if (customRenderer != null) { Minecraft.getMinecraft().renderEngine.bindTexture( Minecraft.getMinecraft().renderEngine.getResourceLocation(stack.getItemSpriteNumber())); GL11.glPushMatrix(); GL11.glTranslatef(0.5F, 0.5F, 0.0F); float blockScale = 0.5F; GL11.glScalef(blockScale, blockScale, blockScale); ForgeHooksClient.renderEquippedItem(ItemRenderType.EQUIPPED, customRenderer, renderBlocksRi, Minecraft.getMinecraft().player, stack); GL11.glPopMatrix(); } else if (stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType())) { Minecraft.getMinecraft().renderEngine.bindTexture( Minecraft.getMinecraft().renderEngine.getResourceLocation(stack.getItemSpriteNumber())); Block block = Block.getBlockFromItem(stack.getItem()); float blockScale = 0.5F; int renderType = block.getRenderType(); if (renderType == 1 || renderType == 19 || renderType == 12 || renderType == 2) { blockScale = 1.0F; } if (block.getRenderBlockPass() > 0) { GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); } GL11.glTranslatef(0.5F, 0.5F, 0.0F); GL11.glScalef(blockScale, blockScale, blockScale); GL11.glPushMatrix(); renderBlocksRi.renderBlockAsItem(block, stack.getItemDamage(), 1.0F); GL11.glPopMatrix(); if (block.getRenderBlockPass() > 0) { GL11.glDisable(GL11.GL_BLEND); } } else { if (stack.getItem().requiresMultipleRenderPasses()) { for (int j = 0; j < stack.getItem().getRenderPasses(stack.getItemDamage()); j++) { IIcon icon = stack.getItem().getIcon(stack, j); int color = stack.getItem().getColorFromItemStack(stack, j); float red = (color >> 16 & 255) / 255.0F; float green = (color >> 8 & 255) / 255.0F; float blue = (color & 255) / 255.0F; GL11.glColor4f(red, green, blue, 1.0F); renderItemIn3D(icon, stack.hasEffect(j), 1); } } else { IIcon icon = stack.getItem().getIcon(stack, 0); if (stack.getItem() instanceof ItemCloth) { GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); } int color = stack.getItem().getColorFromItemStack(stack, 0); float red = (color >> 16 & 255) / 255.0F; float green = (color >> 8 & 255) / 255.0F; float blue = (color & 255) / 255.0F; GL11.glColor4f(red, green, blue, 1.0F); renderItemIn3D(icon, stack.hasEffect(0), 1); if (stack.getItem() instanceof ItemCloth) { GL11.glDisable(GL11.GL_BLEND); } } } GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); TextureUtil.func_147945_b(); } }
From source file:de.sanandrew.mods.claysoldiers.client.particle.ParticleRenderDispatcher.java
License:Creative Commons License
public static void dispatch() { Tessellator tessellator = Tessellator.instance; GL11.glDepthMask(false);/* w ww .j a v a 2 s . c om*/ GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F); ParticleNexusFX.dispatchQueuedRenders(tessellator); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glDisable(GL11.GL_BLEND); GL11.glDepthMask(true); }
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);/*from w ww . j a v a 2 s . c om*/ GL11.glEnable(GL11.GL_BLEND); 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: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;//from w ww. j a v a 2 s. 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); }
From source file:fr.def.iss.vd2.lib_v3d.element.V3DSprite.java
License:Open Source License
@Override protected void doDisplay(V3DCamera camera) { if (!enableColor) { GL11.glPushAttrib(GL11.GL_CURRENT_BIT); GL11.glColor4f(1, 1, 1, opacity); }/* www . j av a2 s .c om*/ GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1f); GL11.glEnable(GL11.GL_ALPHA_TEST); if (disableRotation) { camera.disableRotation(); } float w = 0.5f * size.x * image.getWidth(); float h = 0.5f * size.y * image.getHeight(); GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getID()); GL11.glBegin(GL11.GL_QUADS); GL11.glTexCoord2f(0.0f, 0.0f); GL11.glVertex3f(-w, -h, 0.0f); GL11.glTexCoord2f(1.0f, 0.0f); GL11.glVertex3f(w, -h, 0.0f); GL11.glTexCoord2f(1.0f, 1.0f); GL11.glVertex3f(w, h, 0.0f); GL11.glTexCoord2f(0.0f, 1.0f); GL11.glVertex3f(-w, h, 0.0f); GL11.glEnd(); if (disableRotation) { camera.enableRotation(); } GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_TEXTURE_2D); if (!enableColor) { GL11.glPopAttrib(); } }
From source file:fr.def.iss.vd2.lib_v3d.v3draw.V3DrawReader.java
License:Open Source License
private void enableTexture() { int textureIndex = buffer.getInt(); GL11.glEnable(GL11.GL_TEXTURE_2D);/*from w w w . ja va 2 s . c om*/ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1f); GL11.glEnable(GL11.GL_ALPHA_TEST); // GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureList.get(textureIndex).getID()); }
From source file:fr.mcnanotech.kevin_68.nanotechmod.city.client.renderer.tileentity.TileEntitySpotLightRender.java
License:Creative Commons License
public void renderTileEntitySpotLightAt(TileEntitySpotLight tileentity, double x, double y, double z, float tick) { float f1 = tileentity.isActive(); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); if (f1 > 0.0F) { 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);/*from w w w .ja v a 2 s.c o m*/ GL11.glDepthMask(true); OpenGlHelper.glBlendFunc(770, 1, 1, 0); tessellator.startDrawingQuads(); tessellator.setColorRGBA(tileentity.get(TileEntitySpotLight.RED), tileentity.get(TileEntitySpotLight.GREEN), tileentity.get(TileEntitySpotLight.BLUE), 32); float f2 = (float) tileentity.getWorldObj().getTotalWorldTime() + tick; float f3 = -f2 * 0.2F - (float) MathHelper.floor_float(-f2 * 0.1F); byte b0 = 1; double d4 = (double) b0 * 0.2D;// taille double d3 = (double) f2 * 0.025D * (1.0D - (double) (b0 & 1) * 2.5D); double angle1Deg = tileentity.get(TileEntitySpotLight.ANGLE1); double angle2Deg = tileentity.get(TileEntitySpotLight.ANGLE2); double a1 = Math.toRadians(angle1Deg); double a2 = tileentity.get(TileEntitySpotLight.AUTOROTATE) == 0 ? ((d3 * (tileentity.get(TileEntitySpotLight.ROTATIONSPEED) / 10)) * (tileentity.get(TileEntitySpotLight.REVERSEROTATION) == 0 ? -1 : 1)) : Math.toRadians(angle2Deg); double xo = 0.5D; double yo = 0.5D; double zo = 0.5D; double xm = xo + (256 * Math.cos(a2) * Math.sin(a1)); double ym = yo + (256 * Math.cos(a1)); double zm = zo + (256 * Math.sin(a2) * Math.sin(a1)); double xa = xo + (0.2D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D))); double ya = xo + (0.2D * Math.cos(a1 + (Math.PI / 4D))); double za = zo + (0.2D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D))); double xA = xa + xm - xo; double yA = ya + ym - yo; double zA = za + zm - zo; double xb = xo + (0.2D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D))); double yb = xo + (0.2D * Math.cos(a1 + (3 * Math.PI / 4D))); double zb = zo + (0.2D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D))); double xB = xb + xm - xo; double yB = yb + ym - yo; double zB = zb + zm - zo; double xc = xo + (0.2D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D))); double yc = xo + (0.2D * Math.cos(a1 + (5 * Math.PI / 4D))); double zc = zo + (0.2D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D))); double xC = xc + xm - xo; double yC = yc + ym - yo; double zC = zc + zm - zo; double xd = xo + (0.2D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D))); double yd = xo + (0.2D * Math.cos(a1 + (7 * Math.PI / 4D))); double zd = zo + (0.2D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D))); double xD = xd + xm - xo; double yD = yd + ym - yo; double zD = zd + zm - zo; double t0 = 0.0D; double t1 = 1.0D; double t2 = (double) (-1.0F + f3); double t3 = (double) (256.0F * f1) * (0.5D / d4) + t2; tessellator.addVertexWithUV(x + xa, y + ya, z + za, t1, t3); tessellator.addVertexWithUV(x + xA, y + yA, z + zA, t1, t2); tessellator.addVertexWithUV(x + xB, y + yB, z + zB, t0, t2); tessellator.addVertexWithUV(x + xb, y + yb, z + zb, t0, t3); tessellator.addVertexWithUV(x + xa, y + ya, z + za, t1, t3); tessellator.addVertexWithUV(x + xA, y + yA, z + zA, t1, t2); tessellator.addVertexWithUV(x + xC, y + yC, z + zC, t0, t2); tessellator.addVertexWithUV(x + xc, y + yc, z + zc, t0, t3); tessellator.addVertexWithUV(x + xc, y + yc, z + zc, t1, t3); tessellator.addVertexWithUV(x + xC, y + yC, z + zC, t1, t2); tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2); tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3); tessellator.addVertexWithUV(x + xb, y + yb, z + zb, t1, t3); tessellator.addVertexWithUV(x + xB, y + yB, z + zB, t1, t2); tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2); tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3); tessellator.addVertexWithUV(x + xb, y + yb, z + zb, t1, t3); tessellator.addVertexWithUV(x + xB, y + yB, z + zB, t1, t2); tessellator.addVertexWithUV(x + xC, y + yC, z + zC, t0, t2); tessellator.addVertexWithUV(x + xc, y + yc, z + zc, t0, t3); tessellator.addVertexWithUV(x + xa, y + ya, z + za, t1, t3); tessellator.addVertexWithUV(x + xA, y + yA, z + zA, t1, t2); tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2); tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3); tessellator.draw(); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glDepthMask(false); double xe = xo + (0.5D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D))); double ye = xo + (0.5D * Math.cos(a1 + (Math.PI / 4D))); double ze = zo + (0.5D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D))); double xE = xe + xm - xo; double yE = ye + ym - yo; double zE = ze + zm - zo; double xf = xo + (0.5D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D))); double yf = xo + (0.5D * Math.cos(a1 + (3 * Math.PI / 4D))); double zf = zo + (0.5D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D))); double xF = xf + xm - xo; double yF = yf + ym - yo; double zF = zf + zm - zo; double xg = xo + (0.5D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D))); double yg = xo + (0.5D * Math.cos(a1 + (5 * Math.PI / 4D))); double zg = zo + (0.5D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D))); double xG = xg + xm - xo; double yG = yg + ym - yo; double zG = zg + zm - zo; double xh = xo + (0.5D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D))); double yh = xo + (0.5D * Math.cos(a1 + (7 * Math.PI / 4D))); double zh = zo + (0.5D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D))); double xH = xh + xm - xo; double yH = yh + ym - yo; double zH = zh + zm - zo; if (tileentity.get(TileEntitySpotLight.SECONDARYLAZER) == 0) { tessellator.startDrawingQuads(); tessellator.setColorRGBA(tileentity.get(TileEntitySpotLight.DARKRED), tileentity.get(TileEntitySpotLight.DARKGREEN), tileentity.get(TileEntitySpotLight.DARKBLUE), 32); tessellator.addVertexWithUV(x + xe, y + ye, z + ze, t1, t3); tessellator.addVertexWithUV(x + xE, y + yE, z + zE, t1, t2); tessellator.addVertexWithUV(x + xF, y + yF, z + zF, t0, t2); tessellator.addVertexWithUV(x + xf, y + yf, z + zf, t0, t3); tessellator.addVertexWithUV(x + xe, y + ye, z + ze, t1, t3); tessellator.addVertexWithUV(x + xE, y + yE, z + zE, t1, t2); tessellator.addVertexWithUV(x + xG, y + yG, z + zG, t0, t2); tessellator.addVertexWithUV(x + xg, y + yg, z + zg, t0, t3); tessellator.addVertexWithUV(x + xg, y + yg, z + zg, t1, t3); tessellator.addVertexWithUV(x + xG, y + yG, z + zG, t1, t2); tessellator.addVertexWithUV(x + xH, y + yH, z + zH, t0, t2); tessellator.addVertexWithUV(x + xh, y + yh, z + zh, t0, t3); tessellator.addVertexWithUV(x + xf, y + yf, z + zf, t1, t3); tessellator.addVertexWithUV(x + xF, y + yF, z + zF, t1, t2); tessellator.addVertexWithUV(x + xH, y + yH, z + zH, t0, t2); tessellator.addVertexWithUV(x + xh, y + yh, z + zh, t0, t3); tessellator.addVertexWithUV(x + xf, y + yf, z + zf, t1, t3); tessellator.addVertexWithUV(x + xF, y + yF, z + zF, t1, t2); tessellator.addVertexWithUV(x + xG, y + yG, z + zG, t0, t2); tessellator.addVertexWithUV(x + xg, y + yg, z + zg, t0, t3); tessellator.addVertexWithUV(x + xe, y + ya, z + za, t1, t3); tessellator.addVertexWithUV(x + xE, y + yE, z + zE, t1, t2); tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2); tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3); tessellator.draw(); } GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(true); } GL11.glAlphaFunc(GL11.GL_GREATER, 0.5F); }
From source file:go.graphics.swing.opengl.LWJGLDrawContext.java
License:Open Source License
/** * Sets the texture parameters, assuming that the texture was just created and is bound. */// ww w . ja v a 2 s . com private void setTextureParameters() { GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); GL11.glAlphaFunc(GL11.GL_GREATER, 0.5f); // prevent writing of transparent pixels to z buffer }
From source file:hellfirepvp.astralsorcery.client.gui.journal.GuiProgressionClusterRenderer.java
License:Open Source License
private void drawConnection(double originX, double originY, double targetX, double targetY, float zLevel) { GL11.glPushMatrix();/*from ww w . j a va 2s .c o m*/ GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glLineWidth(3.5F); GL11.glEnable(GL11.GL_LINE_SMOOTH); GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST); long clientTicks = ClientScheduler.getClientTick(); Vector3 origin = new Vector3(originX, originY, 0); Vector3 line = origin.vectorFromHereTo(targetX, targetY, 0); int segments = (int) Math.ceil(line.length() / 1); //1 = max line segment length int activeSegment = (int) (clientTicks % segments); Vector3 segmentIter = line.divide(segments); for (int i = segments; i >= 0; i--) { double lx = origin.getX(); double ly = origin.getY(); origin.add(segmentIter); float brightness = 0.4F; brightness += (0.6F * evaluateBrightness(i, activeSegment)); drawLinePart(lx, ly, origin.getX(), origin.getY(), zLevel, brightness); } GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_LINE_SMOOTH); GL11.glLineWidth(2.0F); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glPopMatrix(); }
From source file:jake2.desktop.LWJGLAdapter.java
License:Open Source License
@Override public void glAlphaFunc(int i, float j) { GL11.glAlphaFunc(i, j); }