Résolu 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éoDe 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.