質問

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

役に立ちましたか?

解決

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

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

他のヒント

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

Joglの新しいバージョンは、ユーティリティシェーダーとしてロード/コンパイルおよび均一な設定/呼び出しを追加します。 API

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top