I want to compute the vertextNormals of this model to properly using MeshNormalMaterial on it.
I get good result by using BufferGeometry.computeVertexNormals.
The only problem is that it averaging face normals on the bottom cube, what I want is like the upper cube(sharp edge), so I try to use Geometry.computeFlatVertexNormals (which does not exist in BufferGeometry).
But after I use Geometry.fromBufferGeometry(), all the morphTargets informations lost.
Is there any proper way to achieve this requirement?

The conversion from BufferGeometry to Geometry was not further enhanced on purpose. There were existing PRs and issues but the request can be considered as a Won't fix (see https://github.com/mrdoob/three.js/pull/14493#issuecomment-405866263).
You can try to call toNonIndexed() on your BufferGeometry so that no vertices are shared anymore. If you then call computeVertexNormals(), the normals won’t be weighted across multiple faces anymore.
toNonIndexed() works! Thank you!
