I've noticed that in my engine the specular highlights for shiny objects go away for objects that are closer to the camera. Interestingly, increasing the scale factor for the objects allows the camera to get much closer before the highlights disappear. Therefore, I don't think this is an inherent property of the geometry of specular lighting.
I am using a normalized Blinn-Phong lighting model and this issue exists for both point and directional light sources. I've checked my shader against examples online and it seems to match them. In addition, the same behavior was observed with the Phong lighting model.
I've attached two screenshots showing a series of 4 shiny objects. In the first, the highlight is most prominent on the distant object and least prominent for the closest. In the second, the scene was scaled by 5x, and the highlights are similar for all objects.
Has anyone else noticed this artifact? My only guess is that there is some problem with how I am computing the normal matrix (transpose of the inverse of the upper 3x3 of model view matrix) or view-space light direction (model view matrix * world space direction), but there doesn't seem to be any negative effect on the normals themselves or the diffuse lighting.
Edit: I was just playing around with it again and found that if I calculate the view-space half vector once for the entire view, rather than per-pixel, the highlights behave the way they should.
Edited by Aressera, 16 March 2014 - 09:11 PM.