2009-01-09 8 views
7

Je viens de commencer la programmation Shader (GLSL) et j'en ai créé quelques-unes avec RenderMonkey. Maintenant, je veux utiliser ce Shaders dans mon code Java. Y a-t-il des exemples simples de comment je fais cela?Programmation Jogl Shader

Répondre

7

J'ai trouvé un exemple

int v = gl.glCreateShader(GL.GL_VERTEX_SHADER); 
int f = gl.glCreateShader(GL.GL_FRAGMENT_SHADER); 

BufferedReader brv = new BufferedReader(new FileReader("vertexshader.glsl")); 
String vsrc = ""; 
String line; 
while ((line=brv.readLine()) != null) { 
    vsrc += line + "\n"; 
} 
gl.glShaderSource(v, 1, vsrc, (int[])null); 
gl.glCompileShader(v); 

BufferedReader brf = new BufferedReader(new FileReader("fragmentshader.glsl")); 
String fsrc = ""; 
String line; 
while ((line=brf.readLine()) != null) { 
    fsrc += line + "\n"; 
} 
gl.glShaderSource(f, 1, fsrc, (int[])null); 
gl.glCompileShader(f); 

int shaderprogram = gl.glCreateProgram(); 
gl.glAttachShader(shaderprogram, v); 
gl.glAttachShader(shaderprogram, f); 
gl.glLinkProgram(shaderprogram); 
gl.glValidateProgram(shaderprogram); 

gl.glUseProgram(shaderprogram); 
3

Je n'en ai pas moi-même, mais si j'ai un problème dans ce sens j'ai souvent trouvé le meilleur endroit pour la programmation 3D et le conseil Java est terminé à JavaGaming.org - Je n'y suis pas allé depuis un moment, mais c'était toujours une communauté utile et bien informée.

3

très simple La nouvelle version de jogl ajoute comme une charge de shader Utilitaire/compilation et le réglage uniforme/recevoir des appels. Jetez un oeil à la API pour la sélection des méthodes.

+0

Le lien ne fonctionne plus – thecoshman

0

Vous pouvez regarder ogre4j, un wrapper Java/port du populaire moteur graphique open source Ogre3D. Il pourrait être un peu lourd pour vos besoins, mais pour un bon projet 3D, vaut le détour.

Questions connexes