سؤال

ولقد بدأ البرمجة شادر (GLSL)، وأنشأ عدد قليل مع RenderMonkey. الآن أريد أن استخدام هذه شادرس في التعليمات البرمجية جافا بلدي. هل هناك أي أمثلة بسيطة من كيف أفعل ذلك؟

هل كانت مفيدة؟

المحلول

ولقد وجدت مثال بسيط جدا

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 والمشورة جافا على الموقع JavaGaming.org - أنا لم يكن هناك لبعض الوقت، ولكنه كان دائما مجتمع مفيدة ومعرفة.

والإصدار الجديد من Jogl يضيف باعتبارها أداة تظليل تحميل / جمع وإعداد الموحد / الحصول على المكالمات. إلقاء نظرة على في API عن اختيار الأساليب.

هل يمكن أن ننظر في ogre4j ، مجمع جافا / ميناء المصدر المفتوح شعبية <أ href = ل محرك "http://ogre3d.org/" يختلط = "نوفولو"> Ogre3D الرسومات. قد يكون ثقيل الوزن قليلا لاحتياجاتك، ولكن لمشروع 3D السليم، تستحق نظرة على وجه اليقين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top