Anim8or recalculates all normals whenever the geometry changes, including changing the value of a morph target. That's the only way to guarantee correct results, though I'm pretty sure with some though you could get *very* close with some kind of interpolation scheme for morph targets. (But don't forget to normalize them if you do interpretation or the brightness could go whacky

Nice to know that all normals are also recalculated whengeometry is changed by skeleton animation.

For morphs,I'll use the interpolation as shown in the codeposted.I'll calculate the NormalOffset keeping the same smoothing state as the original mesh.Not perfect,but good enough for most mesh (specially for organic models) and fast.

But,I would like eventually to try recalculating normals each render on the gpu using a compute shader.We'll see.