• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Model sombre sauf dans l'inventaire

    1.8.x
    1.8.9
    2
    7
    1801
    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.
    • LeBossMax2
      LeBossMax2 dernière édition par robin4002

      Salut à tous !

      J’ai récemment mis mon dernier sujet (https://www.minecraftforgefrance.fr/showthread.php?tid=3234) parlant notamment d’un model en résolu. Mais je me suis aperçu que lorsque mon l’item utilisant mon model custom était dans la main d’un joueur ou sur un item frame, la parti modifiée par le model était plus sombre que lorsque l’item est affiché dans un gui. (L’affichage dans les gui est bon, c’est l’affichage en dehors des gui qui n’est pas bon) Si quelqu’un a une idée pour éclaircir le model lorsqu’on l’a dans la main, je suis preneur !

      Pour information j’utilise un model avec ISmartItemModel et IPerspectiveAwareModel qui se basse sur un model vanilla en .json, j’utilise les évents TextureStitchEvent.Pre et ModelBakeEvent.

      Voici deux exemples pour illustrer cela (à gauche, dans un item frame, à droite dans un gui):

      0_1537628659526_2016-05-28_13.01.32++.png
      0_1537628664716_2016-05-28_13.02.13++.png

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

        Personne n’a d’idée ? Dites moi si il faut que j’envoie une de mes class.

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREX
          SCAREX dernière édition par

          Est-ce que tu as de la transparence ? Et essaie de placer l’item frame à différentes coordonnées pour voir s’il y a du changement

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

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

            Pour la transparence, je n’ai que des pixels transparents à 100 % ce n’ai pas un problème de position ou de direction de l’itemFrame puis que j’ai des itemFrames un peut partout et sa le faut aussi pour afficher l’item en 1° ou 3° personne (quand on l’a dans la main).

            1 réponse Dernière réponse Répondre Citer 0
            • SCAREX
              SCAREX dernière édition par

              Je suis désolé mais j’ai très peu de connaissances au niveau du rendu en 1.8 donc je peux pas t’aider plus que ça

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

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

                Toujours personne n’a d’idée ? Je ne m’y connais pas trop en model, donc il y a des chances que je me soit trompé quelque part.

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

                  J’ai trouvé une solution. Le problème, c’est que pour les éléments que j’ajoute au modèle, je n’indiquais pas quel étais le vecteur normal de cette élément donc comme la luminosité est calculée à partir de ce vecteur, elle ne peux pas être calculée correctement. Pour corriger ce problème, j’utilise un UnpackedBakedQuad (ça doit être aussi possible de la faire avec un BakedQuad normal, mais j’ai pas trouvé comment et les UnpackedBakedQuad sont plus pratiques). Voici la fonction que j’utilise pour ajouter un élément:

                  private static UnpackedBakedQuad putQuad(VertexFormat format, EnumFacing side, int color, float minX, float minY, float maxX, float maxY, float z, float minU, float minV, float maxU, float maxV)
                      {
                          UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format);
                          builder.setQuadTint(-1);
                          builder.setQuadOrientation(side);
                          builder.setQuadColored();
                  
                          putVertex(builder, format, side, minX, minY, z, minU, maxV, color);
                          putVertex(builder, format, side, minX, maxY, z, minU, minV, color);
                          putVertex(builder, format, side, maxX, maxY, z, maxU, minV, color);
                          putVertex(builder, format, side, maxX, minY, z, maxU, maxV, color);
                  
                          return builder.build();
                      }
                  
                      private static void putVertex(UnpackedBakedQuad.Builder builder, VertexFormat format, EnumFacing side, float x, float y, float z, float u, float v, int color)
                      {
                          for (int e = 0; e < format.getElementCount(); e++)
                          {
                              switch (format.getElement(e).getUsage())
                              {
                              case POSITION:
                                  builder.put(e, x, y, z, 1);
                                  break;
                              case COLOR:
                                  float r = ((color >> 16) & 0xFF) / 255f; // red
                                  float g = ((color >> 8) & 0xFF) / 255f; // green
                                  float b = ((color >> 0) & 0xFF) / 255f; // blue
                                  float a = ((color >> 24) & 0xFF) / 255f; // alpha
                                  builder.put(e, r, g, b, a);
                                  break;
                              case UV:
                                  if (format.getElement(e).getIndex() == 0)
                                  {
                                      builder.put(e, u, v, 0f, 1f);
                                      break;
                                  }
                              case NORMAL:
                                  builder.put(e, (float) side.getFrontOffsetX(), (float) side.getFrontOffsetY(), (float) side.getFrontOffsetZ(), 0f);
                                  break;
                              default:
                                  builder.put(e);
                                  break;
                              }
                          }
                      }
                  

                  Je passe donc se sujet en résolu même si ça fait plus d’un an ! 😄

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

                  MINECRAFT FORGE FRANCE © 2018

                  Powered by NodeBB