2009-01-09 20 views
7

Tôi vừa bắt đầu lập trình Shader (GLSL) và tạo một vài chương trình với RenderMonkey. Bây giờ tôi muốn sử dụng Shaders này trong mã java của tôi. Có bất kỳ ví dụ đơn giản nào về cách tôi làm điều đó không?Lập trình Jogl Shader

Trả lời

7

Tôi đã tìm thấy một ví dụ rất đơn giản

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

Tôi không có bất kỳ bản thân mình, nhưng nếu tôi gặp vấn đề dọc theo những dòng này, tôi thường tìm thấy nơi tốt nhất để lập trình 3D và tư vấn Java qua số JavaGaming.org - Tôi không ở đó một lúc, nhưng nó luôn là một cộng đồng hữu ích và thông thái.

3

Phiên bản mới của JOGL thêm như một tiện ích shader tải/biên dịch và thiết lập Uniform/nhận cuộc gọi. Hãy xem API để chọn phương pháp.

+0

Liên kết không còn hoạt động – thecoshman

0

Bạn có thể xem ogre4j, trình bao bọc Java/cổng của công cụ đồ họa mã nguồn mở phổ biến mã nguồn mở Ogre3D. Nó có thể là một chút trọng lượng nặng cho nhu cầu của bạn, nhưng đối với một dự án 3D phù hợp, đáng để xem xét chắc chắn.

Các vấn đề liên quan