List of usage examples for org.lwjgl.opengl GL11 glTexParameterf
public static void glTexParameterf(@NativeType("GLenum") int target, @NativeType("GLenum") int pname, @NativeType("GLfloat") float param)
From source file:dataAccess.lwjgl.VAO_Loader.java
public static int loadTexture(File file) { int textureID; if (textureMap.containsKey(file.getAbsolutePath())) { textureID = textureMap.get(file.getAbsolutePath()); } else {//from w w w. j a va 2 s .c om Texture texture = null; try { texture = TextureLoader.getTexture("PNG", new FileInputStream(file)); } catch (IOException ex) { Logger.getLogger(VAO_Loader.class.getName()).log(Level.SEVERE, null, ex); } textureID = texture.getTextureID(); textureMap.put(file.getAbsolutePath(), textureID); } GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL14.GL_TEXTURE_LOD_BIAS, 0f); if (GLContext.getCapabilities().GL_EXT_texture_filter_anisotropic) { if (Settings.ANISOTROPIC_FILTERING) { float amount = Math.min(4f, GL11.glGetFloat(EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, EXTTextureFilterAnisotropic.GL_TEXTURE_MAX_ANISOTROPY_EXT, amount); } } else { System.out.println("no anisotropic filtering possible!"); } return textureID; }
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 w w .j av a 2 s .c o 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.mcnanotech.kevin_68.nanotechmod.city.client.renderer.tileentity.TileEntityFountainRender.java
License:Creative Commons License
public void renderTileEntitySpotLightAt(TileEntityFountain tileentity, double x, double y, double z, float par8) { float f1 = tileentity.func_82125_v_(); 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);// w w w . j av a2 s.c o m GL11.glDepthMask(true); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); tessellator.setColorRGBA(255, 255, 255, 32); float f2 = (float) (tileentity.getWorldObj().getTotalWorldTime() / 2) + par8; float f22; if (tileentity.rotate) { f22 = ((f2 - par8) * 2) + par8; } else { f22 = 1.0F; } float f3 = -f2 * 0.2F - (float) MathHelper.floor_float(-f2 * 0.1F); byte b0 = 1; double d3 = (double) f22 * 0.025D * (1.0D - (double) (b0 & 1) * 2.5D); tessellator.startDrawingQuads(); double d4 = (double) b0 * tileentity.getWidth(); double d5 = 0.5D + Math.cos(d3 + 2.356194490192345D) * d4; double d6 = 0.5D + Math.sin(d3 + 2.356194490192345D) * d4; double d7 = 0.5D + Math.cos(d3 + (Math.PI / 4D)) * d4; double d8 = 0.5D + Math.sin(d3 + (Math.PI / 4D)) * d4; double d9 = 0.5D + Math.cos(d3 + 3.9269908169872414D) * d4; double d10 = 0.5D + Math.sin(d3 + 3.9269908169872414D) * d4; double d11 = 0.5D + Math.cos(d3 + 5.497787143782138D) * d4; double d12 = 0.5D + Math.sin(d3 + 5.497787143782138D) * d4; double d13; d13 = (double) (tileentity.f * f1); double d14 = 0.0D; double d15 = 1.0D; double d16 = (double) (-1.0F + f3); double d17 = (double) (tileentity.f * f1) * (0.5D / d4) + d16; tessellator.addVertexWithUV(x + d7, y, z + d8, d14, d16); tessellator.addVertexWithUV(x + d7, y + d13, z + d8, d14, d17); tessellator.addVertexWithUV(x + d9, y, z + d10, d14, d16); tessellator.addVertexWithUV(x + d9, y + d13, z + d10, d14, d17); tessellator.addVertexWithUV(x + d7, y + d13, z + d8, d15, d17); tessellator.addVertexWithUV(x + d7, y, z + d8, d15, d16); tessellator.addVertexWithUV(x + d9, y + d13, z + d10, d15, d17); tessellator.addVertexWithUV(x + d9, y, z + d10, d15, d16); tessellator.addVertexWithUV(x + d5, y + d13, z + d6, d15, d17); tessellator.addVertexWithUV(x + d5, y, z + d6, d15, d16); tessellator.addVertexWithUV(x + d11, y + d13, z + d12, d15, d17); tessellator.addVertexWithUV(x + d11, y, z + d12, d15, d16); tessellator.addVertexWithUV(x + d11, y, z + d12, d14, d16); tessellator.addVertexWithUV(x + d11, y + d13, z + d12, d14, d17); tessellator.addVertexWithUV(x + d5, y, z + d6, d14, d16); tessellator.addVertexWithUV(x + d5, y + d13, z + d6, d14, d17); tessellator.draw(); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(true); } }
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 2s. com*/ 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:io.root.gfx.glutils.GL.java
License:Apache License
public static void glTexParameterf(int target, int pname, float param) { GL11.glTexParameterf(target, pname, param); }
From source file:ion2d.INTexture2D.java
License:Open Source License
/** * Can only generate mipmap with opengl 1.4 or greater *///from ww w. j a v a2s . c om public void glGenerateMipMap() { this.bind(); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL14.GL_GENERATE_MIPMAP, GL11.GL_TRUE); }
From source file:ivengine.Util.java
License:Creative Commons License
/** * Stores a variable amount of textures defined by URLS <filenames> into a texture array. Uses a magfilter <magfilter>, a minfilter <minfilter>. * If <mipmap> is true, mipmaps will be activated. * If <anisotropic> is true, anisotropic filtering will be activated, if supported. *///from www . j a va2 s . co m public static int loadTextureAtlasIntoTextureArray(URL[] filenames, int magfilter, int minfilter, boolean mipmap, boolean anisotropic) { int tex = GL11.glGenTextures(); GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, tex); GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_MAG_FILTER, magfilter); GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_MIN_FILTER, minfilter); GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT); GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT); ByteBuffer buf = null; PNGDecoder decoder = null; try { InputStream in = filenames[0].openStream(); decoder = new PNGDecoder(in); buf = BufferUtils.createByteBuffer(4 * decoder.getWidth() * decoder.getHeight()); decoder.decode(buf, decoder.getWidth() * 4, Format.RGBA); buf.flip(); in.close(); } catch (IOException e) { e.printStackTrace(); System.exit(-1); } int tileWidth = decoder.getWidth(); System.out.println(tileWidth); int tileHeight = decoder.getHeight(); System.out.println(tileHeight); GL12.glTexImage3D(GL30.GL_TEXTURE_2D_ARRAY, 0, GL11.GL_RGBA, tileWidth, tileHeight, filenames.length, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, (ByteBuffer) null); for (int i = 0; i < filenames.length; i++) { GL12.glTexSubImage3D(GL30.GL_TEXTURE_2D_ARRAY, 0, /*tileWidth*x*/0, /*tileHeight*y*/0, i, tileWidth, tileHeight, 1, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buf); buf.rewind(); if (i < filenames.length - 1) loadTexture(filenames[i + 1], buf); } if (mipmap) GL30.glGenerateMipmap(GL30.GL_TEXTURE_2D_ARRAY); if (anisotropic) { if (GLContext.getCapabilities().GL_EXT_texture_filter_anisotropic) { float maxanis = GL11.glGetFloat(EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT); System.out.println("Anisotropic filtering activated with a resolution of " + maxanis); System.out.println(GL11.glGetError()); GL11.glTexParameterf(GL30.GL_TEXTURE_2D_ARRAY, EXTTextureFilterAnisotropic.GL_TEXTURE_MAX_ANISOTROPY_EXT, maxanis); System.out.println(GL11.glGetError()); } else { System.err.println( "WARNING - Anisotropic filtering not supported by this graphics card. Setting it as disabled"); } } GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, 0); return tex; }
From source file:jpcsp.graphics.RE.RenderingEngineLwjgl.java
License:Open Source License
@Override public void setTextureAnisotropy(float value) { GL11.glTexParameterf(GL11.GL_TEXTURE_2D, EXTTextureFilterAnisotropic.GL_TEXTURE_MAX_ANISOTROPY_EXT, value); }
From source file:kuake2.render.lwjgl.Draw.java
License:Open Source License
void Draw_InitLocal() { // load console characters (don't bilerp characters) draw_chars = GL_FindImage("pics/conchars.pcx", it_pic); GL_Bind(draw_chars.texnum);// w ww. ja v a2 s . c om GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); }
From source file:kuake2.render.lwjgl.Draw.java
License:Open Source License
protected void Draw_StretchRaw(int x, int y, int w, int h, int cols, int rows, byte[] data) { int i, j, trows; int sourceIndex; int frac, fracstep; float hscale; int row;//w w w .j ava 2s .co m float t; GL_Bind(0); if (rows <= 256) { hscale = 1; trows = rows; } else { hscale = rows / 256.0f; trows = 256; } t = rows * hscale / 256; if (!qglColorTableEXT) { //int[] image32 = new int[256*256]; image32.clear(); int destIndex = 0; for (i = 0; i < trows; i++) { row = (int) (i * hscale); if (row > rows) break; sourceIndex = cols * row; destIndex = i * 256; fracstep = cols * 0x10000 / 256; frac = fracstep >> 1; for (j = 0; j < 256; j++) { image32.put(destIndex + j, r_rawpalette[data[sourceIndex + (frac >> 16)] & 0xff]); frac += fracstep; } } GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, gl_tex_solid_format, 256, 256, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, image32); } else { //byte[] image8 = new byte[256*256]; image8.clear(); int destIndex = 0; ; for (i = 0; i < trows; i++) { row = (int) (i * hscale); if (row > rows) break; sourceIndex = cols * row; destIndex = i * 256; fracstep = cols * 0x10000 / 256; frac = fracstep >> 1; for (j = 0; j < 256; j++) { image8.put(destIndex + j, data[sourceIndex + (frac >> 16)]); frac += fracstep; } } GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL_COLOR_INDEX8_EXT, 256, 256, 0, GL11.GL_COLOR_INDEX, GL11.GL_UNSIGNED_BYTE, image8); } GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); if ((gl_config.renderer == GL_RENDERER_MCD) || ((gl_config.renderer & GL_RENDERER_RENDITION) != 0)) GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glBegin(GL11.GL_QUADS); GL11.glTexCoord2f(0, 0); GL11.glVertex2f(x, y); GL11.glTexCoord2f(1, 0); GL11.glVertex2f(x + w, y); GL11.glTexCoord2f(1, t); GL11.glVertex2f(x + w, y + h); GL11.glTexCoord2f(0, t); GL11.glVertex2f(x, y + h); GL11.glEnd(); if ((gl_config.renderer == GL_RENDERER_MCD) || ((gl_config.renderer & GL_RENDERER_RENDITION) != 0)) GL11.glEnable(GL11.GL_ALPHA_TEST); }