@@ -131,6 +131,8 @@ int main(int argc, char** argv) {
131131 glm::mat4 modelViewProj = camera.getViewProj () * model;
132132
133133 int modelViewProjMatrixLocation = GLCALL (glGetUniformLocation (shader.getShaderId (), " u_modelViewProj" ));
134+ int modelViewLocation = GLCALL (glGetUniformLocation (shader.getShaderId (), " u_modelView" ));
135+ int invModelViewLocation = GLCALL (glGetUniformLocation (shader.getShaderId (), " u_invModelView" ));
134136
135137 // Wireframe
136138 // glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
@@ -231,10 +233,14 @@ int main(int argc, char** argv) {
231233 camera.update ();
232234 model = glm::rotate (model, 1 .0f *delta, glm::vec3 (0 , 1 , 0 ));
233235 modelViewProj = camera.getViewProj () * model;
236+ glm::mat4 modelView = camera.getView () * model;
237+ glm::mat4 invModelView = glm::transpose (glm::inverse (modelView));
234238
235239 vertexBuffer.bind ();
236240 indexBuffer.bind ();
237241 GLCALL (glUniformMatrix4fv (modelViewProjMatrixLocation, 1 , GL_FALSE, &modelViewProj[0 ][0 ]));
242+ GLCALL (glUniformMatrix4fv (modelViewLocation, 1 , GL_FALSE, &modelView[0 ][0 ]));
243+ GLCALL (glUniformMatrix4fv (invModelViewLocation, 1 , GL_FALSE, &invModelView[0 ][0 ]));
238244 GLCALL (glDrawElements (GL_TRIANGLES, numIndices, GL_UNSIGNED_INT, 0 ));
239245 indexBuffer.unbind ();
240246 vertexBuffer.unbind ();
0 commit comments