Object Space Normal Mapped Meshes - Can they be batched ?

Today I was trying to code a shader using Object Space for lighdir/viewdir/halfdir and Normal Map, and the shader looked fine in the editor, but as soon as I cloned the object, the lighting broke and looked like if it was baked on the model and not dynamic anymore.

Deleting the clone everything returned to normal lighting behaviour.
If I clone the material and assign that to the clone everything works as expected, but using a different material means no batching is possible.

So the question is Object-Space Normal map good only for Singleton objects ?
Is this the expected behaviour ? :face_with_spiral_eyes:

Would calculating lightdir/viewdir/halfdir in the Update function, as ObjectSpace Vectors, and passing them to the material change anything ?
I believe that using .shared material would mantain batching but apply same lighting to both clones and it will probably look like baked again, usinng .material will probably break batching again.

For more details you can view my question on Answers:
http://answers.unity3d.com/questions/639430/object-space-normal-map-object-clones-break-normal.html

I believe that the normals in an object space normal maps are stored as being relative to the objects local transform. When you batch objects, the transforms are merged, thus invalidating the original normal map data. So no, I don’t think that they can be batched effectively.

Yeah, you would have to use tangent or world space normal maps for batching.

Good to know, in that case, I could use this for terrains and object where only one instance is required, it should be faster and more convenient than using tangents.

A question about Cubemap Reflections, how do you get cubemap reflections in ObjectSpace, I’ve seen those always expressed in WorldSpace, would the overehead to use them be smaller than using the standard approach in WorldSpace ? Considering that usually with Tangent Space normal Maps you still need to transform to World Coordinates to sample the texCUBE, I suppose a ObjectToWorld Space conversion is needed, but not sure.