Normal Calculation Algorithm in Import Settings

Hi, I want to know how exactly unity calculates normals in its import settings for models (Angle and Area Weighted mode in specific), because I was trying to use smoothed normals for outlines, but don’t want to break the original normals, so I need to convert the calculated normals into tangent space and store them in UVs.

I’ve written some scripts to calculate normals, but none of them was as well as unity’s calculation, but using that would overwrite the original normals on the mesh.