I'm currently modelling a sofa. Each seat has two cushions, a horizontal one for sitting on and a vertical one for back support. Both have been deformed with sculpting and proportional editing to give them a used look.
I want one cushion to sit on top of the other with the bottom of the upper cushion deformed to fit the contours of the cushions underneath. So far I've been achieving that by placing the two meshes so they intersect, then pulling up the individual vertices of the upper cushion using snap to face so that they follow the form of the lower cushion. See included test render.
This works, more or less (as you can see from the included test render there are a few places where the two meshes still interfere with each other and the line vanishes), but is annoying and slow, plus getting enough distance between planes to allow Freestyle to draw a line without them looking like there's a gap is a process of trial and error. There has to be a better way of achieving the same effect. Is there a way you can get Blender to deform one mesh so that it fits properly against another?
I am aware that you can just push one mesh through the other, but I'm also using Freestyle on this project, and Freestyle apparently can't render lines where meshes intersect, so the two meshes have to sit flush to each other and not pass through each other or there will be no line in the final output.