Old silhouette rendering technique is failing. Point spacing is much tighter than before. Our old algorithm relied on segment-ids matching between the first-pass and second pass to work.
Have a replacement algorithm that works reasonably well. Basically edge-detection on the depth image. The down side is we're getting double-edges in some areas, and you have to adjust a threshold. It'll have to do for now, hopefully we can train a the likelihood to be robust to these issues.
added 'train_bd_likelihood()' function to 'lib/evaluate/bd_likelihood.h'. Uses 'kjb_c::get_full_GMM()' to fit a three-component gaussian mixture model to model the relationship between model and data pixels.
Shader objects from './shader.h' are now in the project library, under 'lib/ogl/shader_2.h'. Not the greatest name, but shader.h already exists and conflicts. Consder refactoring them later.
Silhouetter rendering from './render_util.h' are now in 'lib/graphics/silhouette_renderer.h'. Much better encapsulation now, so we can use it in other projects.
In the process of updating './likelihood_server.cpp' to reflect these changes. At the moment, getting an "invalid operation" when rendering.
It was a stray glUseProgram(notzero)
in the shader loading code.