void Renderer::Init(){ glCullFace(GL_BACK); shader.init(); shader.loadShader(VSShaderLib::VERTEX_SHADER, "simple.vert"); shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "simple.frag"); shader.prepareProgram(); cout << shader.getAllInfoLogs() << "\n"; //SetUpLightning(); }
// -------------------------------------------------------- // // Shader Stuff // GLuint setupShaders() { //// Shader for fonts and models //shaders[0][0].init(); ///*shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag");*/ //shaders[0][0].loadShader( // VSShaderLib::VERTEX_SHADER, // "../shaders/light/direct/diffuse.vert.glsl") // ; //shaders[0][0].loadShader( // VSShaderLib::FRAGMENT_SHADER, // "../shaders/light/direct/diffuse.frag.glsl") // ; //// set semantics for the shader variables //shaders[0][0].setProgramOutput( 0 , "color" ); //shaders[0][0].setVertexAttribName( // VSShaderLib::VERTEX_COORD_ATTRIB, // "position") // ; ////shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); //shaders[0][0].setVertexAttribName( // VSShaderLib::NORMAL_ATTRIB, // "normal") // ; //shaders[0][0].prepareProgram(); //VSGLInfoLib::getProgramInfo(shaders[0][0].getProgramIndex()); //printf("%s\n", shaders[0][0].getAllInfoLogs().c_str()); //// uniforms ////float lpos[4] = { 1.0 , 0.0 , 1.0 , 0.0 }; ////shaders[0].setUniform( "lightPos" , lpos ); //{ // float ldir[3] = { 1.0 , 0.0 , 0.0 }; // float ldif[3] = { 1.0 , 0.0 , 0.0 }; // shaders[0][0].setUniform( "light_dir" , ldir ); // shaders[0][0].setUniform( "diffuse" , ldif ); //} //// shader#2 //// Shader for fonts and models //shaders[0][1].init(); ///*shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag");*/ //shaders[0][1].loadShader( // VSShaderLib::VERTEX_SHADER, // "../shaders/light/direct/difamb.vert.glsl") // ; //shaders[0][1].loadShader( // VSShaderLib::FRAGMENT_SHADER, // "../shaders/light/direct/difamb.frag.glsl") // ; //// set semantics for the shader variables //shaders[0][1].setProgramOutput( 0 , "color" ); //shaders[0][1].setVertexAttribName( // VSShaderLib::VERTEX_COORD_ATTRIB, // "position") // ; ////shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); //shaders[0][1].setVertexAttribName( // VSShaderLib::NORMAL_ATTRIB, // "normal") // ; //shaders[0][1].prepareProgram(); //VSGLInfoLib::getProgramInfo(shaders[0][1].getProgramIndex()); //printf("%s\n", shaders[0][1].getAllInfoLogs().c_str()); //// uniforms //{ // float ldir[3] = { 1.0f , 0.0f , 0.0f }; // float ldif[3] = { 1.0f , 0.0f , 0.0f }; // float lamb[3] = { 0.3f , 0.0f , 0.0f }; // shaders[0][1].setUniform( "light_dir" , ldir ); // shaders[0][1].setUniform( "diffuse" , ldif ); // shaders[0][1].setUniform( "ambient" , lamb ); //} // //// shader#3 //// Shader for fonts and models //shaders[0][2].init(); ///*shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag");*/ //shaders[0][2].loadShader( // VSShaderLib::VERTEX_SHADER, // "../shaders/light/direct/gouraud.vert.glsl") // ; //shaders[0][2].loadShader( // VSShaderLib::FRAGMENT_SHADER, // "../shaders/light/direct/gouraud.frag.glsl") // ; //// set semantics for the shader variables //shaders[0][2].setProgramOutput( 0 , "color" ); //shaders[0][2].setVertexAttribName( // VSShaderLib::VERTEX_COORD_ATTRIB, // "position") // ; ////shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); //shaders[0][2].setVertexAttribName( // VSShaderLib::NORMAL_ATTRIB, // "normal") // ; //shaders[0][2].prepareProgram(); //VSGLInfoLib::getProgramInfo(shaders[0][2].getProgramIndex()); //printf("%s\n", shaders[0][2].getAllInfoLogs().c_str()); //// uniforms //{ // float ldir[3] = { 1.0f , 0.0f , 0.0f }; // float ldif[3] = { 1.0f , 0.0f , 0.0f }; // float lamb[3] = { 0.3f , 0.0f , 0.0f }; // float lspc[3] = { 1.0f , 1.0f , 1.0f }; // shaders[0][2].setUniform( "light_dir" , ldir ); // shaders[0][2].setUniform( "diffuse" , ldif ); // shaders[0][2].setUniform( "ambient" , lamb ); // shaders[0][2].setUniform( "specular" , lspc ); // shaders[0][2].setUniform( "shininess" , 100.0f ); //} //// shader#4 //// Shader for fonts and models //shaders[0][3].init(); ///*shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag");*/ //shaders[0][3].loadShader( // VSShaderLib::VERTEX_SHADER, // "../shaders/light/direct/phong.vert.glsl") // ; //shaders[0][3].loadShader( // VSShaderLib::FRAGMENT_SHADER, // "../shaders/light/direct/phong.frag.glsl") // ; //// set semantics for the shader variables //shaders[0][3].setProgramOutput( 0 , "color" ); //shaders[0][3].setVertexAttribName( // VSShaderLib::VERTEX_COORD_ATTRIB, // "position") // ; ////shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); //shaders[0][3].setVertexAttribName( // VSShaderLib::NORMAL_ATTRIB, // "normal") // ; //shaders[0][3].prepareProgram(); //VSGLInfoLib::getProgramInfo(shaders[0][3].getProgramIndex()); //printf("%s\n", shaders[0][3].getAllInfoLogs().c_str()); //// uniforms //{ // float ldir[3] = { 1.0f , 0.0f , 0.0f }; // float ldif[3] = { 1.0f , 0.0f , 0.0f }; // float lamb[3] = { 0.3f , 0.0f , 0.0f }; // float lspc[3] = { 1.0f , 1.0f , 1.0f }; // shaders[0][3].setUniform( "light_dir" , ldir ); // shaders[0][3].setUniform( "diffuse" , ldif ); // shaders[0][3].setUniform( "ambient" , lamb ); // shaders[0][3].setUniform( "specular" , lspc ); // shaders[0][3].setUniform( "shininess" , 100.0f ); //} //// shader#5 //// Shader for fonts and models //shaders[1][3].init(); ///*shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag");*/ //shaders[1][3].loadShader( // VSShaderLib::VERTEX_SHADER, // "../shaders/light/point/phong.vert.glsl") // ; //shaders[1][3].loadShader( // VSShaderLib::FRAGMENT_SHADER, // "../shaders/light/point/phong.frag.glsl") // ; //// set semantics for the shader variables //shaders[1][3].setProgramOutput( 0 , "color" ); //shaders[1][3].setVertexAttribName( // VSShaderLib::VERTEX_COORD_ATTRIB, // "position") // ; ////shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); //shaders[1][3].setVertexAttribName( // VSShaderLib::NORMAL_ATTRIB, // "normal") // ; //shaders[1][3].prepareProgram(); //VSGLInfoLib::getProgramInfo(shaders[1][3].getProgramIndex()); //printf("%s\n", shaders[1][3].getAllInfoLogs().c_str()); //// uniforms //{ // float lpos[4] = { 30.0 , 5.0 , 0.0 , 1.0 }; // float ldif[3] = { 1.0 , 0.0 , 0.0 }; // //float lamb[3] = { 0.3 , 0.0 , 0.0 }; // float lspc[3] = { 1.0 , 1.0 , 1.0 }; // shaders[1][3].setUniform( "lightPosition" , lpos ); // shaders[1][3].setUniform( "diffuse" , ldif ); // //shaders[1][3].setUniform( "ambient" , lamb ); // shaders[1][3].setUniform( "specular" , lspc ); // shaders[1][3].setUniform( "shininess" , 100.0f ); //} //// shader#6 //// Shader for fonts and models //shaders[2][3].init(); ///*shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag");*/ //shaders[2][3].loadShader( // VSShaderLib::VERTEX_SHADER, // "../shaders/light/spot/phong.vert.glsl") // ; //shaders[2][3].loadShader( // VSShaderLib::FRAGMENT_SHADER, // "../shaders/light/spot/phong.frag.glsl") // ; //// set semantics for the shader variables //shaders[2][3].setProgramOutput( 0 , "color" ); //shaders[2][3].setVertexAttribName( // VSShaderLib::VERTEX_COORD_ATTRIB, // "position") // ; ////shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); //shaders[2][3].setVertexAttribName( // VSShaderLib::NORMAL_ATTRIB, // "normal") // ; //shaders[2][3].prepareProgram(); //VSGLInfoLib::getProgramInfo(shaders[2][3].getProgramIndex()); //printf("%s\n", shaders[2][3].getAllInfoLogs().c_str()); //// uniforms //{ // float spos[4] = { 0.0 , 1.0 , 0.0 , 1.0 }; // float sdir[3] = { 1.0 , -1.0 , 0.0 }; // float ldif[3] = { 1.0 , 0.0 , 0.0 }; // //float lamb[3] = { 0.3 , 0.0 , 0.0 }; // float lspc[3] = { 1.0 , 1.0 , 1.0 }; // shaders[2][3].setUniform( "spotPosition" , spos ); // shaders[2][3].setUniform( "spotDirection" , sdir ); // shaders[2][3].setUniform( "spotLimitAngle" , blaf::deg2rad(7.5f) ); // shaders[2][3].setUniform( "diffuse" , ldif ); // //shaders[1][3].setUniform( "ambient" , lamb ); // shaders[2][3].setUniform( "specular" , lspc ); // shaders[2][3].setUniform( "shininess" , 100.0f ); //} /* // player shader#1 // Shader for fonts and models player.shaders[0].init(); //shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag"); player.shaders[0].loadShader( VSShaderLib::VERTEX_SHADER, "../shaders/light/direct/phong.vert.glsl") ; player.shaders[0].loadShader( VSShaderLib::FRAGMENT_SHADER, "../shaders/light/direct/phong.frag.glsl") ; // set semantics for the shader variables player.shaders[0].setProgramOutput( 0 , "color" ); player.shaders[0].setVertexAttribName( VSShaderLib::VERTEX_COORD_ATTRIB, "position") ; //shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); player.shaders[0].setVertexAttribName( VSShaderLib::NORMAL_ATTRIB, "normal") ; player.shaders[0].prepareProgram(); VSGLInfoLib::getProgramInfo(player.shaders[0].getProgramIndex()); printf("%s\n", player.shaders[0].getAllInfoLogs().c_str()); // uniforms { float ldir[3] = { 1.0 , 0.0 , 0.0 }; float ldif[3] = { 0.0 , 1.0 , 0.0 }; //float lamb[3] = { 0.3 , 0.0 , 0.0 }; float lspc[3] = { 1.0 , 1.0 , 1.0 }; player.shaders[0].setUniform( "light_dir" , ldir ); player.shaders[0].setUniform( "diffuse" , ldif ); //shaders[0][3].setUniform( "ambient" , lamb ); player.shaders[0].setUniform( "specular" , lspc ); player.shaders[0].setUniform( "shininess" , 100.0f ); } // player shader#2 // Shader for fonts and models player.shaders[1].init(); //shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag"); player.shaders[1].loadShader( VSShaderLib::VERTEX_SHADER, "../shaders/light/point/phong.vert.glsl") ; player.shaders[1].loadShader( VSShaderLib::FRAGMENT_SHADER, "../shaders/light/point/phong.frag.glsl") ; // set semantics for the shader variables player.shaders[1].setProgramOutput( 0 , "color" ); player.shaders[1].setVertexAttribName( VSShaderLib::VERTEX_COORD_ATTRIB, "position") ; //shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); player.shaders[1].setVertexAttribName( VSShaderLib::NORMAL_ATTRIB, "normal") ; player.shaders[1].prepareProgram(); VSGLInfoLib::getProgramInfo(player.shaders[1].getProgramIndex()); printf("%s\n", player.shaders[1].getAllInfoLogs().c_str()); // uniforms { float lpos[4] = { 30.0 , 5.0 , 0.0 , 1.0 }; float ldif[3] = { 0.0 , 1.0 , 0.0 }; //float lamb[3] = { 0.3 , 0.0 , 0.0 }; float lspc[3] = { 1.0 , 1.0 , 1.0 }; player.shaders[1].setUniform( "lightPosition" , lpos ); player.shaders[1].setUniform( "diffuse" , ldif ); //shaders[1][3].setUniform( "ambient" , lamb ); player.shaders[1].setUniform( "specular" , lspc ); player.shaders[1].setUniform( "shininess" , 100.0f ); } // player shader#3 // Shader for fonts and models player.shaders[2].init(); //shader.loadShader(VSShaderLib::VERTEX_SHADER, "../shaders/dirlightdiffambpix.vert"); //shader.loadShader(VSShaderLib::FRAGMENT_SHADER, "shaders/dirlightdiffambpix.frag"); player.shaders[2].loadShader( VSShaderLib::VERTEX_SHADER, "../shaders/light/spot/phong.vert.glsl") ; player.shaders[2].loadShader( VSShaderLib::FRAGMENT_SHADER, "../shaders/light/spot/phong.frag.glsl") ; // set semantics for the shader variables player.shaders[2].setProgramOutput( 0 , "color" ); player.shaders[2].setVertexAttribName( VSShaderLib::VERTEX_COORD_ATTRIB, "position") ; //shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); player.shaders[2].setVertexAttribName( VSShaderLib::NORMAL_ATTRIB, "normal") ; player.shaders[2].prepareProgram(); VSGLInfoLib::getProgramInfo(player.shaders[2].getProgramIndex()); printf("%s\n", player.shaders[2].getAllInfoLogs().c_str()); // uniforms { float spos[4] = { 0.0 , 1.0 , 0.0 , 1.0 }; float sdir[3] = { 1.0 , -1.0 , 0.0 }; float ldif[3] = { 0.0 , 1.0 , 0.0 }; //float lamb[3] = { 0.3 , 0.0 , 0.0 }; float lspc[3] = { 1.0 , 1.0 , 1.0 }; player.shaders[2].setUniform( "spotPosition" , spos ); player.shaders[2].setUniform( "spotDirection" , sdir ); player.shaders[2].setUniform( "spotLimitAngle" , DEG2RAD(7.5f) ); player.shaders[2].setUniform( "diffuse" , ldif ); //shaders[1][3].setUniform( "ambient" , lamb ); player.shaders[2].setUniform( "specular" , lspc ); player.shaders[2].setUniform( "shininess" , 100.0f ); } */ // shader1 shader1.init(); shader1.loadShader( VSShaderLib::VERTEX_SHADER, "../shaders/light/point/phong.vert.glsl") ; shader1.loadShader( VSShaderLib::FRAGMENT_SHADER, "../shaders/light/point/phong.frag.glsl") ; // set semantics for the shader variables shader1.setProgramOutput( 0 , "color" ); shader1.setVertexAttribName( VSShaderLib::VERTEX_COORD_ATTRIB, "position") ; shader1.setVertexAttribName( VSShaderLib::NORMAL_ATTRIB, "normal") ; shader1.prepareProgram(); VSGLInfoLib::getProgramInfo(shader1.getProgramIndex()); printf("%s\n", shader1.getAllInfoLogs().c_str()); // uniforms { float lpos[4] = { 30.0 , 5.0 , 0.0 , 1.0 }; float ldif[3] = { 1.0 , 0.0 , 0.0 }; //float lamb[3] = { 0.3 , 0.0 , 0.0 }; float lspc[3] = { 1.0 , 1.0 , 1.0 }; shader1.setUniform( "lightPosition" , lpos ); shader1.setUniform( "diffuse" , ldif ); //shader1.setUniform( "ambient" , lamb ); shader1.setUniform( "specular" , lspc ); shader1.setUniform( "shininess" , 100.0f ); } // shader2 shader2.init(); shader2.loadShader( VSShaderLib::VERTEX_SHADER, "../shaders/light/point/phong.vert.glsl") ; shader2.loadShader( VSShaderLib::FRAGMENT_SHADER, "../shaders/light/point/phong.frag.glsl") ; // set semantics for the shader variables shader2.setProgramOutput( 0 , "color" ); shader2.setVertexAttribName( VSShaderLib::VERTEX_COORD_ATTRIB, "position") ; //shader.setVertexAttribName(VSShaderLib::TEXTURE_COORD_ATTRIB, "texCoord"); shader2.setVertexAttribName( VSShaderLib::NORMAL_ATTRIB, "normal") ; shader2.prepareProgram(); VSGLInfoLib::getProgramInfo(shader2.getProgramIndex()); printf("%s\n", shader2.getAllInfoLogs().c_str()); // uniforms { float lpos[4] = { 30.0 , 5.0 , 0.0 , 1.0 }; float ldif[3] = { 0.0 , 1.0 , 0.0 }; //float lamb[3] = { 0.3 , 0.0 , 0.0 }; float lspc[3] = { 1.0 , 1.0 , 1.0 }; shader2.setUniform( "lightPosition" , lpos ); shader2.setUniform( "diffuse" , ldif ); //shader2.setUniform( "ambient" , lamb ); shader2.setUniform( "specular" , lspc ); shader2.setUniform( "shininess" , 100.0f ); } return(1); }