graphics - Multiple shaders inside one Main OpenGL program -


i trying attach different shaders different program inside opengl main program render different objects. more specifically, have planet object(obj), want render 2 different planets, 1 bump mapping other multiple textures.

i came following framework didn't work.

void setup(){    planet_1_programid = createprogramandattachshader(parameters...)    planet_2_programid = createprogramandattachshader(parameters...) } void senddatatoopengl(){     create vao , bind vao     load data vbo     send data opengl }  void paintgl(void){     glm::mat4 lookatmatrix = ...     glm::mat4 projectionmatrix = ...     glm::mat4 lookatmatrix = ...             glm::mat4 transformationmatrix = ...       // planet 1     gluseprogram(planet_1_programid)     bind previous created vao     bind texture information     model transformation     gldrawarrays();      // planet 2     gluseprogram(planet_2_programid)     bind previous created vao     bind texture information     model transformation     gldrawarrays(); } 

the rendering result 1 planet shows in final scene. wondering if understanding function gluseprogram in incorrect way. can give me hints?

[update] because need define variables on again after gluseprogram? define of variables before gluseprogram because these 2 planets have same variables.

is because need define variables on again after gluseprogram? define of variables before gluseprogram because these 2 planets have same variables.

if you're referring "uniforms", something(!) problem. see, uniform values stored per program have set uniform values @ least once each program. it's not necessary after each , every gluseprogram, have @ least once each "gluseprogram".


Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -