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.


  • Moddeurs confirmés Rédacteurs Administrateurs

    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.


  • Moddeurs confirmés Rédacteurs Administrateurs

    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_);
           }
       }
    }
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    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:


Log in to reply