The problem is that the chair has a vertex alpha, which enables blending when drawing the mesh in the picking texture. By setting hasVertexAlpha = false, this works. Setting transparencyMode to MATERIAL_OPAQUE for the picking material is better, however, as it avoids modifying the mesh itself.
In addition, you may want to transform the normal in world space, so that users don’t have to do it themselves :
@Evgeni_Popov really quick about the normal transformation, what uniform should I use to access the instances or the current meshes worldMatrix on the vertex shader? Id much rather do the normal transformation on the GPU than the CPU response.
The code for the instances / thin instances case is a faster implementation than doing the full transpose + inverse matrix, but the normal may not be exactly the right one.