MFF

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

    Modèle OBJ complétement sombre au rendu

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.15.2
    3 Messages 2 Publieurs 329 Vues 2 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.
    • TwiguinouT Hors-ligne
      Twiguinou
      dernière édition par

      Bonjour,
      je me suis récemment mis aux modèles .obj mais j’ai rencontré un problème quant au rendu, je n’arrive pas à comprendre si le problème pourrait venir du .mtl ou alors simplement du système que j’utilise pour afficher mes modèles.
      Voici ce que j’ai en jeu:
      2020-05-07_11.25.14.png
      Et voici mon code:

      package com.twiguinou.powersfa.client.registry;
      
      import com.mojang.blaze3d.matrix.MatrixStack;
      import com.mojang.blaze3d.vertex.IVertexBuilder;
      import com.twiguinou.powersfa.StringID;
      import com.twiguinou.powersfa.util.client.RendererUtil;
      import net.minecraft.client.renderer.Atlases;
      import net.minecraft.client.renderer.IRenderTypeBuffer;
      import net.minecraft.client.renderer.model.*;
      import net.minecraft.client.renderer.texture.NativeImage;
      import net.minecraft.client.renderer.texture.OverlayTexture;
      import net.minecraft.client.renderer.texture.TextureAtlasSprite;
      import net.minecraft.client.resources.data.AnimationMetadataSection;
      import net.minecraft.util.ResourceLocation;
      import net.minecraftforge.api.distmarker.Dist;
      import net.minecraftforge.api.distmarker.OnlyIn;
      import net.minecraftforge.client.model.IModelConfiguration;
      import net.minecraftforge.client.model.ModelLoader;
      import net.minecraftforge.client.model.data.EmptyModelData;
      import net.minecraftforge.client.model.obj.OBJLoader;
      import net.minecraftforge.client.model.obj.OBJModel;
      
      import javax.annotation.Nullable;
      import java.util.Random;
      
      public class AssociativeOBJModel {
      
          private final ResourceLocation location;
      
          @OnlyIn(Dist.CLIENT)
          private final OBJModel objModel;
      
          public AssociativeOBJModel(String label) {
              this.location = new ResourceLocation(StringID.ID, "models/customs/obj/" + label);
              this.objModel = OBJLoader.INSTANCE.loadModel(new OBJModel.ModelSettings(this.location, false, true, true, true, null));
          }
      
          @OnlyIn(Dist.CLIENT)
          public void render(MatrixStack matrix, IRenderTypeBuffer buffer, int light) {
              matrix.push();
              IBakedModel bakedModel = this.objModel.bake(new OBJModelConfiguration(this.location), ModelLoader.instance(), (material) -> new DummySprite(), ModelRotation.X0_Y0, null, this.location);
              IVertexBuilder builder = buffer.getBuffer(Atlases.getSolidBlockType());
              for(BakedQuad quad : bakedModel.getQuads(null, null, new Random(), EmptyModelData.INSTANCE)) {
                  float[] colors = RendererUtil.decode(quad.getTintIndex());
                  builder.addVertexData(matrix.getLast(), quad, colors[0], colors[1], colors[2], colors[3], light, OverlayTexture.NO_OVERLAY, true);
              }
              matrix.pop();
          }
      
          private static class DummySprite extends TextureAtlasSprite {
              protected DummySprite() {
                  super(null, new Info(OBJModelConfiguration.TEXTURE, 1, 1, AnimationMetadataSection.EMPTY), 0, 1, 1, 0, 0, new NativeImage(1, 1, false));
              }
              @Override
              public float getInterpolatedU(double u) {
                  return (float) u / 16;
              }
              @Override
              public float getInterpolatedV(double v) {
                  return (float) v / 16;
              }
          }
      
          private static class OBJModelConfiguration implements IModelConfiguration {
              private static final ResourceLocation TEXTURE = new ResourceLocation(StringID.ID, "dummy");
              private final ResourceLocation modelLocation;
              public OBJModelConfiguration(ResourceLocation location) {
                  this.modelLocation = location;
              }
              @Nullable
              @Override
              public IUnbakedModel getOwnerModel() {
                  return null;
              }
              @Override
              public String getModelName() {
                  return modelLocation.toString();
              }
              @Override
              public boolean isTexturePresent(String name) {
                  return false;
              }
              @Override
              public Material resolveTexture(String name) {
                  return new Material(TEXTURE, TEXTURE);
              }
              @Override
              public boolean isShadedInGui() {
                  return true;
              }
              @Override
              public boolean isSideLit() {
                  return true;
              }
              @Override
              public boolean useSmoothLighting() {
                  return true;
              }
              @Override
              public ItemCameraTransforms getCameraTransforms() {
                  return ItemCameraTransforms.DEFAULT;
              }
              @Override
              public IModelTransform getCombinedTransform() {
                  return ModelRotation.X0_Y0;
              }
          }
      
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • Benjamin LoisonB Hors-ligne
        Benjamin Loison
        dernière édition par

        Bonjour,

        Petite question que je trouve importante, le rendu est sombre (mais avec les bonnes textures) ou noir (parce qu’il semble l’être) ?

        >! Développeur de Altis-Life (Arma III) sur Minecraft !
        >! Site web     : https://lemnoslife.com

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

          Puisque il est complètement noir je ne peux pas trop déterminer si le rendu est trop sombre ou simplement dépourvu de couleur. En sachant que je n’ai pas de message d’erreur concernant l’accès à la texture que je veux appliquer.

          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