More questions about my horizon based ambient occlusion shader

The link above contains videos that show the current output generated by my horizon-based ambient occlusion shader. I choose the Lenin model because I figured details like the open, flapping coat would be a good showcase for AO. Also, that classic Buddha model has all sorts of details in the geometry that make it a great candidate for AO; so I use it to test my shader as well. On the Buddha model, the white specks that appear have nothing to do with my shader. For some reason, those are just there when OpenGL renders the model; I guess something about the geometric data is causing this issue.

Anyway, the primary thing that I notice is this sort of banded cross that appears in the center of the models that I render. I also do not know why the stand on the Buddha model has black patches.

Would anybody have any intuition, knowledge, or experience that might be helpful in diagnosing the source of these anomalies; especially the cross pattern in the center of the image? Any input/help would be most appreciated.

Apart from the black “cross” mark at the center of the screen, the white dots, and the black patches at the bottom of the Buddha, I notice that it also looks like your models are lit from below, ie. watch for the below of the chin (white) , compared to what is around at the top of the chest (black).

As for investigating those, I would say you have to simplify your shader, output values on screen for each important section of code to have visual feedback. For example, verify that screen coordinates are ok when output xyz as rgb, world coordinates too, etc.

And if the code size for each section is not too big, post it here, with proper code tags.