Résolu Problème texture sur une entité
-
Bonjour à tous, J’ai récemment créé un mob personnalisé auquel j’ai appliqué une texture ayant un effet de transparence, tout fonctionne correctement mais cependant la texture reste opaque. Y’aurai t’il une solution pour régler le problème
Merci d’avance pour vos éventuelles réponses.
-
Je sais pas si on peux mettre une texture avec de la transparence, a voir ce que les autres vont dire.
-
Le code de base des entités ne prend pas en compte la couche alpha, normalement il suffit de reprendre le code de mc et de remplacer le glColor3f par un glColor4f.
-
Merci pour la réponse mais je suis débutant et je n’ai pas bien compris. Pourrais-tu développer un petit peu plus s’il te plait =s.
-
Rajoute ce code dans la classe du rendu de ton mob :
protected void renderModel(EntityLivingBase p_77036_1_, float p_77036_2_, float p_77036_3_, float p_77036_4_, float p_77036_5_, float p_77036_6_, float p_77036_7_) { this.bindEntityTexture(p_77036_1_); if (!p_77036_1_.isInvisible()) { this.mainModel.render(p_77036_1_, p_77036_2_, p_77036_3_, p_77036_4_, p_77036_5_, p_77036_6_, p_77036_7_); } else if (!p_77036_1_.isInvisibleToPlayer(Minecraft.getMinecraft().thePlayer)) { GL11.glPushMatrix(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F); this.mainModel.render(p_77036_1_, p_77036_2_, p_77036_3_, p_77036_4_, p_77036_5_, p_77036_6_, p_77036_7_); GL11.glDisable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glPopMatrix(); GL11.glDepthMask(true); } else { this.mainModel.setRotationAngles(p_77036_2_, p_77036_3_, p_77036_4_, p_77036_5_, p_77036_6_, p_77036_7_, p_77036_1_); } }
-
Je ne comprend pas j’ai bien rajouté et remplacé ce que tu ma conseillé mais ceci ne fonctionne pas
public class Rendermoutoninvisible extends RenderLiving { public final ResourceLocation texture = new ResourceLocation("TutoMod:textures/entity/moutoninvisible.png"); public Rendermoutoninvisible(ModelBase par1ModelBase, float par2) { super(par1ModelBase, par2); } protected ResourceLocation getEntityTexture(Moutoninvisible mob) { return texture; } protected ResourceLocation getEntityTexture(Entity par1Entity) { return this.getEntityTexture((Moutoninvisible)par1Entity); } protected void renderModel(EntityLivingBase p_77036_1, float p_77036_2, float p_77036_3, float p_77036_4, float p_77036_5, float p_77036_6, float p_77036_7_) { this.bindEntityTexture(p_77036_1_); if (!p_77036_1_.isInvisible()) { this.mainModel.render(p_77036_1, p_77036_2, p_77036_3, p_77036_4, p_77036_5, p_77036_6, p_77036_7_); } else if (!p_77036_1_.isInvisibleToPlayer(Minecraft.getMinecraft().thePlayer)) { GL11.glPushMatrix(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F); this.mainModel.render(p_77036_1, p_77036_2, p_77036_3, p_77036_4, p_77036_5, p_77036_6, p_77036_7_); GL11.glDisable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glPopMatrix(); GL11.glDepthMask(true); } else { this.mainModel.setRotationAngles(p_77036_2, p_77036_3, p_77036_4, p_77036_5, p_77036_6, p_77036_7, p_77036_1_); } } }
-
Modifie peut être les deux
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
en
GL11.glAlphaFunc(GL11.GL_GREATER, 1.0F); -
Merci robin j’ai juste retiré les différentes conditions et gardé le code principal et sa marche parfaitement merci beaucoup pour ta réponse !!! :shy: