Posted July 14, 201411 yr Hi, The lighting on my custom rendered block is weird at a certain angle of view. It gets dark when I look up a bit. I made a short video where I show what happens. Does anyone have an idea about what goes wrong and/or how to solve it? Video: http://youtu.be/63D854gBDIM Version: 1.7.10 - 10.13.0.1180 Block: Material: Material.rock getRenderType() : -1 renderAsNormalBlock() : false isOpaqueCube() : false BlockBounds: - minX: O - minY: -2*O - minZ: O - maxX: I - maxY: O - maxZ: I Constants: O = 0.125 I = 1 - O U = -0.5 D = -0.25 Render code in my render class, extending TileEntitySpecialRenderer: public void renderTileEntityAt(TileEntity _tile, double x, double y, double z, float d) { GL11.glPushMatrix(); GL11.glTranslated(x, y + D, z); Tessellator t = Tessellator.instance; this.bindTexture(texture); t.startDrawing(GL11.GL_QUADS); // Top t.addVertexWithUV(O, U, O, 0, 0); t.addVertexWithUV(O, U, I, 0, 0.5); t.addVertexWithUV(I, U, I, 0.25, 0.5); t.addVertexWithUV(I, U, O, 0.25, 0); // Bottom t.addVertexWithUV(I, 0, O, 0.25, 0.5); t.addVertexWithUV(I, 0, I, 0.25, 1); t.addVertexWithUV(O, 0, I, 0, 1); t.addVertexWithUV(O, 0, O, 0, 0.5); // Side I t.addVertexWithUV(O, 0, O, 0.5, 0.5); t.addVertexWithUV(O, U, O, 0.5, 0.1875); t.addVertexWithUV(I, U, O, 0.75, 0.1875); t.addVertexWithUV(I, 0, O, 0.75, 0.5); // Side II t.addVertexWithUV(I, 0, I, 1, 0.5); t.addVertexWithUV(I, U, I, 1, 0.1875); t.addVertexWithUV(O, U, I, 0.75, 0.1875); t.addVertexWithUV(O, 0, I, 0.75, 0.5); // Side III t.addVertexWithUV(I, 0, O, 0.5, 1); t.addVertexWithUV(I, U, O, 0.5, 0.5 + 0.1875); t.addVertexWithUV(I, U, I, 0.75, 0.5 + 0.1875); t.addVertexWithUV(I, 0, I, 0.75, 1); // Side IIII t.addVertexWithUV(O, 0, I, 1, 1); t.addVertexWithUV(O, U, I, 1, 0.5 + 0.1875); t.addVertexWithUV(O, U, O, 0.75, 0.5 + 0.1875); t.addVertexWithUV(O, 0, O, 0.75, 1); t.draw(); GL11.glPopMatrix(); }
July 15, 201411 yr You can just call GL11.glDisable(GL11.GL_LIGHTING) before your rendering then GL11.glEnable(GL11.GL_LIGHTING), that will remove the lighting for you block.
July 15, 201411 yr Hi What is happening is that you're not properly setting up all the lighting for your block before rendering it. So it is being affected by the last object that was rendered. Look at a vanilla renderer to see what you're missing. Typically for TileEntityRenderers you just need GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); // full white or tessellator.setColorOpaque(1, 1, 1); You might also need RenderHelper.disableStandardItemLighting(); -TGG
July 15, 201411 yr Author GL11.glEnable(GL11.GL_LIGHTING) / disable & RenderHelper.disableStandardItemLighting(); Work both to solve this problem. Thank you!
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.