How can I effitiently pack texture according to existing UV?
I'm not sure you will gain something keeping your current UV, you will have a hard time getting accurate and precise texel density &amp; texture details on your mesh.
Using orthographic projections like that is not that effective, at least not on organic shapes and not with some help from other projections and other techniques.
I'd suggest you use your current technique only as a way to quickly build a final texture that correctly wrap around your mesh with no waste.
A simple way to do that is simply to bake your current projected-from-front texture into another texture that's based on a more correct UV map.
Assuming you start with such a scenario, with your mesh, unwraped by projection, with a simple material like a sole emission shader with your texture plugged in:

Head to the Properties editor &gt; Object Data tab &gt; UV Maps panel &gt; click the + icon to create a new UV map and give it a nice name.

With that new UV map selected, make you new unwrap to your needs. Using auto UVs unwrap methods or manual unwrap, or both, ... as you wish.

In the shader editor, add a UV Map node and a new Image Texture node. Plug the UV Map output in your new Image Texture node, ans select your new UV map in the UV Map node. That's what will enable your new texture to use that specific UV Map instead of the default one. Then use the Image Texture node's New button to create the new texture in which we will bake.

Make sure you keep that image texture node selected, and only that one. That's how the baking will know in which texture to bake.
In the render settings, set the render engine to cycles. Then in the Bake panel, if you plugged your color texture in an emission shader as I did, set the bake type to Emit. Otherwise, you would probably need to set it to Diffuse and check only the Color influence. Also play with the margin value, the baking will overflow your uv islands a little to avoid empty pixel parts, but if you est it too big it will overflow on other islands.

Hit the Bake button, it will bake your first UV map's result into your second uv map. Once done, you will have your new texture that uses your UV space as you want:

Then you can replace the texture in your shader.
Be aware that when you have multiple UV maps on a mesh, only the one with the camera icon can be used in your shaders without manually specifying it via a UV Map node. So if you don't want this, check the camera icon on the new UV Map to set it as default, or even delete the other UV Maps if you don't need them.