14
$\begingroup$

I'd like to do an animation where a globe will unwrap it's texture.

Go from this

3d sphere

to this

flattened sphere

, but in 3D space, so it will look exactly as its unwrapped form.

The only methods I have on mind are extremely tedious, anyone there more clever than I care to give a hint on how to achieve the effect?

$\endgroup$
1

2 Answers 2

11
$\begingroup$

I would do this backwards.

Crate a plane, enter edit mode (Tab) and subdivide it.

Press (U) and select Unwrap to create a UV map.

enter image description here

Exit edit mode Tab and in the properties panel create two shape keys by pressing the + box TWICE.That will create a base shape key for the plane and one for the deformed plane (a sphere).

enter image description here

Back in edit mode Tab, rotate the plane 90 degrees in the Z axis RZ90

Then rotate 90 degrees in X RX90 enter image description here

Move the plane up on the Y axis (this distance will be the radius of the sphere) enter image description here

Press Space Bar type warp and select it. On the warp settings change the WarpAngle to 180 degrees enter image description hereenter image description hereenter image description here

Rotate the plane 90 degrees in the Y axis RY90 and warp again. This time make change the WarpAngle to 360 degrees.

enter image description hereenter image description here

At this point you should have a SPHERE!! enter image description here

When you switch back to Object Mode your sphere will go back to a flat plane, don't worry you can control (and animate) the transformation by moving the value slider on the Shape Keys. enter image description here

enter image description hereenter image description here

Then you can use UVs as the texture's coordinates in a material.

enter image description here

$\endgroup$
4
  • $\begingroup$ If you want to keep only the final mesh - you can follow these instructions. blender.stackexchange.com/questions/5364/… $\endgroup$ Jun 25, 2016 at 18:21
  • $\begingroup$ Afterwards, you might want to check the normals are facing the correct way - mine weren't, and I had very interesting effects when I imported the blend file into Unity. $\endgroup$ Jun 26, 2016 at 15:45
  • 1
    $\begingroup$ The second warp needs to be -360 degrees to avoid the map coming out reversed like in the question's anti-Earth. $\endgroup$
    – kim holder
    Sep 3, 2019 at 19:42
  • $\begingroup$ Can't find warp settings in more recent blender... the warp modifier doesn't half those settings.. $\endgroup$
    – WDUK
    Jul 21, 2022 at 19:55
5
$\begingroup$

A simple script which transforms vertices to their uv-coordinates (does not rip the geometry!):

import bpy
from mathutils import Vector

obj = bpy.context.active_object
mesh = obj.data
uv = mesh.uv_layers.active
shape_key = mesh.shape_keys.key_blocks[obj.active_shape_key_index]

for index, loop in enumerate(uv.data):
    vertex = shape_key.data[mesh.loops[index].vertex_index]
    vertex.co = Vector((loop.uv.x, loop.uv.y, 0.0))

You can rip the geometry manually:

  • In the UV Editor select an island and run Seams From Island.
  • Select a seam edge and press SHIFT + G -> Seam, to select all seams.
  • Press CTRL + E -> Edge Split.
$\endgroup$
2
  • $\begingroup$ Thank you for that, interesting how you provided an answer to do the task through scripting and @cegaton to do so visually. $\endgroup$ Jul 11, 2014 at 4:29
  • $\begingroup$ This script allow one to do crazy deformation magic and should be included as an add-on. $\endgroup$
    – Jackdaw
    Mar 22, 2019 at 20:01

You must log in to answer this question.

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