Flattening a sphere


#1

Hi,
I need to animate a sphere flattening out into a plane.
The closest I’ve got so far is applying a 360 degree bend and then a spherify modifier to the plane which works well but leaves open holes at the top and bottom of the resulting sphere.
Any ideas?

Thanks


#2

A mate of mine (paulc, search the forum), did that same trick, but used more than 1 bend mod. I think he used 2, on diferent axis.


#3

Actually my version had holes in as well, and I acheived it with a bend modifier and a sperify modifier, so I had a quick gander at my version, if you stick an 3x3 FFD modifier and scale the top and bottom sections down to zero that should get rid of the holes. If you want to animate it it’s a little ungainly, but some tweaking of the key frames should do it.
I’ve emailed you the max file, just in case.


#4

I think that may just work!
Thanks guys, you’re life savers! :thumbsup:


#5

I would probably use the morph modifier if I needed tight control - start with the sphere, with an invisible hole at the bottom and morph to a flat mesh. Depending on what you want it to look like, you may have to put in some intermediate morphs.


#6

Actually it’s pretty easy with two bends:

[ul]
[li]Create a plane in the front view, twice as wide as it’s high (for example 1000 x 500)[/li][li]Add a bend modifier, Angle = -180, Direction = 90, Axis = Y[/li][li]Add a second bend modifier, Angle = 360, Direction = 0, Axis = X[/li][li]Add both a Vertex Weld and a Smooth modifier to clean up the seam[/li][/ul]Enjoy!

By the way, the surface area will get smaller by this, so you might want to add an X-Form to animate the scale as a counter measure.

Edit: The angle of the second bend should be 360. Sorry!


#7

Here’s another one

it’s a morph using ‘channel info’ dialog to extract the UVW and apply it to the target morph.

··


#8

here’s one … (for an epoly/mesh plane in XY)

 fn plane2Sphere plane =( 

local minX=plane.min.x,
minY=plane.min.y,
xLen=plane.max.x-minX, 
yLen=plane.max.y-minY,
r=yLen/(2*pi)
[indent]for i=1 to plane.verts.count do

(
   theta = ((plane.verts[i].pos.x - minX)/xLen)*360
   phi = ((plane.verts[i].pos.y - minY)/yLen)*180
 
   plane.verts[i].pos.x = r*sin(phi)*cos(theta)
   plane.verts[i].pos.y = r*sin(phi)*sin(theta)
   plane.verts[i].pos.z = -r*cos(phi)
)
[/indent])
 
plane2Sphere $whatEverYourPlaneIsCalled
 

Ruramuq… could you step-wise yours? I can’t work out where all the pole-triangles have gone!


#9

yes, sorry, this is as I remember…

create a sphere, convert it to editable poly
using the chamfer tool, create holes, north and south pole
select a loop of edges from pole to pole and use split tool to cut them
move the selected edges a bit to the right to separate those edges
apply uvw spherical, and align the uvw seams to the edges that we’ve split
collapse the mesh
duplicate it
open channel info dialog
select uvw channel / rclick and copy
select the target sphere
press update in the channel info dialog and select mesh channel, then rclick and paste
apply morpher to the main sphere, select the target…
apply vertex weld modifier

the uvw is normalized, and that will decrease the size of the target, but with a xform, you can adjust the scale, let’s say to 10000%, and orientation too.
I think that’s all…

I’ve attached the max file (max2008)

btw, your script is impressive, I only needed to center the pivot and reset xform, to use it with morph.


#10

Thanks very much for that! Got you now, I was trying on a default sphere, without ‘designing’ the poles to flatten properly … your way, you could edit-fiddle the UVs to get whatever shaped plane you like.


#11

Nice workflow, thanks for sharing! I’ve never touched the channel info utility until now.


#12

I’m glad it worked, I thought it wasn’t possible because of topology changes…

Max Reference file used to have a procedure to use Channel info ,to preserve target morphs, after radical topology changes, it was quite interesting. but I can’t find it now…


#13

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.