List of usage examples for org.lwjgl.opengl GL11 glEnable
public static void glEnable(@NativeType("GLenum") int target)
From source file:com.grillecube.engine.renderer.model.ModelRenderer.java
@Override public void renderShadow(ShadowCamera shadow_camera) { if (this._models == null) { return;/*from ww w.j av a2 s .com*/ } GL11.glEnable(GL11.GL_DEPTH_TEST); if (this.getParent().getGLFWWindow().isKeyPressed(GLFW.GLFW_KEY_F)) { GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE); } // enable model program this._program_model_shadow.useStart(); { // load global uniforms this._program_model_shadow.loadUniforms(shadow_camera); // for each model instance to render for (ModelInstance instance : this._models) { // the skin to use ModelSkin skin = instance.getModel().getSkin(instance.getSkinID()); if (skin == null) { continue; } // render each of it parts for (int i = 0; i < instance.getPartInstances().length; i++) { ModelPartInstance part = instance.getPartInstances()[i]; // load uniforms this._program_model_shadow.loadInstanceUniforms(part); // bind the part part.getModelPart().bind(); // unable skin ModelPartSkin partskin = skin.getPart(i); part.getModelPart().toggleSkin(partskin); // render part.getModelPart().render(); } // render equipment if (instance.getEntity() instanceof EntityModeledLiving) { EntityModeledLiving entity = (EntityModeledLiving) instance.getEntity(); Item[] items = entity.getEquipments(); // if the entity actually has equipmment if (items != null) { // for each of it equipments for (Item item : items) { // get it model Model model = item.getModel(); // unable the skin // model.toggleSkin(item.getSkinID()); // TODO RENDER IT } } } } } this._program_model_shadow.useStop(); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_BLEND); GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL); }
From source file:com.grillecube.engine.renderer.world.particles.ParticleRenderer.java
/** render every quad particles */ private void renderBillboardedParticles(World world, CameraProjectiveWorld camera) { if (this._billboarded_particles.size() == 0) { return;//w w w .j av a2s .c o m } GL13.glActiveTexture(GL13.GL_TEXTURE0 + 0); // Texture unit 0 GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); this._program_billboarded_particle.useStart(); this.getParent().getDefaultVAO().bind(); this._program_billboarded_particle.loadGlobalUniforms(camera); this._billboarded_particles.sort(this._particle_comparator); int i = 0; while (i < this._billboarded_particles.size()) { ParticleBillboarded particle = this._billboarded_particles.get(i); float radius = Maths.max(particle.getScale().x, particle.getScale().y); if (particle != null && particle.getCameraSquareDistance() < camera.getSquaredRenderDistance() && camera.isSphereInFrustum(particle.getPosition(), radius)) { this._program_billboarded_particle.loadInstanceUniforms(particle); this.getParent().getDefaultVAO().draw(GL11.GL_POINTS, 0, 1); } ++i; } }
From source file:com.grillecube.engine.renderer.world.particles.ParticleRenderer.java
/** render every cube particles */ private void renderCubeParticles(World world, CameraProjectiveWorld camera) { if (this._cube_particles.size() == 0) { return;//from w w w. j a v a 2 s. c o m } GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); this._program_cube.useStart(); this._vao_cube.bind(); this._program_cube.loadGlobalUniforms(camera); this._vao_cube.drawInstanced(GL11.GL_TRIANGLES, 0, 36, this._cubes_in_buffer); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_BLEND); }
From source file:com.grillecube.engine.renderer.world.terrain.TerrainRenderer.java
@Override public void render() { if (!this._can_render) { return;/*from w w w . ja v a 2 s . c o m*/ } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glCullFace(GL11.GL_BACK); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); if (this.getParent().getGLFWWindow().isKeyPressed(GLFW.GLFW_KEY_F)) { GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE); } this.render(super.getCamera()); GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL); GL11.glDisable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_CULL_FACE); }
From source file:com.grillecube.engine.renderer.world.terrain.TerrainRenderer.java
public void render(CameraView camera) { if (!this._can_render) { return;// ww w .ja v a 2s . com } GL11.glEnable(GL11.GL_DEPTH_TEST); this._terrain_program.useStart(); { // render with the current camera, the current world weather, no // clipping, using reflection and refraction fbos as texture this._terrain_program.loadUniforms(this.getCamera(), this.getWorld(), this.getWorldRenderer().getShadowCamera()); // bind textures this.getParent().getWorldRenderer().getReflectionTexture().bind(GL13.GL_TEXTURE1, GL11.GL_TEXTURE_2D); this.getParent().getWorldRenderer().getRefractionTexture().bind(GL13.GL_TEXTURE2, GL11.GL_TEXTURE_2D); this._dudvmap.bind(GL13.GL_TEXTURE3, GL11.GL_TEXTURE_2D); this._normalmap.bind(GL13.GL_TEXTURE4, GL11.GL_TEXTURE_2D); this.getParent().getWorldRenderer().getShadowMap().bind(GL13.GL_TEXTURE5, GL11.GL_TEXTURE_2D); for (TerrainMesh mesh : this._meshes_camera) { this.bindTextureAtlas(mesh, camera); this._terrain_program.loadInstanceUniforms(mesh); mesh.render(); } } GL11.glDisable(GL11.GL_DEPTH_TEST); }
From source file:com.grillecube.engine.renderer.world.terrain.TerrainRenderer.java
private void renderReflectionRefraction(CameraProjectiveWorld camera, Vector4f clipplane) { if (!this._can_render) { return;/*from w w w . j av a 2s. c o m*/ } GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL30.GL_CLIP_DISTANCE0); this._terrain_reflection_refraction_program.useStart(); { // render with the current camera, the current world weather, no // clipping, using reflection and refraction fbos as texture this._terrain_reflection_refraction_program.loadUniforms(camera, this.getWorld().getWeather(), clipplane); // render every meshes for (TerrainMesh mesh : this._meshes_camera) { this.bindTextureAtlas(mesh, camera); this._terrain_reflection_refraction_program.loadInstanceUniforms(mesh); mesh.render(); } } GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL30.GL_CLIP_DISTANCE0); }
From source file:com.grillecube.engine.renderer.world.terrain.TerrainRenderer.java
@Override public void renderShadow(ShadowCamera shadow_camera) { // terrain do not cast shadow for now if (!this._can_render) { return;/*from www . j a v a2 s. c o m*/ } GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_CULL_FACE); this._terrain_shadow_program.useStart(); { this._terrain_shadow_program.loadUniforms(shadow_camera); // for (TerrainMesh mesh : this._meshes_shadow) { for (TerrainMesh mesh : this._meshes_shadow) { this._terrain_shadow_program.loadInstanceUniforms(mesh); mesh.render(); } } GL11.glDisable(GL11.GL_DEPTH_TEST); }
From source file:com.hea3ven.pandoraschest.client.model.ModelBaseChest.java
License:Open Source License
public void renderItem() { GL11.glPushMatrix();//from w ww . j av a2s . co m GL11.glDisable(GL11.GL_LIGHTING); // GL11.glTranslatef(0.0f, -0.5f, 0.0f); GL11.glRotatef(180.0f, 0.0f, 1.0f, 0.0f); ModColladaModel.getModelManager().getModel(openResourceName).renderAll(); GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); }
From source file:com.hea3ven.pandoraschest.client.model.ModelFluorecentSpot.java
License:Open Source License
public void renderItem() { GL11.glPushMatrix();/*from www.j av a2 s . com*/ GL11.glDisable(GL11.GL_LIGHTING); GL11.glTranslatef(0.0f, -0.5f, 0.0f); ModColladaModel.getModelManager().getModel(modelResource).renderAll(); GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); }
From source file:com.hilburn.dimensionguard.client.DisabledRenderer.java
License:Open Source License
@Override public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { ItemStack thisStack = ItemStack/*from w w w . j a v a 2 s . co m*/ .loadItemStackFromNBT((NBTTagCompound) itemStack.stackTagCompound.getTag("ItemStack")); boolean isInventory = type == ItemRenderType.INVENTORY; Tessellator tess = Tessellator.instance; FontRenderer fontRenderer = mc.fontRenderer; TextureManager textureManager = mc.getTextureManager(); GL11.glPushMatrix(); Item item = thisStack.getItem(); Block block = Block.getBlockFromItem(item); if (thisStack != null && block != null && block.getRenderBlockPass() != 0) { GL11.glEnable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_CULL_FACE); OpenGlHelper.glBlendFunc(770, 771, 1, 0); } IItemRenderer storedRenderer = MinecraftForgeClient.getItemRenderer(thisStack, type); //======Handles Special Blocks and Items====== if (storedRenderer != null) { storedRenderer.renderItem(type, thisStack, data); } else { if (thisStack.getItemSpriteNumber() == 0 && item instanceof ItemBlock && RenderBlocks.renderItemIn3d(block.getRenderType())) { //=====Handles regular blocks====== textureManager.bindTexture(textureManager.getResourceLocation(0)); switch (type) { case EQUIPPED_FIRST_PERSON: case EQUIPPED: case ENTITY: GL11.glTranslatef(0.5F, 0.5F, 0.5F); default: } if (thisStack != null && block != null && block.getRenderBlockPass() != 0) { GL11.glDepthMask(false); renderBlocksIr.renderBlockAsItem(block, thisStack.getItemDamage(), 1.0F); GL11.glDepthMask(true); } else { renderBlocksIr.renderBlockAsItem(block, thisStack.getItemDamage(), 1.0F); } } else { //=======Handles Regular Items====== if (isInventory) { renderItem.renderItemIntoGUI(fontRenderer, textureManager, thisStack, 0, 0); } else { GL11.glEnable(GL12.GL_RESCALE_NORMAL); switch (type) { case EQUIPPED_FIRST_PERSON: //TODO: get items to render in the right place GL11.glRotated(90F, 0F, 1F, 0F); GL11.glTranslatef(-1F, 0.5F, 0F); break; case EQUIPPED: GL11.glRotated(90F, 0F, 1F, 0F); GL11.glTranslatef(-1F, 0.5F, 0F); GL11.glRotated(90F, 1F, 0F, 0F); //GL11.glTranslatef(0, -4 / 16f, 0); break; case ENTITY: //GL11.glTranslatef(-0.5f, 0f, 1f / 16f); // correction of the rotation point when items lie on the ground default: } IIcon icon = thisStack.getIconIndex(); float xMax; float yMin; float xMin; float yMax; float depth = 1f / 16f; float width; float height; float xDiff; float yDiff; float xSub; float ySub; xMin = icon.getMinU(); xMax = icon.getMaxU(); yMin = icon.getMinV(); yMax = icon.getMaxV(); width = icon.getIconWidth(); height = icon.getIconHeight(); xDiff = xMin - xMax; yDiff = yMin - yMax; xSub = 0.5f * (xMax - xMin) / width; ySub = 0.5f * (yMax - yMin) / height; //=====Front and back===== tess.startDrawingQuads(); tess.setNormal(0, 0, 1); tess.addVertexWithUV(0, 0, 0, xMax, yMax); tess.addVertexWithUV(1, 0, 0, xMin, yMax); tess.addVertexWithUV(1, 1, 0, xMin, yMin); tess.addVertexWithUV(0, 1, 0, xMax, yMin); tess.draw(); tess.startDrawingQuads(); tess.setNormal(0, 0, -1); tess.addVertexWithUV(0, 1, -depth, xMax, yMin); tess.addVertexWithUV(1, 1, -depth, xMin, yMin); tess.addVertexWithUV(1, 0, -depth, xMin, yMax); tess.addVertexWithUV(0, 0, -depth, xMax, yMax); tess.draw(); // =========Sides============ tess.startDrawingQuads(); tess.setNormal(-1, 0, 0); float pos; float iconPos; float w = width, m = xMax, d = xDiff, s = xSub; for (int k = 0, e = (int) w; k < e; ++k) { pos = k / w; iconPos = m + d * pos - s; tess.addVertexWithUV(pos, 0, -depth, iconPos, yMax); tess.addVertexWithUV(pos, 0, 0, iconPos, yMax); tess.addVertexWithUV(pos, 1, 0, iconPos, yMin); tess.addVertexWithUV(pos, 1, -depth, iconPos, yMin); } tess.draw(); tess.startDrawingQuads(); tess.setNormal(1, 0, 0); float posEnd; w = width; m = xMax; d = xDiff; s = xSub; float d2 = 1f / w; for (int k = 0, e = (int) w; k < e; ++k) { pos = k / w; iconPos = m + d * pos - s; posEnd = pos + d2; tess.addVertexWithUV(posEnd, 1, -depth, iconPos, yMin); tess.addVertexWithUV(posEnd, 1, 0, iconPos, yMin); tess.addVertexWithUV(posEnd, 0, 0, iconPos, yMax); tess.addVertexWithUV(posEnd, 0, -depth, iconPos, yMax); } tess.draw(); tess.startDrawingQuads(); tess.setNormal(0, 1, 0); float h = height; m = yMax; d = yDiff; s = ySub; d2 = 1f / h; for (int k = 0, e = (int) h; k < e; ++k) { pos = k / h; iconPos = m + d * pos - s; posEnd = pos + d2; tess.addVertexWithUV(0, posEnd, 0, xMax, iconPos); tess.addVertexWithUV(1, posEnd, 0, xMin, iconPos); tess.addVertexWithUV(1, posEnd, -depth, xMin, iconPos); tess.addVertexWithUV(0, posEnd, -depth, xMax, iconPos); } tess.draw(); tess.startDrawingQuads(); tess.setNormal(0, -1, 0); h = height; m = yMax; d = yDiff; s = ySub; for (int k = 0, e = (int) h; k < e; ++k) { pos = k / h; iconPos = m + d * pos - s; tess.addVertexWithUV(1, pos, 0, xMin, iconPos); tess.addVertexWithUV(0, pos, 0, xMax, iconPos); tess.addVertexWithUV(0, pos, -depth, xMax, iconPos); tess.addVertexWithUV(1, pos, -depth, xMin, iconPos); } tess.draw(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); } } } if (thisStack != null && block != null && block.getRenderBlockPass() != 0) { GL11.glDisable(GL11.GL_BLEND); } GL11.glPopMatrix(); if (isInventory) { renderItem.renderItemIntoGUI(fontRenderer, textureManager, itemStack, 0, 0); //TODO: only renders on items, not blocks - fix } }