`Vector lightDirection = lightSources.at(lightIndex)->getLightDirection().add(intersectionPosition.negative()).normalize();`

Should be:

`Vector lightDirection = lightSources.at(lightIndex)->getLightPosition().add(intersectionPosition.negative()).normalize();`