2

Usually when I work with photogrammetry or in other usages, I need to combine two meshes that have different position, rotation and sometime even scale.

The best way to solve this problem is by selecting 3 points that are present in both model.

  • Using 1 point : have the correct location of the model in 1D

  • Using 2 point : have the correct location and rotation and scale in 2D

  • Using 3 point : have the correct location and rotation in 3D (scale is usually consistent and done in with two point)

Here is a GIF example of my method.

2mb gif is low :(

2mb is very compressed

As you can see, I use an edge that I extrude in X direction, apply to rotate to my control point, and parent it to my object to have the 3rd axe of movement (locked between the two points a damp track can be used if you want make sure it stay connected to the two first point control) using object local rotation.

I don't think it's the best method, do you know if there is another way to do it faster and easier ?

Edit : I took the example with monkey as it was easy to understand, but I often need to merge transforms of more complex mesh like for example in photogrammetry. I already work with this 3 point method, it's just I think it's a long and fastidious process, and if there is already an addon, or a tool in blender that allow to make the 3D cursor rotation perpendicular to the line between point 1 and point 2, this would make things easier.

Thanks.

Chris
  • 59,454
  • 6
  • 30
  • 84
softyoda yoann
  • 575
  • 6
  • 17
  • My guess is someone called Robin will propose a geometry nodes solution for that ; )... – lemon Nov 24 '21 at 18:26
  • It's possible to do this without doing any of it to eye, using constraints, but it's probably not easier-- just more exact, without any fiddling with manual rotations. Is that something you're looking for? – Nathan Nov 24 '21 at 18:41
  • @Lemon :D I'm not quite the Duracell Bunny that moonboots is.. but I would give it a shot .. softyoda: This can be done quite fast just using snapping. Do you do this so often you need automation? – Robin Betts Nov 24 '21 at 19:02
  • 3
  • @Gorgious worth a lot, if looking for best-fit. Are these topologies identical, though, apart from the linear transformations? – Robin Betts Nov 24 '21 at 20:13
  • As answered in your reply, I don't have exact same topologies from one mesh to another as I'm using this method with photogrammetry or reconstruction (sometime there is only part of the mesh that merge with part of another mesh). Yes, it seems to be Helmert transformation, thanks for the info. – softyoda yoann Nov 24 '21 at 22:45
  • 1
    If you're dealing with photogrammetry I cant' recommend enough the free & open source CloudCompare which does the job very well. See for instance https://www.youtube.com/watch?v=8lxFsXgXdTY – Gorgious Nov 25 '21 at 07:55
  • 1
    Thanks, but I already use cloudcompare for a lot of stuff, but I still need to do a lot of things in blender as cloudcompare can't do all (for example touch ups in sculpt, and texture manipulation) Having a better way or an addon for helmert transformation, instead of using many empties would be easier, but if there isn't, then i'll continue to do like I do. – softyoda yoann Nov 25 '21 at 09:04

1 Answers1

3

If the the meshes are identical, apart from the translations, rotations and scale, this can be done by snapping alone, I think the only bit you could improve is using a Custom Orientation?

  • Set Snap to To: 'Vertex' With: 'Active', influencing translation, rotation, and scale.
  • Set Pivot to 3D Cursor.
  • Establish a common vertex, and ShiftS place the 3D cursor there, on the target mesh.
  • Create a Transform Orientation from a common edge from that vertex, on the target mesh.
  • Snap the (active) source common vertex to the target vertex...

enter image description here

(above)..

  • Make the other end of the common edge active on the source

  • RX and RZ align the common edges.

Next, the scaling step:

(below)..

  • S scale the source object, snapping the common edges to scale.
  • Now you can RY rotate the source around the common edge, snapping another convenient active vertex to the target:

enter image description here

(You could also deal with non uniform scaling, in a similar way, now, if you needed to)

Robin Betts
  • 76,260
  • 8
  • 77
  • 190
  • 1
    Thanks for the answer, this could be a good answer if edit mode had been faster (even if I'm not sure if it's appliable to my use case)

    Sorry i didn't mention it in my original question but :

    I'm often working on photogrammetry (with more than 30 to 80M poly objects) it's easier to stay in object mode, and use area with high contrast or in texture instead vertices.

    – softyoda yoann Nov 24 '21 at 22:41
  • @softyodayoann OK, I got the wrong end of the stick and took your illustration too literally. Million-poly objects sounds like a whole different ball-game – Robin Betts Nov 25 '21 at 08:21