Posted August 15, 201411 yr I've made an item render as a custom 3D model, the problem is that I can see two of the same model (or a part of it) in third person. Here's what I see: This only happens when I'm in third person: [/img] Here is the rendering code: package com.natin.borderlands2mod.entities.render; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainerCreative; import net.minecraft.client.gui.inventory.GuiInventory; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import com.natin.borderlands2mod.guns.models.RocketLauncherModel; public class RenderRocketLauncher implements IItemRenderer { //public static final ResourceLocation Texture = new ResourceLocation(BattleOfTheBeastsMod.modid, "/textures/entity/RocketLauncher.png"); protected RocketLauncherModel rocketlaunchermodel; public RenderRocketLauncher() { rocketlaunchermodel = new RocketLauncherModel(); } // protected ResourceLocation func_110832_a(RocketLauncherModel par1EntitySpiderQueen) //{ // return Texture; //} @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { switch(type) { case EQUIPPED: return true; case EQUIPPED_FIRST_PERSON: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } public EnumAction EQUIPPED(ItemStack par1ItemStack) { return EnumAction.bow; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { switch(type) { case EQUIPPED: { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("borderlands2mod", "textures/models/RocketLauncher.png")); //ResourceLocation Texture = new ResourceLocation(BattleOfTheBeastsMod.modid, "/textures/entity/RocketLauncher.png"); boolean isFirstPerson = false; if(data[1] != null && data[1] instanceof EntityPlayer) { if(!((EntityPlayer)data[1] == Minecraft.getMinecraft().renderViewEntity && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && !((Minecraft.getMinecraft().currentScreen instanceof GuiInventory || Minecraft.getMinecraft().currentScreen instanceof GuiContainerCreative) && RenderManager.instance.playerViewY == 180.0F))) { isFirstPerson = false; GL11.glTranslatef(0.4F, 0.5F, 0.08F); //position GL11.glRotatef(-26F, 1.0F, 0.0F, 0.0F); //X GL11.glRotatef(165F, 0.0F, 1.0F, 0.0F); //y GL11.glRotatef(140F, 1.0F, 0.0F, 1.0F); //z //Size rocketlaunchermodel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.07F); } } } case EQUIPPED_FIRST_PERSON: { GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("borderlands2mod", "textures/models/RocketLauncher.png")); //ResourceLocation Texture = new ResourceLocation(BattleOfTheBeastsMod.modid, "/textures/entity/RocketLauncher.png"); boolean isFirstPerson = true; if(data[1] != null && data[1] instanceof EntityPlayer) { if(!((EntityPlayer)data[1] == Minecraft.getMinecraft().renderViewEntity && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && !((Minecraft.getMinecraft().currentScreen instanceof GuiInventory || Minecraft.getMinecraft().currentScreen instanceof GuiContainerCreative) && RenderManager.instance.playerViewY == 0.0F))) isFirstPerson = true; GL11.glTranslatef(0.5F, 0.8F, 0.1F); //position GL11.glRotatef(-10F, 1.0F, 0.0F, 0.0F); //X GL11.glRotatef(165F, 0.0F, 1.0F, 0.0F); //y GL11.glRotatef(160F, 1.0F, 0.0F, 1.0F); //z //Size rocketlaunchermodel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.07F); } } GL11.glPopMatrix(); default: break; } } } Also in the console, this message is spammed repeatedly when I go into third person: [13:51:44] [Client thread/ERROR]: ########## GL ERROR ########## [13:51:44] [Client thread/ERROR]: @ Post render [13:51:44] [Client thread/ERROR]: 1283: Stack overflow
August 15, 201411 yr You rendering code is doing too many glPushMatrix calls without glPopMatrix matching calls. -S- (if I helped, please click Thank and applaud) http://6upnqa.dm2301.livefilestore.com/y2mtf-vG7Tqq1TiiVpIm53KWj7294NDPoHfSHHb4PzZiMAUfRCfK0UY0MwOu7Q3zTBNVTKqWjr2-xgBfFRpQT5p-QivtvknPpoABMNUw9br9WuZcBFkjePhnAbW500gVm-P/sequiturian.png[/img]
August 15, 201411 yr Author I added an extra PushMatrix, but that still doesn't change the fact that it still renders two of the same model?
August 16, 201411 yr Nope. But the stack overflow is what I was referring to. -S- (if I helped, please click Thank and applaud) http://6upnqa.dm2301.livefilestore.com/y2mtf-vG7Tqq1TiiVpIm53KWj7294NDPoHfSHHb4PzZiMAUfRCfK0UY0MwOu7Q3zTBNVTKqWjr2-xgBfFRpQT5p-QivtvknPpoABMNUw9br9WuZcBFkjePhnAbW500gVm-P/sequiturian.png[/img]
August 16, 201411 yr Author That actually fixed third person from the back, I still see two models when I'm in the front view third person. I can't seem what's causing the problem...
August 16, 201411 yr Oh, I should have said, I'd love to help you more, but two things: I am very unfamiliar with rendering issues as I haven't done anything with Render handlers; and I really cannot see anything given how dark your image is. -S- (if I helped, please click Thank and applaud) http://6upnqa.dm2301.livefilestore.com/y2mtf-vG7Tqq1TiiVpIm53KWj7294NDPoHfSHHb4PzZiMAUfRCfK0UY0MwOu7Q3zTBNVTKqWjr2-xgBfFRpQT5p-QivtvknPpoABMNUw9br9WuZcBFkjePhnAbW500gVm-P/sequiturian.png[/img]
August 17, 201411 yr You have forgotten a break; in your switch so it is falling through from EQUIPPED into EQUIPPED_FIRST_PERSON -TGG
August 17, 201411 yr You have forgotten a break; in your switch so it is falling through from EQUIPPED into EQUIPPED_FIRST_PERSON -TGG Good catch. Now, if the code had been formatted in a reasonable manner, I would have seen that right away. (I get blind in my old age 8-) -S- (if I helped, please click Thank and applaud) http://6upnqa.dm2301.livefilestore.com/y2mtf-vG7Tqq1TiiVpIm53KWj7294NDPoHfSHHb4PzZiMAUfRCfK0UY0MwOu7Q3zTBNVTKqWjr2-xgBfFRpQT5p-QivtvknPpoABMNUw9br9WuZcBFkjePhnAbW500gVm-P/sequiturian.png[/img]
August 17, 201411 yr Well it helps too that I have been coding C++ for quite a while and made that mistake myself probably a couple of dozen times over the years -TGG
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.