Fix diffuse and specular intensity calculations by taking max(0, dotProduct)