2009-01-09 14 views
7

मैंने अभी शेडर प्रोग्रामिंग (जीएलएसएल) शुरू किया और कुछ प्रस्तुतकर्ता के साथ बनाया। अब मैं अपने जावा कोड में इस शेडर्स का उपयोग करना चाहता हूं। क्या मैं ऐसा करने के बारे में कोई सरल उदाहरण हैं?जोगल शेडर प्रोग्रामिंग

उत्तर

7

मैं एक बहुत ही सरल उदाहरण

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

मेरे पास कोई खुद नहीं है, लेकिन अगर मुझे इन पंक्तियों में कोई समस्या है तो मुझे अक्सर 3 डी प्रोग्रामिंग के लिए सबसे अच्छी जगह मिली है और जावा सलाह JavaGaming.org पर खत्म हो गई है - मैं थोड़ी देर के लिए नहीं रहा हूं, लेकिन यह हमेशा एक सहायक और जानकार समुदाय था।

3

Jogl का नया संस्करण एक उपयोगिता शेडर लदान/संकलन और वर्दी की स्थापना/कॉल प्राप्त करने के रूप में कहते हैं मिल गया है। विधियों के चयन के लिए API पर एक नज़र डालें।

+0

लिंक अब काम नहीं करता है – thecoshman

0

आप लोकप्रिय खुले स्रोत Ogre3D ग्राफिक्स इंजन के जावा रैपर/पोर्ट पर ogre4j देख सकते हैं। यह आपकी आवश्यकताओं के लिए थोड़ा भारी वजन हो सकता है, लेकिन एक उचित 3 डी परियोजना के लिए, निश्चित रूप से देखने के लायक है।