Pregunta

Acabo de comenzar la programación de Shader (GLSL) y creé algunas con RenderMonkey. Ahora quiero usar este Shaders en mi código java. ¿Hay ejemplos simples de cómo hago eso?

¿Fue útil?

Solución

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); 

Otros consejos

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

La nueva versión de Jogl se agrega como un sombreador de utilidades que carga / compila y configura uniforme / recibe llamadas. Eche un vistazo a API para la selección de métodos.

Podría mirar ogre4j , un contenedor / puerto Java del popular código abierto motor gráfico Ogre3D . Puede ser un poco pesado para sus necesidades, pero para un proyecto 3D adecuado, vale la pena echarle un vistazo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top