En fait c’est pas trop au point pour le moment, j’ai juste doublé l’image et fait un translate gl11
Voici ma classe sword3D:
| |
| package com.yvelis.m3dmodels.common; |
| |
| import org.lwjgl.opengl.GL11; |
| |
| import net.minecraft.client.Minecraft; |
| import net.minecraft.client.renderer.ItemRenderer; |
| import net.minecraft.item.ItemStack; |
| import net.minecraft.util.ResourceLocation; |
| import net.minecraftforge.client.IItemRenderer; |
| import net.minecraftforge.client.model.AdvancedModelLoader; |
| import net.minecraftforge.client.model.IModelCustom; |
| |
| public class Sword3D implements IItemRenderer { |
| |
| private IModelCustom model3D = AdvancedModelLoader.loadModel("/assets/m3dmodels/models/weapon/weapon.obj"); |
| private ResourceLocation texture = new ResourceLocation("m3dmodels:models/weapon/image.png"); |
| |
| @Override |
| public boolean handleRenderType(ItemStack item, ItemRenderType type) { |
| return true; |
| } |
| |
| @Override |
| public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { |
| return false; |
| } |
| |
| @Override |
| public void renderItem(ItemRenderType type, ItemStack item, Object… data) { |
| |
| if(type.equals(ItemRenderType.EQUIPPED)) |
| { |
| GL11.glPushMatrix(); |
| GL11.glScalef(2.0F, 2.0F, 2.0F); |
| GL11.glRotatef(-60.0F, 1.0F, 0.0F, 0.0F); |
| GL11.glRotatef(17.0F, 0.0F, 0.0F, 1.0F); |
| GL11.glTranslatef(0.20F, -0.035F, 0.25F); |
| Minecraft.getMinecraft().renderEngine.bindTexture(texture); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| |
| GL11.glPushMatrix(); |
| GL11.glScalef(2.0F, 2.0F, 2.0F); |
| GL11.glRotatef(-60.0F, 1.0F, 0.0F, 0.0F); |
| GL11.glRotatef(17.0F, 0.0F, 0.0F, 1.0F); |
| GL11.glTranslatef(0.95F, -0.035F, 0.25F); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| } |
| else if (type.equals(ItemRenderType.EQUIPPED_FIRST_PERSON) ) |
| { |
| GL11.glPushMatrix(); |
| Minecraft.getMinecraft().renderEngine.bindTexture(texture); |
| GL11.glTranslatef(2.0F, -0.5f, 2.0f); |
| GL11.glScalef(5.0F, 5.0F, 5.0F); |
| GL11.glRotatef(70.0F, 0.0F, 1.0F, 0.0F); |
| GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| |
| GL11.glPushMatrix(); |
| GL11.glTranslatef(2.0F, -0.5f, -3.4f); |
| GL11.glScalef(5.0F, 5.0F, 5.0F); |
| GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); |
| GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| } |
| else if (type.equals(ItemRenderType.ENTITY) ) |
| { |
| GL11.glPushMatrix(); |
| Minecraft.getMinecraft().renderEngine.bindTexture(texture); |
| GL11.glScalef(0.6F, 0.6F, 0.6F); |
| GL11.glTranslated(0.0, 0.17, 0.0); |
| GL11.glRotated(90, 0, 1, 0); |
| GL11.glRotated(-90, 1, 0, 0); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| |
| GL11.glPushMatrix(); |
| GL11.glScalef(0.6F, 0.6F, 0.6F); |
| GL11.glTranslated(-0.2, 0.2, 0.08); |
| GL11.glRotated(90, 0, 1, 0); |
| GL11.glRotated(-45, 1, 0, 0); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| } |
| else |
| { |
| GL11.glPushMatrix(); |
| Minecraft.getMinecraft().renderEngine.bindTexture(texture); |
| GL11.glScalef(8.8F, 8.8F, 8.8F); |
| GL11.glTranslated(1.3, 0.9, 0); |
| GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); |
| GL11.glRotated(220, 1, 0, 0); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| |
| GL11.glPushMatrix(); |
| GL11.glScalef(8.8F, 8.8F, 8.8F); |
| GL11.glTranslated(1.25, 0.5, 0); |
| GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); |
| GL11.glRotated(220, 1, 0, 0); |
| model3D.renderAll(); |
| GL11.glPopMatrix(); |
| } |
| |
| } |
| } |
| |