@@ -89,6 +89,16 @@ int main(int argc, char** argv) {
8989 GLCALL (glUniform3fv (glGetUniformLocation (shader.getShaderId (), " u_directional_light.specular" ), 1 , (float *)&sunColor.data ));
9090 sunColor *= 0 .4f ;
9191 GLCALL (glUniform3fv (glGetUniformLocation (shader.getShaderId (), " u_directional_light.ambient" ), 1 , (float *)&sunColor.data ));
92+
93+ glm::vec3 pointLightColor = glm::vec3 (0 .0f , 0 .0f , 1 .0f );
94+ GLCALL (glUniform3fv (glGetUniformLocation (shader.getShaderId (), " u_point_light.diffuse" ), 1 , (float *)&pointLightColor.data ));
95+ GLCALL (glUniform3fv (glGetUniformLocation (shader.getShaderId (), " u_point_light.specular" ), 1 , (float *)&pointLightColor.data ));
96+ pointLightColor *= 0 .2f ;
97+ GLCALL (glUniform3fv (glGetUniformLocation (shader.getShaderId (), " u_point_light.ambient" ), 1 , (float *)&pointLightColor.data ));
98+ GLCALL (glUniform1f (glGetUniformLocation (shader.getShaderId (), " u_point_light.linear" ), 0 .027f ));
99+ GLCALL (glUniform1f (glGetUniformLocation (shader.getShaderId (), " u_point_light.quadratic" ), 0 .0028f ));
100+ glm::vec4 pointLightPosition = glm::vec4 (0 .0f , 0 .0f , 10 .0f , 1 .0f );
101+ int positionLocation = GLCALL (glGetUniformLocation (shader.getShaderId (), " u_point_light.position" ));
92102
93103 Model monkey;
94104 monkey.init (" models/tree.bmf" , &shader);
@@ -215,6 +225,11 @@ int main(int argc, char** argv) {
215225 glm::vec4 transformedSunDirection = glm::transpose (glm::inverse (camera.getView ())) * glm::vec4 (sunDirection, 1 .0f );
216226 glUniform3fv (directionLocation, 1 , (float *)&transformedSunDirection.data );
217227
228+ glm::mat4 pointLightMatrix = glm::rotate (glm::mat4 (1 .0f ), -delta, {0 .0f , 1 .0f , 0 .0f });
229+ pointLightPosition = pointLightMatrix * pointLightPosition;
230+ glm::vec3 transformedPointLightPosition = (glm::vec3) (camera.getView () * pointLightPosition);
231+ glUniform3fv (positionLocation, 1 , (float *)&transformedPointLightPosition.data );
232+
218233 GLCALL (glUniformMatrix4fv (modelViewProjMatrixLocation, 1 , GL_FALSE, &modelViewProj[0 ][0 ]));
219234 GLCALL (glUniformMatrix4fv (modelViewLocation, 1 , GL_FALSE, &modelView[0 ][0 ]));
220235 GLCALL (glUniformMatrix4fv (invModelViewLocation, 1 , GL_FALSE, &invModelView[0 ][0 ]));
0 commit comments