2009-01-09 16 views
7

Shader programlama (GLSL) programını başlattım ve RenderMonkey ile birkaç tane oluşturdum. Şimdi bu Shader'ları java kodumda kullanmak istiyorum. Bunu nasıl yaptığımın basit bir örneği var mı?Jogl Shader programlama

cevap

7

Ben JOGL yeni sürümü çağrıları almak bir Utility gölgelendirici yükleme/derleme ve Üniforma ayarı/olarak ekler

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

Kendim yok, ama bu satırlarda bir sorunum varsa 3D programlama için en iyi yeri buldum ve Java tavsiyesi JavaGaming.org adresinde sona erdi - bir süredir orada değildim ama her zaman yardımsever ve bilgili bir topluluktu.

3

çok basit bir örnek bulduk. Yöntem seçimi için API'a bakın.

+0

Bağlantı artık çalışmıyor – thecoshman

0

Popüler açık kaynak kodlu Ogre3D grafik altyapısının Java sarıcı/bağlantı noktasını ogre4j görüntüleyebilirsiniz. İhtiyaçlarınız için biraz ağır olabilir, ancak uygun bir 3D proje için kesin bir göz atmaya değer.