1
$\begingroup$

I have a detailed mesh (600k faces) of a hole in the ground, produced from photogrammetry of a volcanic collapse pit in Hawaii. The mesh surface ends just outside the rim of the pit, but doesn't have any holes inside the pit.

I have two goals:

1) I want to be able to render views where there is a stand-in for the "ground" around the pit, occluding the backfaces of the pit geometry, so that it's immediately obvious where the rim is.

2) I want to end up with a watertight mesh, so that I can 3D print it.

I think what I want to do is inset the pit mesh into one end of a cylinder, similar to doing a boolean subtract between the pit and cylinder; however, since the rim of the pit isn't perfectly flat, I'd like to end up with the final top face of the cylinder going above (and possibly below) its original height to meet up with the edge of the pit mesh (see mockup image).

Note that I'm not married to doing the mesh manipulation in Blender if there's a better option. Also, although my mockup below shows a texture derived from the original photos, I don't intend for the final mesh to use a texture, so don't worry about preserving it.

Mockup of cylinder with embedded pit mesh


EDIT

I've found a partial solution- the current version is good enough for the super-rough renderings I need, although it has enough inverted and otherwise problematic faces that it isn't printable (probably caused by the edge of the mesh being very messy, with a straight line going radially away from any given "edge" vertex possibly passing through another bit of the mesh). Basically, I used the vertices along the edge of the mesh to build a cylinder around the rest of the mesh.

All of the following was done in Edit Mode:

0) A bit of cleanup by selecting the main mesh (select one vertex, hit L), inverting the selection (CtrlI), and deleting the few floating blobs.

1) Select the edge of the mesh (by selecting all non-manifold edges with CtrlAltShiftM). (Trying to select it as an edge loop failed due to the topology not being as clean as Blender likes.)

2) Follow these directions to turn that outer loop of points into a circle:

2a) Flatten the points into a plane: hit S (or click the "scale" button in the Transform panel), left-click to get the number-entry panel to pop up, and set the Z value to 0.

2b) Turn the loop into a circle using the "To Sphere" tool (spacebar and search); use a Factor of 1 to make a perfect circle.

2c) Scale in X and Y to place the circle fully outside the rim of the pit (this can probably be combined with step 2a).

3) Extrude the outer loop to make a cylinder wall (Extrude: Edges Only; use the manual editing panel to set the X and Y offsets to 0 and the Z component to slightly below the bottom of the pit.)

4) Close the bottom of the cylinder with the "extrude and merge edges" solution from this question (E, Escape, ⎇ AltM, A).

$\endgroup$

1 Answer 1

1
$\begingroup$

This is going to be a bit of a tricky problem due to the edge of the crater being as rough and jagged as it is. I'm assuming that the edge of the crater is not going to line up perfectly with the tapered cylinder style you are going for.

I would go about it this way:

  1. Create the base shape you are going for by taking a cylinder, extruding the top face a bit then scaling it down until it is an angle you like. It doesn't matter how high you extrude the face, what matters is that when you get the angle you are looking for the top face is smaller than the top edge loop of the crater. Make sure this base object is positioned where you want it to be in the final object.

  2. Subdivide the base a lot, using CtrlR to add loops until the faces of the base are mostly square, then W and subdivide. You will want the geometry to be dense enough that the average edge on the angled portion is roughly the same as the average edge on the edge of the crater. Note that you only need to do this for the angled top faces, not the sides or bottom face of the cylinder, although it won't hurt if you do.

  3. Look from the top at the two objects (they will need to be separate objects at least until this point) and use the circle select tool to select all of the vertices on the top of the base that the crater will cover. It doesn't have to be perfect, but you don't want there to be vertices inside the crater perimeter.

  4. Join the two objects with CtrlJ. In edit mode, use proportional editing set to connected to adjust the height of the top edge of the base until it is fairly close to the edge of the crater. You will likely not be able to have the base be a smooth slope up to the edge of the crater due to the uneven edge. I would suggest trying to make the top of the base look a bit uneven and rocky as it gets closer to the edge, but the choice is ultimately yours.

  5. In edit mode select the perimeter of the crater and the now uneven edge of the base using the non manifold edge method you did above.

  6. Press CtrlE and choose 'Bridge edge loops'. The number of vertices on each edge should be close enough that it will do a decent job filling the gap. You may have to manually adjust a few places if there are any problematic spots.

Do note that I haven't tried this method on anything like your project, I'm going by what I think would work best. If you run into issues it could just be a limitation with this method, but I would imagine that it should work.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .