MFF

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

    Problème de lumière avec le système de rendu

    Planifier Épinglé Verrouillé Déplacé Résolu 1.15.x
    1.15.2
    2 Messages 1 Publieurs 267 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.
    • Z Hors-ligne
      Zeide
      dernière édition par

      Bonjour,

      Premièrement, voici la méthode que j’utilise pour faire le rendu d’un fluide :

          public static void renderFluid(IRenderTypeBuffer buffer, MatrixStack stack, Fluid fluid, float size, World world, BlockPos pos, int light) {
              ILightReader lightReader =  MinecraftForgeClient.getRegionRenderCache(world, pos);
      
              TextureAtlasSprite[] sprites = ForgeHooksClient.getFluidSprites(lightReader, pos, fluid.getDefaultState());
      
              TextureAtlasSprite sprite = sprites[0]; // Get first sprite
      
              IVertexBuilder builder = buffer.getBuffer(RenderType.getTranslucent());
      
              float[] color = getARGBFromInt(fluid.getFluid().getAttributes().getColor());
      
              float minU = sprite.getMinU();
              float maxU = sprite.getMaxU();
              float minV = sprite.getMinV();
              float maxV = sprite.getMaxV();
      
              float m = (1 - size) / 2;
      
              builder.pos(stack.getLast().getMatrix(), m, 0, 1 - m).color(color[1], color[2], color[3], color[0]).tex(minU, maxV).lightmap(light).normal(1, 0, 0).endVertex();
              builder.pos(stack.getLast().getMatrix(), 1 - m, 0, 1 - m).color(color[1], color[2], color[3], color[0]).tex(maxU, maxV).lightmap(light).normal(1, 0, 0).endVertex();
              builder.pos(stack.getLast().getMatrix(), 1 - m, 0, m).color(color[1], color[2], color[3], color[0]).tex(maxU, minV).lightmap(light).normal(1, 0, 0).endVertex();
              builder.pos(stack.getLast().getMatrix(), m, 0, m).color(color[1], color[2], color[3], color[0]).tex(minU, minV).lightmap(light).normal(1, 0, 0).endVertex();
          }
      

      Le rendu est propre mais la lumière est bizarre, lorsque je me déplace, la lumière change.
      J’ai tenté de hardcodé la valeur de builder#lightMap(int i) mais ca n’a l’air d’avoir aucun effet.
      Voici le problème en video :
      Vidéo

      De plus, avec du debug je n’ai constaté aucun changement dans les valeurs : color, et light, donc, le problème ne vient pas de la.

      Merci d’avoir lu.

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

        Résolu :

        Pour une raison obscure, c’était dû a un autre TileEntityRenderer.
        Je faisais le rendu d’un Item avec ItemRenderer#renderItem() et je faisais un RenderHelper.enableStandartItemLightning() avant et RenderHelper.disableStandartItemLightning() après.
        Et la cause était ces deux instructions.

        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