JLSL
-
#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!
-
C’est trop cool !!! (réaction de fanboy :p) Non sérieux GG xavpok tu m’étonnes de plus en plus
-
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.