I have this twisted rope created from a bezier circle with modifiers. To reduce the overal poly count I want use discplacement map for this. So my question is how can I bake a displacement map of this object so I can apply it to a simple cylinder?
-
3$\begingroup$ Hello :). A displacement map probably won't help with polycount that much. But a normal map could work really well in this case. $\endgroup$– jachym michalCommented Nov 18, 2020 at 14:25
-
$\begingroup$ Hi Jachym, I'm probably going to use these objects in another renderer and for that reason I'd really like to learn how to make a displacement map out of this. $\endgroup$– MenoZindCommented Nov 18, 2020 at 15:08
-
$\begingroup$ Search for highpoly to lowpoly like here blender.stackexchange.com/a/88700/2214 $\endgroup$– vkliduCommented Nov 18, 2020 at 18:47
2 Answers
Since you're baking scalar displacement from a cylinder, the set-up isn't too bad.. the illustration below shows the rope shaded with its height-map-to-cylinder.
Assuming your rope has its object Z axis straight up its core, with this tree, you put the radial distance from its surface to an (imaginary) cylinder, in this case with radius of 0.65, straight into the strength of a pure-white emission shader.
Put the UV unwrapped low-poly cylinder in the same location as the rope, at the world origin, and bake the emission from selected (the rope), to active (the cylinder) Bake into a floating-point format, 16 bits will probably do.
Then the baked map can drive a Displacement shader for the cylinder:
The cylinder, displaced, is on the left, next to its baked height-map, and the original rope on the right.
It is possible to bake Vector Displacement .. it gets a bit more complicated, with an intermediate map of World-Space positions baked for the Hi-res object, from which positions of the Lo-res object are then subtracted, and baked again, into an exactly corresponding UV map.
-
$\begingroup$ .. although, as you can see, in this particular case, a procedural wave texture would do the job without baking an image. $\endgroup$– Robin Betts ♦Commented Nov 19, 2020 at 7:40
-
$\begingroup$ Hi Robin, what node did you use for Length node? I can't seem to find it. $\endgroup$– MenoZindCommented Nov 19, 2020 at 14:00
-
$\begingroup$ It's one of the options in the Converter > Vector Math node, sorry, I should always remember to clarify that. I will edit, once you've got it working, if you try it, and nothing else has come up, that's not clear enough. $\endgroup$– Robin Betts ♦Commented Nov 19, 2020 at 14:05
-
$\begingroup$ Thanks!. I've added the nodes and had to increase the substract value to make the black/white colors visible. But for some reason the top and the bottom of the twisted object now has a white glow. $\endgroup$– MenoZindCommented Nov 19, 2020 at 16:32
-
$\begingroup$ The projection is radial, the caps should just follow along, without any displacement of their own.. I wouldn't bake those.. or make sure they are pitch black. But there will be a problem for the renderer, generating the geometry to go over the sharp corner.. there would be with any map. If you don't mind a bevel to the caps, or rounded ends, model them in before the bake, that might give the renderer a hand. $\endgroup$– Robin Betts ♦Commented Nov 19, 2020 at 16:50
Highpoly to Lowpoly
- Add Cylinder (lowpoly) at the same place as rope (highpoly) and Unwrapp Cylinder
- Add material - the only one thing that matters is add Texture node (New) and keep this node selected
- Under Bake choose Bake Type and enable Selected to Active
- Select highpoly (rope) than lowpoly (cylinder) with Shift
- Bake
Bake Normal
With Cycles you can bake Normals (not Displacement)
Bake Displacement
To bake Displacement you would have to download 2.79 and use Blender Internal (BI) engine that has this feature. To let Blender know what Image texture to use - switch lowpoly to edit mode, select all vertices, go to UV/Image editor and press New (to generate image). Blender bakes into image actually used in this editor.