7

Shader プログラミング (GLSL) を始めたばかりで、RenderMonkey でいくつか作成しました。今、私は Java コードでこのシェーダーを使用したいと考えています。私がそれを行う方法の簡単な例はありますか?

4

4 に答える 4

8

非常に簡単な例を見つけました

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); 
于 2009-02-13T07:44:35.470 に答える
3

私自身は何も持っていませんが、これらの線に沿って問題が発生した場合、3D プログラミングに最適な場所を見つけることがよくあります。Java のアドバイスはJavaGaming.orgで終了しています。常に有益で知識豊富なコミュニティです。

于 2009-01-09T14:35:12.427 に答える
3

Jogl の新しいバージョンでは、ユーティリティ シェーダーの読み込み/コンパイルと、Uniform の設定/取得の呼び出しが追加されています。メソッドの選択については、 APIを参照してください。

于 2009-09-26T05:08:51.457 に答える
0

人気のあるオープンソースのOgre3Dグラフィック エンジンの Java ラッパー/ポートであるogre4jを見ることができます。必要に応じて少し重いかもしれませんが、適切な 3D プロジェクトの場合は、一見の価値があります。

于 2011-12-08T17:39:53.397 に答える