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
Post a Comment