• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    JLSL

    Vos autres créations
    2
    3
    2115
    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.
    • jglrxavpok
      jglrxavpok Modérateurs dernière édition par

      #Introduction(Introduction)
      Si vous avez suivi mon tuto sur OpenGL, dans la partie sur les shaders, je vous ai parlé de GLSL, le langage pour créer des shaders.
      Mais il faut apprendre un nouveau langage…

      #Présentation(Présentation)
      JLSL est une librairie (encore peu fournie/organisée) pour transformer du code Java tel que:

      package org.jglrxavpok.jlsl;
      
      import org.jglrxavpok.jlsl.JLSL.Extensions;
      import org.jglrxavpok.jlsl.JLSL.Uniform;
      
      @Extensions({"GL_ARB_explicit_uniform_location"})
      public class TestShader extends FragmentShader
      {
      
      @Uniform
      private Vec2 screenSize;
      
      public static final double PI = 3.141592653589793D;
      
      @Override
      public void main()
      {
      Vec4 v = new Vec4(gl_FragCoord.x/screenSize.x,gl_FragCoord.y/screenSize.y,gl_FragCoord.z,gl_FragCoord.w);
      gl_FragColor = v;
      }
      
      }
      
      

      Vers du GLSL:

      #version 120
      #extension GL_ARB_explicit_uniform_location : enable
      uniform vec2 screenSize;
      #define float PI = 3.141592653589793;
      
      void main()
      {
      vec4 v = vec4(gl_FragCoord.x/screenSize.x,gl_FragCoord.y/screenSize.y,gl_FragCoord.z,gl_FragCoord.w);
      gl_FragColor = v;
      }
      

      #Brève explication du fonctionnement(Brève explication du fonctionnement)
      J’utilise ASM pour récupérer le bytecode de la classe (la version compilée) et ensuite, selon ce bytecode qui est ensuite interprété je génère le code source avec la syntaxe et les caractèristiques de GLSL.

      La librairie n’est pas encore vraiment utilisable en tant que librairie, mais vous pouvez toujours proposer votre aide et/ou voir le code source sur GitHub: https://github.com/jglrxavpok/JLSL (nécessite ASM)

      Bref, j’espère qu’elle va plaira et n’hésitez pas à lâcher un commentaire!

      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
      • Überfap
        Überfap dernière édition par

        😮 C’est trop cool !!! (réaction de fanboy :p) Non sérieux GG xavpok tu m’étonnes de plus en plus 😛 😄

        Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
        Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

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

          J’ai des fanboys maintenant? :0 En avant pour la domination du monde!

          Plus serieusement, merci pour ta réponse. N hesite pas a l essayer et a me dire ce qui va pas 😉

          Écrit avec Tapatalk depuis mon mobile. Pardonnez les possibles fautes, j’aime juste pas écrire avec mon mobile.

          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 / 1
          • Premier message
            Dernier message
          Design by Woryk
          Contact / Mentions Légales

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB