How to correctly implement Lambertian BRDF with point light I'm implementing a simple Lamberitan BRDF in GLSL, using a point light source. My fragment shader simply returns light_colour * 1.0/PI * cosine, which should model a fully diffuse white material. 

However, it looks rather dark... If I have a point light with colour (1,1,1), and no attenuation with distance, the maximum brightness of the material (at normal incidence) will be 1/3 (dark grey). 

Is this just because I am using a physically incorrect point light with zero size? Is there any "correct" value for the light colour in this case, if I want the surface to be white at its brightest parts?
It doesn’t matter that it’s a point light; the 1/π normalization factor is what’s causing your surface to be 1/π as bright as you’d like it to be. You can either up your light intensity so the maximum brightness is π or just get rid of the normalization factor. There’s a good article with some notes about this and how it interacts with more complex lighting techniques here.