1
$\begingroup$

Say you have 2 parametric cylinders represented as triangle meshes with very different geometries and you connect them together.

Is there a method that allows you to join them together such that the shapes blend smoothly?

So for example consider these geometries:

enter image description here

let's say you have a cylinder with the geometry of the top left torus and one with that of the bottom right torus. You want to attach them together to get a new cylinder such that that half the cylinder is a normal cylinder, half is a corkscrew cylinder and you have a smooth transition of the geometry from one to the other in the middle.

I am trying to find literature on the topic but I am having little luck.

$\endgroup$
1
  • $\begingroup$ I know it has been a while but see this paper: "Linear PDE Osmotic Flow for 3D Surfaces", link.springer.com/chapter/10.1007/978-3-031-92369-2_18 You can see in figure 4 how they merge a human model and a hirse model to get a centaur. $\endgroup$ Commented Oct 31 at 7:47

1 Answer 1

0
$\begingroup$

I'm not sure what you mean by join together the shapes. I assume you mean you want a single torus but at different spots on the torus you want one of either geometry to shine through more. Assuming that parametrisation of the Torus is approximately the same (same $(u,v)$ values map to points close together). Then you could try the following:

Assuming both cylinders have some parametrisation $R^2 \rightarrow R^3$ with $(u,v) \in [0,1]$. We then have two tori: $T_1(u,v)$ and $T_2(u,v)$. Then we can combine these together with additional blending functions $\alpha(u,v)$ and $\beta(u,v)$ which have the following properties: $\alpha(u,v)$ + $\beta(u,v) = 1$ and $\alpha(u,v)$, $\beta(u,v) \in [0,1]$. Then we can create a blended torus:

$$T_b(u,v) = \alpha(u,v) T_1(u,v) + \beta(u,v) T_1(u,v). $$

Naturally, the question is what are these functions $\alpha$ and $\beta$ and that is what you have to decide yourself. If you do not really care about where exactly the blend is done you can set $\alpha$ to be determined by a Perlin noise function and then setting $\beta = 1 - \alpha$. If you require more customization you could try to create a custom height map or create a grid of Bezier patches on the UV plane. Having half of the torus as $T_1$ and the other as $T_2$ you could use just $$\alpha(u,v) = \begin{cases} 1-2u, & u \in [0, 0.5]\\ 2u - 1, & u \in [0.5, 1]\\ \end{cases} $$ and once again $\beta(u,v) = 1 - \alpha(u,v)$ (assuming they are both parametrised with $u$ along the toroidal direction). You can create smoother blends by using smoother blending functions.

$\endgroup$
3
  • $\begingroup$ This answer is not addressing the question. I don't want different geometry to shine differently. If you see the image in the question, the macro geometry of all 6 tori is different. The question is, if you split them in half and rejoin them, e.g. such that the top left and bottom right are now joined together. How do you blend them together so that the transition from one to the other at the stitch point is smooth. Transition in this case means the actual macro geometry, the corskcrew-like lines made by rotating and sweeping the planar curve. $\endgroup$ Commented Oct 11, 2023 at 21:13
  • $\begingroup$ I am also using torus as an example, but in general this is about triangle meshes, you do not have an explicit parametrization. $\endgroup$ Commented Oct 11, 2023 at 21:14
  • $\begingroup$ Use a plane and a lerp value . $\endgroup$ Commented Mar 9, 2024 at 10:47

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.