How to do 3D Reconstruction with Photogrammetry?

I recently started experimenting with Photogrammetry and I was wondering what it would take to create a own 3d reconstruction software?

The goal would be to take a set of input images of a real world scene and reconstruct the geometry into a 3d mesh.

In my mind the process would probably look something like this:

  1. Analyze input images for similar features
  2. Generate a 3d point cloud from camera movement
  3. Turn point cloud into a 3d mesh
  4. Generate texture maps for the mesh

I am new to the topic and thus I was wondering if someone could provide resources / ideas on how to approach this endeavor?