MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Entité avec rendu .obj

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    6 Messages 2 Publieurs 374 Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • FeedBackF Hors-ligne
      FeedBack
      dernière édition par

      Bonjour,
      on part sur un sujet assez peu documenté donc je suis au point mort.
      Je veux créer une entité avec un model en .obj (car ca donne un meilleur rendu et que j’en ai un a disposition assez bien fait)
      Problème, j’ai beau chercher, je ne trouve rien de concluant.
      On parle de wavefront parser, de IBakedModel etc mais je n’ai rien de concret.
      Si quelqu’un à une idée je suis preneur.
      Bonne journée

      FeedBackF 1 réponse Dernière réponse Répondre Citer 0
      • FeedBackF Hors-ligne
        FeedBack @FeedBack
        dernière édition par

        @FeedBack update :
        j’abandonne le .obj 😕
        Par contre, il faut que j’utilise le model d’un item pour une entity (un peu comme l’EntityItem)

        j’ai ce code mais bon je sais pas quoi prendre 😕

        public void doRender(EntityItem entity, double x, double y, double z, float entityYaw, float partialTicks)
            {
                ItemStack itemstack = entity.getItem();
                int i = itemstack.isEmpty() ? 187 : Item.getIdFromItem(itemstack.getItem()) + itemstack.getMetadata();
                this.random.setSeed((long)i);
                boolean flag = false;
        
                if (this.bindEntityTexture(entity))
                {
                    this.renderManager.renderEngine.getTexture(this.getEntityTexture(entity)).setBlurMipmap(false, false);
                    flag = true;
                }
        
                GlStateManager.enableRescaleNormal();
                GlStateManager.alphaFunc(516, 0.1F);
                GlStateManager.enableBlend();
                RenderHelper.enableStandardItemLighting();
                GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
                GlStateManager.pushMatrix();
                IBakedModel ibakedmodel = this.itemRenderer.getItemModelWithOverrides(itemstack, entity.world, (EntityLivingBase)null);
                int j = this.transformModelCount(entity, x, y, z, partialTicks, ibakedmodel);
                boolean flag1 = ibakedmodel.isGui3d();
        
                if (!flag1)
                {
                    float f3 = -0.0F * (float)(j - 1) * 0.5F;
                    float f4 = -0.0F * (float)(j - 1) * 0.5F;
                    float f5 = -0.09375F * (float)(j - 1) * 0.5F;
                    GlStateManager.translate(f3, f4, f5);
                }
        
                if (this.renderOutlines)
                {
                    GlStateManager.enableColorMaterial();
                    GlStateManager.enableOutlineMode(this.getTeamColor(entity));
                }
        
                for (int k = 0; k < j; ++k)
                {
                    if (flag1)
                    {
                        GlStateManager.pushMatrix();
        
                        if (k > 0)
                        {
                            float f7 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F;
                            float f9 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F;
                            float f6 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F;
                            GlStateManager.translate(shouldSpreadItems() ? f7 : 0, shouldSpreadItems() ? f9 : 0, f6);
                        }
        
                        IBakedModel transformedModel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(ibakedmodel, ItemCameraTransforms.TransformType.GROUND, false);
                        this.itemRenderer.renderItem(itemstack, transformedModel);
                        GlStateManager.popMatrix();
                    }
                    else
                    {
                        GlStateManager.pushMatrix();
        
                        if (k > 0)
                        {
                            float f8 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F;
                            float f10 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.15F * 0.5F;
                            GlStateManager.translate(f8, f10, 0.0F);
                        }
        
                        IBakedModel transformedModel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(ibakedmodel, ItemCameraTransforms.TransformType.GROUND, false);
                        this.itemRenderer.renderItem(itemstack, transformedModel);
                        GlStateManager.popMatrix();
                        GlStateManager.translate(0.0F, 0.0F, 0.09375F);
                    }
                }
        
                if (this.renderOutlines)
                {
                    GlStateManager.disableOutlineMode();
                    GlStateManager.disableColorMaterial();
                }
        
                GlStateManager.popMatrix();
                GlStateManager.disableRescaleNormal();
                GlStateManager.disableBlend();
                this.bindEntityTexture(entity);
        
                if (flag)
                {
                    this.renderManager.renderEngine.getTexture(this.getEntityTexture(entity)).restoreLastBlurMipmap();
                }
        
                super.doRender(entity, x, y, z, entityYaw, partialTicks);
            }
        
        FeedBackF 1 réponse Dernière réponse Répondre Citer 0
        • FeedBackF Hors-ligne
          FeedBack @FeedBack
          dernière édition par

          @FeedBack update :
          j’ai fait ca mais mon model se colle au joueur 😕

          @SideOnly(Side.CLIENT)
          public class RenderCar1 extends Render<EntityCar>
          {
          
              private static RenderItem renderItem;
          
              public RenderCar1(RenderManager renderManager)
              {
                  super(renderManager);
                  this.shadowSize = 1F;
                  this.shadowOpaque = 0.75F;
              }
          
              @Override
              protected ResourceLocation getEntityTexture(EntityCar entity)
              {
                  return TextureMap.LOCATION_BLOCKS_TEXTURE;
              }
          
              @Override
              public void doRender(EntityCar entity, double x, double y, double z, float entityYaw, float partialTicks)
              {
                  renderItem = Minecraft.getMinecraft().getRenderItem();
          
                  GlStateManager.enableRescaleNormal();
                  GlStateManager.alphaFunc(516, 0.1F);
                  GlStateManager.enableBlend();
                  RenderHelper.enableStandardItemLighting();
                  GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
                  GlStateManager.pushMatrix();
                  IBakedModel model = this.renderItem.getItemModelWithOverrides(new ItemStack(BlockInit.CAR_1), entity.world, entity);
                  IBakedModel transformedModel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(model, ItemCameraTransforms.TransformType.GROUND, false);
                  GlStateManager.enableColorMaterial();
                  GlStateManager.enableOutlineMode(this.getTeamColor(entity));
                  this.renderItem.renderItem(new ItemStack(BlockInit.CAR_1), transformedModel);
                  GlStateManager.disableRescaleNormal();
                  GlStateManager.disableBlend();
                  GlStateManager.popMatrix();
          
                  this.bindEntityTexture(entity);
                  this.renderManager.renderEngine.getTexture(this.getEntityTexture(entity)).restoreLastBlurMipmap();
          
                  super.doRender(entity, x, y, z, entityYaw, partialTicks);
              }
          
          }
          

          6ef7075c-2b70-483d-a213-6714f4df3d16-image.png

          FeedBackF 1 réponse Dernière réponse Répondre Citer 0
          • FeedBackF Hors-ligne
            FeedBack @FeedBack
            dernière édition par

            up svp

            1 réponse Dernière réponse Répondre Citer 0
            • LeBossMax2L Hors-ligne
              LeBossMax2
              dernière édition par

              Bonjour, j’arrive un peu tard, mais il me semble qu’il faut translate a la position x, y, z donné en paramètre pour afficher le modèle à la position de l’entité.

              FeedBackF 1 réponse Dernière réponse Répondre Citer 0
              • FeedBackF Hors-ligne
                FeedBack @LeBossMax2
                dernière édition par

                @LeBossMax2 merci mais quand je le fais j’obtiens un écran blanc 😕

                1 réponse Dernière réponse Répondre Citer 0
                • 1 / 1
                • Premier message
                  Dernier message
                Design by Woryk
                ContactMentions Légales

                MINECRAFT FORGE FRANCE © 2024

                Powered by NodeBB