diff --git a/src/main.c b/src/main.c index 3ab739c..c759af9 100644 --- a/src/main.c +++ b/src/main.c @@ -299,13 +299,14 @@ void draw(void) { glUniform4f(glGetUniformLocation(program, "lightColor"), 0.2f, 0.2f, 0.2f, 0.5f); glUniform4f(glGetUniformLocation(program, "ambientLight"), 0.05f, 0.05f, 0.05f, 1.0f); - vec4 lightPosition = {cos(stepi) * 5.0f, 5.0f, sin(stepi) * 5.0f, 1.0f}; + vec4 lightPosition1 = {cos(stepi) * 5.0f, 5.0f, sin(stepi) * 5.0f, 1.0f}; + vec4 lightPosition2 = {-cos(stepi) * 5.0f, 5.0f, -sin(stepi) * 5.0f, 1.0f}; // move cubes to light positions mat4 transformLights; vec3 lightScale = {0.1, 0.1, 0.1}; scaling(&transformLights, &lightScale); - translate(&transformLights, &transformLights, (vec3*)&lightPosition); + translate(&transformLights, &transformLights, (vec3*)&lightPosition1); SceneNode* light = findNodeByName("Light1", rootNode); light->transformation = transformLights; @@ -319,10 +320,11 @@ void draw(void) { updateSceneNode(light, &rootNode->worldTransformation); // apply viewing transformation and pass light positions to shader - multiplyAny((GLfloat*)&lightPosition, (GLfloat*)&viewingTransformation, (GLfloat*)&lightPosition, 4, 4, 1); + multiplyAny((GLfloat*)&lightPosition1, (GLfloat*)&viewingTransformation, (GLfloat*)&lightPosition1, 4, 4, 1); + multiplyAny((GLfloat*)&lightPosition2, (GLfloat*)&viewingTransformation, (GLfloat*)&lightPosition2, 4, 4, 1); - glUniform3f(glGetUniformLocation(program, "lightPositions[0]"), lightPosition.x, lightPosition.y, lightPosition.z); - glUniform3f(glGetUniformLocation(program, "lightPositions[1]"), -lightPosition.x, lightPosition.y, -lightPosition.z); + glUniform3f(glGetUniformLocation(program, "lightPositions[0]"), lightPosition1.x, lightPosition1.y, lightPosition1.z); + glUniform3f(glGetUniformLocation(program, "lightPositions[1]"), lightPosition2.x, lightPosition2.y, lightPosition2.z); glUniform1f(glGetUniformLocation(program, "lightBrightness[0]"), 0.5f); glUniform1f(glGetUniformLocation(program, "lightBrightness[1]"), 0.5f);