7
$\begingroup$

I need to create a spherical object with an irregular 3D texture. Think of a globe of the Earth with actual raised topography for mountains, etc. The purpose is to 3D print the object, so the texture must be physically raised, not just an image texture.

I have a 2D image of what the texture looks like, and am looking for a way to map it onto a sphere. Here is an image I found that is close to what I'm talking about (although the textures I'm using are irregular, not a repeating pattern):

enter image description here

There are similar questions here and here, though both refer to mapping onto a flat plane rather than a sphere. Unfortunately, the darkness/lightness in the images alone doesn't determine the height of the topology, since the lighting in the image affects this (see above example image).

As far as mapping the entire sphere, it is acceptable to mirror the image and map it to the opposite side, meaning one circular picture can be mapped to one half of the sphere, and the mirror image of the same picture can be mapped to the opposite side, therefore covering the entire sphere (and causing the topology to line up correctly).

I'm in no way an artist, and the textures in some cases are pretty complex, so trying to recreate them by hand is out of the question.

How can I map the image to a sphere in blender to achieve the 3D texture from the image?

$\endgroup$
4
  • $\begingroup$ Have you considered using a normal map? CrazyBump is a good application for things just like this $\endgroup$ Jun 30, 2016 at 1:46
  • $\begingroup$ @SammySwanson Hmm, I'm looking at Crazybump now and it looks like it might be promising. However, it seems you can only export the map as an image file. How would I go about taking this map and modeling it onto a sphere in Blender? $\endgroup$
    – nanoguy
    Jun 30, 2016 at 2:40
  • $\begingroup$ To apply ALL the textures created from CrazyBump, I'd suggest following this tut:youtube.com/watch?v=W07H7xeUnGE it's a little complicated but easy to get used to. To apply just a normal map, run the image through a normal map node and mix it with the orginal image. $\endgroup$ Jun 30, 2016 at 2:57
  • $\begingroup$ Heres a picture of using just the normal map: imgur.com/BkFB3bq $\endgroup$ Jun 30, 2016 at 19:09

2 Answers 2

14
$\begingroup$

This can be done with a base shape, two array modifiers and two simple deform modifiers controlled by two empties:

enter image description here

Modelling from top view, create with a basic shape that is symmetric on both x & Y axes, so that it can be tiled.

enter image description here

(click on the image to enlarge)

Add an array modifier to repeat the base shape on the X axis.

enter image description here

(click on the image to enlarge)

Add a second array to repeat the shape twice as many times on the Y axis.

enter image description here

(click on the image to enlarge)

Now you need to find the center of the object. To do that apply both array modifiers.

Enter Edit Mode (Tab), select All (A) and press ShiftS and select Cursor to Selected. The 3d cursor will then snap top the center of the array.

enter image description here

(click on the image to enlarge)

Exit Edit Mode (tab) and press CtrlZ twice, so that you undo the cation of applying the modifiers (that will allow you to further refine your base mesh)

enter image description here

(click on the image to enlarge)

Add a new empty and rotate it 90 degrees on the X axis RX90.

Select your base object, add a Simple Deform Modifier, set it on Bend Mode, select the Empty as Origin and set the deform angle to 180

enter image description here

(click on the image to enlarge)

Add a second empty object and rotate it 90 degrees on X and 90 degrees on the Z axes: RX90, RZ90.

Select your base object again and add another *Simple Deform modifier, also set Bend, use as the 2nd empy as origin and make the deformation 360 degrees.

enter image description here

(click on the image to enlarge)

At this point you can further refine the basic shape to suit your needs and also decide if you want to apply the modifiers.

BUT THAT WAS NOT THE QUESTION

The question was how to do this with a 2D texture

Same thing but with a displacement modifier:

Create the tiled texture first:

enter image description here

Import it using **import images as as plane* so that a UV unwrapped plane is created with the dimensions of your texture:

enter image description here

Add some subdivisions in edit mode (W:

enter image description here

Add a displacement modifier.

enter image description here

Set the image to be used as displacement texture ( use the same image used for the plane):

enter image description here

In the displacement modifier set the direction to normal, texture coordinates to UV, select the UV and set the strength of the deformation.

enter image description here

Create your arrays:

enter image description here

And set the simple deform modifiers using the steps outlined earlier:

enter image description here

If your texture seems reversed, then just change the strength to a negative value.

FOR NON REPEATING TEXTURES

The procedure is the same, except that you don't need the array modifiers.

Import the relief image as plane.

Enter edit mode and subdivide it.

If the mesh with the image is wider on the X axis, rotate it 90 degrees in the Z axis, so that the mesh is taller on the Y axis when seen in top view.

Add a displacement modifier.

enter image description here

Add the empties and rotate them,and add simple deform modifiers using the empties as Origin.

enter image description here

Note: This answer is blatantly based on Leon Cheung's answer here: https://blender.stackexchange.com/a/24053/1853

$\endgroup$
9
  • $\begingroup$ ALSO RELATED: blender.stackexchange.com/a/13927/1853 $\endgroup$
    – user1853
    Jun 30, 2016 at 8:23
  • $\begingroup$ how to explain the "magical proportions 2x1". OK because 360 = 2 x 180, but we are suppose to bend the mesh here... so this is not self evident to me... ? What I mean is that if you turn the plane 90° (edit mode) you dont obtain a close shape (I was expecting something ovoide, but this is not the case) $\endgroup$
    – lemon
    Jun 30, 2016 at 11:46
  • $\begingroup$ @lemon can you post an image of what you are getting? $\endgroup$
    – user1853
    Jun 30, 2016 at 17:18
  • $\begingroup$ Sure, cegaton : i.gyazo.com/5442556acf1bfe8f5c1dccbd6dff4e65.gif $\endgroup$
    – lemon
    Jun 30, 2016 at 17:24
  • $\begingroup$ @lemon if the mesh is twice as tall already in Y don't rotate it. $\endgroup$
    – user1853
    Jun 30, 2016 at 17:26
1
$\begingroup$

If what you have is a relief map image contained within a circle:

enter image description here

Then just create a UV sphere.

Set your view to orthogonal (numpad 5) and select top left or front view (numpad 7, 1 or 3)

Enter edit mode, select all and pres U to unwrap, and select Project from view (bounds)

enter image description here

so that the resulting UV map looks like this:

enter image description here

Add a displace modifier, set it to UV coordinates and select the UV map

enter image description here

Set the displacement texture to use the image that contains the relief map.

enter image description here

Set the strength to a reasonable value.

enter image description here

The quality of the deformation depends entirely on the mesh density. You might need a lot more subdivisions. You can either subdivide the mesh, or add a couple of subsurf modifiers one before the deformation to have more detail, and one after to have a smoother result. Use caution so you don't end up with an amount of vertices beyond what your computer can handle. Read this link

enter image description here

If you end up with a very large number of vertices it might be a good idea to apply the modifiers and then use a decimate modifier to decrease the number of vertices without changing the overall shape.

Note. By using this method you will have mirrored hemispheres, depending on the quality of your relief map they might be an issue...

enter image description here

$\endgroup$

You must log in to answer this question.

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