代码之家  ›  专栏  ›  技术社区  ›  Alexander Stolz

Jogl明暗器编程

  •  7
  • Alexander Stolz  · 技术社区  · 16 年前

    我刚开始了明暗器编程(GLSL),用renderMonkey创建了一些。现在我想在我的Java代码中使用这个着色器。有没有简单的例子说明我是怎么做到的?

    4 回复  |  直到 12 年前
        1
  •  7
  •   Alexander Stolz    16 年前

    我找到了一个非常简单的例子

    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); 
    
        2
  •  3
  •   glenatron    16 年前

    我自己没有,但是如果我在这些问题上有问题,我经常发现3D编程最好的地方,Java的建议已经结束了。 JavaGaming.org -我有一段时间没去过那里,但它一直是一个有帮助和知识渊博的社区。

        3
  •  3
  •   Max    12 年前

    新版本的jogl添加了一个实用程序明暗器加载/编译和统一设置/获取调用。看看 API 用于选择方法。

        4
  •  0
  •   Mr. Boy    13 年前

    你可以看看 ogre4j 一个流行的开源的Java包装器/端口 Ogre3D 图形引擎。它可能有点重,为您的需要,但为一个适当的三维项目,值得一看肯定。