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



  • 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.



  • 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.


Log in to reply