2009-01-09 33 views
7

Acabo de iniciar la programación Shader (GLSL) y he creado algunas con RenderMonkey. Ahora quiero usar este Shaders en mi código java. ¿Hay algún ejemplo simple de cómo lo hago?Programación de Jogl Shader

Respuesta

7

he encontrado un ejemplo muy simple

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

No tengo ninguno yo mismo, pero si tengo un problema en esta línea, a menudo he encontrado el mejor lugar para la programación en 3D y el asesoramiento de Java ha terminado en JavaGaming.org - No he estado allí por un tiempo, pero siempre fue una comunidad útil y conocedora.

3

La nueva versión de JOGL añade como una utilidad de shader de carga/compilación y configuración uniforme/recibir llamadas. Eche un vistazo a API para la selección de métodos.

+0

El enlace ya no funciona – thecoshman

0

Puede consultar ogre4j, un envoltorio/puerto Java del popular motor de código abierto Ogre3D. Puede ser un poco pesado para sus necesidades, pero para un proyecto en 3D adecuado, vale la pena buscarlo.