MFF

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

    Rendu 3D translucide - Le retour

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    30 Messages 7 Publieurs 5.9k 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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      Essaie ça

      
      private void renderTileEntityPlasmaAt(TileEntityPlasma tile, double x, double y, double z, float partialRenderTick)
         {
            GL11.glPushMatrix();
            GL11.glEnable(GL11.GL_BLEND);
            glBlendFunc(GL_SRC_ALPHA, GL_ONE);
            glDisable(GL_ALPHA_TEST);
            glEnable(GL_CULL_FACE);
            glDepthMask(false);
            GL11.glTranslated(x + 0.5D, y + 0.15D, z + 0.5D);
            GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
            GL11.glRotatef((90F * tile.getDirection()) + 180F, 0.0F, 1.0F, 0.0F);
            GL11.glScaled(0.1, 0.1, 0.1);
            this.bindTexture(texture);
            model.renderAll();
            GL11.glDisable(GL11.GL_BLEND);
            glEnable(GL_ALPHA_TEST);
            glDisable(GL_CULL_FACE);
            glDepthMask(true);
            GL11.glPopMatrix();
         }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • FolganskyF Hors-ligne
        Folgansky Correcteurs
        dernière édition par

        ça me fait des erreurs sur les paramètres comme GL_SRC_ALPHA en demandant de créer les constant ou encore de créer la méthode glDepthMask

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

          Ah oups oublié le GL11 juste avant x)
          Essaie sinon de faire un import static org.lwjgl.opengl.GL11.*;

          Sa sera beaucoup + pratique que de devoir toujours réecrire à GL11 😃

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

            Rajoute GL11. devant ou importe toutes les fonctions (je te conseille la première méthode)

            EDIT : même chose que Plaigon

            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
            • FolganskyF Hors-ligne
              Folgansky Correcteurs
              dernière édition par

              J’ai toujours les soucis de paramètres, surement liés à l’import dont vous parlez pourtant je l’ai il me semble:

              package fr.folgansky.powerdeco.client;
              
              import org.lwjgl.opengl.GL11;      //en serait-ce un autre?
              
              import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
              import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
              import net.minecraft.tileentity.TileEntity;
              import net.minecraft.util.ResourceLocation;
              
              public class TileEntityPlasmaSpecialRenderer extends TileEntitySpecialRenderer
              {
                  public static ModelPlasma model = new ModelPlasma();
                  public static ResourceLocation texture = new ResourceLocation("ModPowerDeco:textures/models/blocks/Plasma.png");
              
                  public TileEntityPlasmaSpecialRenderer()
                  {
                      this.func_147497_a(TileEntityRendererDispatcher.instance);
                  }
              
                  @Override
                  public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float partialRenderTick)
                  {
                      this.renderTileEntityPlasmaAt((TileEntityPlasma) tile, x, y, z, partialRenderTick);
                  }
              
                  private void renderTileEntityPlasmaAt(TileEntityPlasma tile, double x, double y, double z, float partialRenderTick)
                  {
                      GL11.glPushMatrix();
                      GL11.glEnable(GL11.GL_BLEND);     //soucis paramètres
                      GL11.glBlendFunc(GL_SRC_ALPHA, GL_ONE);   //ici aussi
                      GL11.glDisable(GL_ALPHA_TEST);  //ici
                      GL11.glEnable(GL_CULL_FACE);   //ici aussi, enfin voilà le délire
                      GL11.glDepthMask(false);   //Plus de soucis ici
                      GL11.glTranslated(x + 0.5D, y + 0.15D, z + 0.5D);
                      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                      GL11.glRotatef((90F * tile.getDirection()) + 180F, 0.0F, 1.0F, 0.0F);
                      GL11.glScaled(0.1, 0.1, 0.1);
                      this.bindTexture(texture);
                      model.renderAll();
                      GL11.glDisable(GL11.GL_BLEND);
                      GL11.glEnable(GL_ALPHA_TEST);
                      GL11.glDisable(GL_CULL_FACE);
                      GL11.glDepthMask(true);    // soucis réglé aussi ici avec le "GL11."
                      GL11.glPopMatrix();
                  }
              }
              
              1 réponse Dernière réponse Répondre Citer 0
              • DeletedD Hors-ligne
                Deleted
                dernière édition par

                import STATIC
                http://patatos.over-blog.com/article-comment-faire-un-import-static-en-java-48226821.html

                Une fois fait tu pourras donc virer tous les GL11. Et comme ça t’auras appris une autre petite notion bien pratique en Java 😃

                1 réponse Dernière réponse Répondre Citer 0
                • FolganskyF Hors-ligne
                  Folgansky Correcteurs
                  dernière édition par

                  Ah ok, c’est noté oO

                  package fr.folgansky.powerdeco.client;
                  
                  import static org.lwjgl.opengl.GL11.*;
                  
                  import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
                  import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
                  import net.minecraft.tileentity.TileEntity;
                  import net.minecraft.util.ResourceLocation;
                  
                  public class TileEntityPlasmaSpecialRenderer extends TileEntitySpecialRenderer
                  {
                      public static ModelPlasma model = new ModelPlasma();
                      public static ResourceLocation texture = new ResourceLocation("ModPowerDeco:textures/models/blocks/Plasma.png");
                  
                      public TileEntityPlasmaSpecialRenderer()
                      {
                          this.func_147497_a(TileEntityRendererDispatcher.instance);
                      }
                  
                      @Override
                      public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float partialRenderTick)
                      {
                          this.renderTileEntityPlasmaAt((TileEntityPlasma) tile, x, y, z, partialRenderTick);
                      }
                  
                      private void renderTileEntityPlasmaAt(TileEntityPlasma tile, double x, double y, double z, float partialRenderTick)
                      {
                          glPushMatrix();
                          glEnable(GL_BLEND);
                          glBlendFunc(GL_SRC_ALPHA, GL_ONE);
                          glDisable(GL_ALPHA_TEST);
                          glEnable(GL_CULL_FACE);
                          glDepthMask(false);
                          glTranslated(x + 0.5D, y + 0.15D, z + 0.5D);
                          glRotatef(180F, 0.0F, 0.0F, 1.0F);
                          glRotatef((90F * tile.getDirection()) + 180F, 0.0F, 1.0F, 0.0F);
                          glScaled(0.1, 0.1, 0.1);
                          this.bindTexture(texture);
                          model.renderAll();
                          glDisable(GL_BLEND);
                          glEnable(GL_ALPHA_TEST);
                          glDisable(GL_CULL_FACE);
                          glDepthMask(true);
                          glPopMatrix();
                      }
                  }
                  

                  Résultat: Ultra surbrillance tout le temps. Au moins y’a eu un effet tangible pour le coup comparé à mes bidouillages inutiles x]
                  edit: (en gros comme dans le second screen)

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

                    Bon bah t’as essayé ce qu’avait dit @SCAREX ? Sinon faudra attendre le retour d’un pro, tel que @xavpok 😃

                    1 réponse Dernière réponse Répondre Citer 0
                    • FolganskyF Hors-ligne
                      Folgansky Correcteurs
                      dernière édition par

                      Je n’ai pas trouvé de choses qui ressemble à GLStateManager dans le focus sur GL11.

                      1 réponse Dernière réponse Répondre Citer 0
                      • jglrxavpokJ Hors-ligne
                        jglrxavpok Modérateurs
                        dernière édition par

                        Me voilà! Alors je regarderai plus en détails ce soir mais je peux déjà conseiller ceci:

                        glEnable (GL_BLEND);
                        glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
                        

                        au lieu de

                        glEnable (GL_BLEND);
                        glBlendFunc (GL_SRC_ALPHA, GL_ONE);
                        

                        (je fais ça de tête, je suis pas trop sûr de ce que je dis)

                        Modérateur sur MFF. 
                        Mon Github: http://github.com/jglrxavpok
                        Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                        1 réponse Dernière réponse Répondre Citer 0
                        • FolganskyF Hors-ligne
                          Folgansky Correcteurs
                          dernière édition par

                          Eh bien monsieur, de tête et de façon incertaine, tu as résolu mon problème de surbrillance

                          Petit comble maintenant je me souviens avoir vu cette ligne en faisant une recherche très rapide sur la transparence pour les rendus, mais c’était avant qu’on m’explique pour il n’était pas nécessaire de mettreGL.11 si y’a l’import static, bref

                          Merci =D

                          1 réponse Dernière réponse Répondre Citer 0
                          • FolganskyF Hors-ligne
                            Folgansky Correcteurs
                            dernière édition par



                            Je me suis réjouis assez vite, il reste des détails à régler x]

                            1 réponse Dernière réponse Répondre Citer 0
                            • jglrxavpokJ Hors-ligne
                              jglrxavpok Modérateurs
                              dernière édition par

                              Alors ça c’est plus compliqué, ça vient du fait que les vitres sont dessinées par dessus ton modèle. En théorie, il faudrait dessiner ta table après les vitres quand on regarde dans le sens de la dernière image et l’inverse en regardant par les vitres.
                              Je dois bien avouer que je ne pense pas qu’il soit possible de dire à Minecraft dans quel ordre dessiner les faces.

                              De plus, Minecraft a du mal avec les rendus translucides (exemples pris aujourd’hui sur la 1.7.10):


                              Youtube Video

                              Je te conseille de séparer ton modèle en deux: la partie opaque et la vitre, tu dessines le modèle de la table normalement puis celui de la vitre avec les options des réponses précédentes pour la transparence.

                              Modérateur sur MFF. 
                              Mon Github: http://github.com/jglrxavpok
                              Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                              1 réponse Dernière réponse Répondre Citer 1
                              • AmaA Hors-ligne
                                Ama
                                dernière édition par

                                Essaie avec ça, j’ai pas fais gaffe au précédents messages donc sorry si c’est du doublon:

                                
                                GL11.glPushMatrix();
                                GL11.glEnable(GL11.GL_NORMALIZE);  
                                GL11.glEnable(GL11.GL_BLEND);  
                                GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);  
                                GL11.glColor4f(0.75F, 0.75F, 0.75F, 0.25F);
                                
                                //Le rendu du model ici
                                
                                GL11.glDisable(GL11.GL_BLEND);
                                GL11.glPopMatrix();
                                
                                

                                Je te conseille aussi de passer en priorité si possible par des modèles “vanilla” et pas des tiles entity pour de si simple modèles, sans doute sans animations
                                Utilise donc Cubik de Sphax pour faire tes modèles 3D simple d’utilisation et complet, payant par contre (la version pro) sinon tu as le models creator de MrCrayfish 😉

                                Si je t'ai filé un coup de main n'oublie pas le + / -
                                Par contre évite les demandes d'aides en MP, tu sera sympa'

                                La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                                  Il peut pas il est en 1.7x

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • FolganskyF Hors-ligne
                                    Folgansky Correcteurs
                                    dernière édition par

                                    J’ai essayé plusieurs trucs

                                    Je fais deux rendu, en utilisant la technique d’Ama pour la partie en “verre”

                                    Le rendu

                                    private void renderTileEntityGlassTableAt(TileEntityGlassTable tile, double x, double y, double z, float partialRenderTick)
                                        {
                                            glPushMatrix();
                                            glEnable(GL_NORMALIZE);  
                                            glEnable(GL_BLEND);  
                                            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);   
                                            glColor4f(0.75F, 0.75F, 0.75F, 0.25F);
                                            glTranslated(x + 0.5D, y + 1.5D, z + 0.5D);
                                            glRotatef(180F, 0.0F, 0.0F, 1.0F);
                                            glRotatef((90F * tile.getDirection()) + 180F, 0.0F, 1.0F, 0.0F);
                                            this.bindTexture(texture);
                                            model.renderTop();   //Le plateau de verre
                                            glDisable(GL_BLEND);
                                            model.renderBase();  // Les pieds et le contour du plateau de la table
                                            glPopMatrix();
                                        }
                                    

                                    Deuxième méthode

                                    Le rendu

                                    glPushMatrix();
                                            glEnable(GL_BLEND);
                                            glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
                                            glDisable(GL_ALPHA_TEST);
                                            glEnable(GL_CULL_FACE);
                                            glDepthMask(false);   
                                            glColor4f(0.75F, 0.75F, 0.75F, 0.25F);
                                            glTranslated(x + 0.5D, y + 1.5D, z + 0.5D);
                                            glRotatef(180F, 0.0F, 0.0F, 1.0F);
                                            glRotatef((90F * tile.getDirection()) + 180F, 0.0F, 1.0F, 0.0F);
                                            this.bindTexture(texture);
                                            model.renderTop();   //Le plateau de verre
                                            glDisable(GL_BLEND);
                                            glEnable(GL_ALPHA_TEST);
                                            glDisable(GL_CULL_FACE);
                                            glDepthMask(true);
                                            model.renderBase();  // Les pieds et le contour du plateau de la table
                                            glPopMatrix();
                                    

                                    EDIT:

                                    Au final le deux me convient (je vais changer la couleur du verre) mais l’effet texturé n’y est pas du tout, on n’a pas du tout l’impression qu’il y ait un verre à la table. Du coup je pense que je vais faire une seconde texture par dessus celle du verre mais en terme de code je ne sais pas trop comment gérer et où bind la texture en fait

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

                                      Tu peux bind la texture où tu veux, avant le rendu du modèle correspondant.
                                      Tu peux aussi agrandir ton image et mettre ta texture de verre à côté de celle de la table, ensuite tu spécifie l’u et v (pos sur la texture) dans ton modèle, je pense que c’est moins lourd.

                                      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • FolganskyF Hors-ligne
                                        Folgansky Correcteurs
                                        dernière édition par

                                        Mon soucis c’est de bind deux textures différentes sur mon modèle

                                        Mes essais n’ont pas été conclus, en général ça ne prend en compte que la première texture bind

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

                                          Ça je ne pense pas que ce soit possible, mais sinon combiné juste les textures

                                          Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • jglrxavpokJ Hors-ligne
                                            jglrxavpok Modérateurs
                                            dernière édition par

                                            Pour utiliser deux textures, il faut couper en deux modèles complètement distincts et faire quelque comme ceci:

                                            utiliser texture1
                                            dessiner modele1
                                            
                                            utiliser texture2
                                            dessiner modele2
                                            

                                            Modérateur sur MFF. 
                                            Mon Github: http://github.com/jglrxavpok
                                            Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB