3ds Max JSON exporter that adds two more attribute channels to the exported mesh (tangent, binormal) and corresponding indecis (need to sort it and get rid of some of these). This exports the data needed to properly render the normal map generated by 3ds Max. It should be possible to render this anywhere using the right shader.
THREE.js is extended with another typed array buffer to hold the binormal data. I could not figure out how to achieve this with using any of THREE.js tools, even less how to ask a question about it
Essentially, since I'm outputting these quite unordered, and am using indecis to map everything to the mesh, I couldn't figure out where to plug the indecis. If I understand correctly, every hard edge should have duplicate vertices for different normals, but I do not understand how three.js handles this when supplying attributes in the THREE.shaderMaterial. By tapping into the renderer, I was able to duplicate the tangent buffer that was already there, and map everything correctly.
Finally, a shader is unpacking the normal map, and creating the correct tangent space.
The 3d model itself is simple... and it isn't. I like testing this stuff on an object such as a wheel because by it's very nature it contains repetition. Repetition means that a texture such as a normal map can yield a much higher resolution if broken up in proper pieces. This one is actually highly irregular. It has a pattern of 15 holes around the rim perimeter, while the center has 4 distinct pieces that can also be mirrored. I tried to maximize the normal map yield, at the expense of seams (double verts). Getting rid of the shading seams after the normal map has been unpacked was the main point of this whole excercise. The hubcap(?) is one sided because it will most likely be occluded, the interior of the wheel darker, and can be done with a simpler mesh.