I’m trying to implement the shaders of this tutorial, but all I get is a black screen. With my old shaders everything is rendering. Could someone give me some advise how to implement it?
I tried adding lights, but that made no difference:
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
// Light model parameters:
// -------------------------------------------
FloatBuffer lmKa = BufferUtil.asFloatBuffer(0.0f, 0.0f, 0.0f, 0.0f);
lmKa.flip();
glLightModel(GL_LIGHT_MODEL_AMBIENT, lmKa);
glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f);
glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 0.0f);
// -------------------------------------------
// Spotlight Attenuation
FloatBuffer spot_direction = BufferUtil.asFloatBuffer(1.0f, -1.0f, -1.0f, 0f);
spot_direction.flip();
int spot_exponent = 30;
int spot_cutoff = 180;
glLight(GL_LIGHT0, GL_SPOT_DIRECTION, spot_direction);
glLighti(GL_LIGHT0, GL_SPOT_EXPONENT, spot_exponent);
glLighti(GL_LIGHT0, GL_SPOT_CUTOFF, spot_cutoff);
float Kc = 1.0f;
float Kl = 0.0f;
float Kq = 0.0f;
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION,Kc);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, Kl);
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, Kq);
// -------------------------------------------
// Lighting parameters:
FloatBuffer light_pos = BufferUtil.asFloatBuffer(0.0f, 5.0f, 5.0f, 1.0f);
FloatBuffer light_Ka = BufferUtil.asFloatBuffer(1.0f, 0.5f, 0.5f, 1.0f);
FloatBuffer light_Kd = BufferUtil.asFloatBuffer(1.0f, 0.1f, 0.1f, 1.0f);
FloatBuffer light_Ks = BufferUtil.asFloatBuffer(1.0f, 1.0f, 1.0f, 1.0f);
light_pos.flip();
light_Ka.flip();
light_Kd.flip();
light_Ks.flip();
glLight(GL_LIGHT0, GL_POSITION, light_pos);
glLight(GL_LIGHT0, GL_AMBIENT, light_Ka);
glLight(GL_LIGHT0, GL_DIFFUSE, light_Kd);
glLight(GL_LIGHT0, GL_SPECULAR, light_Ks);
// -------------------------------------------
// Material parameters:
FloatBuffer material_Ka = BufferUtil.asFloatBuffer(0.5f, 0.0f, 0.0f, 1.0f);
FloatBuffer material_Kd = BufferUtil.asFloatBuffer(0.4f, 0.4f, 0.5f, 1.0f);
FloatBuffer material_Ks = BufferUtil.asFloatBuffer(0.8f, 0.8f, 0.0f, 1.0f);
FloatBuffer material_Ke = BufferUtil.asFloatBuffer(0.1f, 0.0f, 0.0f, 0.0f);
material_Ka.flip();
material_Kd.flip();
material_Ks.flip();
material_Ke.flip();
float material_Se = 20.0f;
glMaterial(GL_FRONT_AND_BACK, GL_AMBIENT, material_Ka);
glMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE, material_Kd);
glMaterial(GL_FRONT_AND_BACK, GL_SPECULAR, material_Ks);
glMaterial(GL_FRONT_AND_BACK, GL_EMISSION, material_Ke);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, material_Se);