Summary
In this chapter, we have learned how to implement color-based picking in WebGL. Picking based on a diffuse color is a bad idea because there could be scenarios where several objects have the same diffuse color. It is better to assign a new color property that is unique for every object to perform picking. We called this property picking color/object label.
Through the discussion of the picking implementation, we learned that WebGL provides mechanisms to create offscreen framebuffers and that what we see on screen when we render a scene corresponds to the default framebuffer contents.
We also studied the difference between a framebuffer and a renderbuffer. We saw that a renderbuffer is a special buffer that is attached to a framebuffer. Renderbuffers are used to store information that does not have a texture representation such as depth values. In contrast, textures can be used to store colors.
We saw too that a framebuffer needs at least one texture to store colors and a renderbuffer...