Программирование Jogl Shader - PullRequest
7 голосов
/ 09 января 2009

Я только начал программирование шейдеров (GLSL) и создал несколько с помощью RenderMonkey. Теперь я хочу использовать этот шейдер в своем коде Java. Есть ли простые примеры того, как я это делаю?

Ответы [ 4 ]

7 голосов
/ 13 февраля 2009

Я нашел очень простой пример

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 голосов
/ 26 сентября 2009

Новая версия Jogl добавляет в качестве утилиты шейдер загрузку / компиляцию и унифицированную настройку / получение вызовов. Посмотрите на API для выбора методов.

3 голосов
/ 09 января 2009

У меня ничего нет, но если у меня возникают проблемы в этом направлении, я часто нахожу лучшее место для 3D-программирования, а советы по Java заканчиваются на JavaGaming.org - у меня нет был там некоторое время, но это всегда было полезное и знающее сообщество.

0 голосов
/ 08 декабря 2011

Вы можете посмотреть на ogre4j , Java-оболочку / порт популярного графического движка Ogre3D с открытым исходным кодом Это может быть немного тяжелым для ваших нужд, но для правильного 3D проекта стоит посмотреть наверняка.

...