Discussion in 'Software and Applications' started by jonathanjfshaw, May 11, 2009.

  1. jonathanjfshaw
    jonathanjfshaw New Member
    I'd really appreciate any advice on this ...

    I'd like to have textures in my 3d printed models - woodgrain, sand, rock, etc. (don't worry aout the actual printing problems o getting enough resolution, my question is about software)

    And I don't want to have to sculpt these textures carefully piece by piece. If I do that, it's going to cause me grief if I want to keep tweaking the structural geometry at a later date. I'd like something simple, where I could click on a surface any time and choose the texture it has. And I'd like to be able to call on a reservoir of already made textures.

    This is exactly what "textures" offer in 3d modelling apps, but those are nasty fake things that only show up in an onscreen renderings. Obvious to be 3d printable I need something that can actually be applied to the mesh itself.

    I've heard something about being able to convert a displacement map into mesh in Blender, but it sounds evilly complicated (what doesn't in Blender?). My models are fairly simple CAD like shapes, I don't mind what software I use, just the simpler the better...

    Any ideas? What key words should I be googling for more help?

    O imaginr ther's a way to do this in Zbrush and similar sculpting programs by creating some kind of custom brush and then stroking the surface with it, but it'd be nice if there was a simpler/quicker way - I need to make a lot of models.

  2. WiKKiDWidgets
    WiKKiDWidgets New Member
    Hi jonathanjfshaw;

    Indeed the highly evil program Blender is capible of converting displacement maps into mesh data. It isn't all that difficult.

    Open your model in Blender. Hit the {F5} key and give your model a material. Anything will works as we are only concerned with the Texture. Hit the {F6} key and give it a texture. This will be your displacement map (Or Normals map). Set your Texture type to Image. Under the middle column (Map image) click the {Normal Map} button and then over to the far right column (image), click the {Load} button, and select your Displacement map. (Wood grain, Rocks, bumps, etc, etc.) Once you have found the map you want, click the {Select Image} button in the upper right hand corner. Now we need to go back to Materials {F5} and look to the far right hand column. You will see 3 tabs labled Texture, Map Input, Map to. Select the middle tab {Map input} and then choose the {Cube} button. (This is assuming your object is Cube-like in nature.) Now go to the last tab {Map to} and de-select {Col}. (this turns off your texture effecting the color of you mesh) and then click the {Nor} button. This tells Blender that you want your texture to effect the Normals. Now here is where it gets a bit 'Evil' The displacement of you models surface requires extremely high amounds of vertices. You can accomplish this by subdividing you mesh several times. First, you need to go into edit mode. {tab} You will now see the individual verticies that make up your mesh. To subdivide the mesh, first hit the {W} key on your keyboard, and then select the top menu itme that pops up {Subdivide}. Repeat this until your verties make a pretty solid mass. (Remember, these are going to follow your Grain from your Displacement map, so a great deal of them are required.) Once you feel you have enough, Exit it back out of edit mode. {tab} and then we need add the Displacement Modifier. First hit your {F9} and then look to the far right column. You will see the {Add Modifier} button. and go up to the {Displace} option. Now you need to tell Blender which Texture to use to displace you Mesh.The defalt Texture name is"Tex", so type this into the {Texture} box. You should see your mesh deform instantly. (asumming you got it all right). Now, you need to manipulate the degree to which your mesh is deformed (Or displaced) by your texture. Do this by changing the {Strength} value of you Modifier. (I'd suggest .1 to start.)
    Hopefully that will get you started.

    Good luck!

    WiKKiD Widgets
    Last edited: May 22, 2009
  3. WiKKiDWidgets
    WiKKiDWidgets New Member
    Oh, one last thing, you can need to hit Apply for your deformation to become permanent. Then you can Export your medel to STL from the File menu.

  4. jonathanjfshaw
    jonathanjfshaw New Member
    Wikkidwidgets, that's totally awesome!

    Thankyou so much - I followed your instructions and got a good result. Thanks for taking so much time to spell out every little step - without that I would have got stuck for sure being Blender clueless.

    If you've taken all that time to do that, I'd like to go a step further and post this as a tutorial somewhere for the benefit of other people - can I credit you?

    One catch for my own work though, maybe you could advise me on. If I have say a cube, and I want to texture only 1 side and leave the rest undisturbed, how do I do it? In Blender I texture the one side fine, but while the other connected sides aren't textured fully, they're still affected. To be precise. the texture has x,y,z dimension effects on main textured face, and its opposite onthe bottom side, with only the x,y dimension on the side faces. How can I keep the side and bottom clean?

    Now I think of it, maybe the answers obvious. I could texture a seperate plane then merge that with a clean cube?

    Many many thanks - you've made my day!

  5. WiKKiDWidgets
    WiKKiDWidgets New Member
    {{Edited: Just realized that either HTML or BCC was interpreting some of my formatting. Changed it so you can read it properly now}}

    Glad I was helpful. you are free to do with the information as you will. Blender is open source and I try to support others like I was supported when I was new to Blender. (Of course that was like 11 years ago. hehe) Although, this is most likely tutorialized out there somewhere already.

    As for your other question, effecting a specific surface. Your best bet would be to use Vertex groups. A vertex group is exactly what you would think it was. A group of vertices.

    To create a vertex group, first enter Edit mode {tab} and then select the vertices you want to be in the group. You can select/deselect all vertices by hitting the {A} key. Additionally, you can set the mesh transparent/non-transparent by using the {Z} key. Now, to select the verticies you want as part of the group, you use the {B} key. The first time you hit the {B} key, it will give you a box cursor. This is handy for grabbing a flat surface. The second time you hit the {B} key, it will give you a circular selection tool. Better for grabbing more organic shapes. (If you have a mouse wheel, you can pan around you scene by clicking it and moving the mouse for a better point of view on the Vertices you are trying to select.) The numeric keypad will reset you view to various predefined views. {7} top view {1} front view {3} side view.

    Ok, now that you have a rudimentary idea of how to select the vertices you want, lets assign the to a group. hit the {F9} key and on the far left panel, (called Links and materials) you will see the Vertex grouping parameters. Click the {New} button to create a new Vertex group, and give your new Group a name in the box above. (You will need this later.)
    Now you hit the {Assign} button, and the selected vertices will be assigned to your new group.

    Now one thing I haven't figured out is how to make say the front surface of an object to be the face that gets displaced. To get around this, I have just made what ever surface I am trying to deform, face upwards. To do this you use the {R} key to rotate you model. (You can also turn on the meshes Transform properties window using the {N} key, this is helpful to rotate somethig exactly 90 degrees because you can type it in instead of guessing or 'eyeballing it') Once you have the surface pointed upward, you need to apply the rotation to the model. You do this by hitting {CTRL+A} It will prompt you with a few selections, just choose the first one. (Scale and Rotation to ObData)

    Now the surface you have assigned to the Vertex group should take on the 'texture' you have assigned to it.

    Hit the {Apply} button of you modifier to make the displacement permanent. Then export.

    Hope that helps ya mate!
    Last edited: May 22, 2009