Convert Material Displacement to a Mesh with Blender

➤ Grab your FREE copy of Press Start | Your first Blender Project - b3d.cgcookie.com/RE5tfS
In this Blender tutorial, discover how to convert your material-based displacement, that's only visible at render time, into an editable mesh version using Blender 2.8.
"I WANT MORE CG COOKIE IN MY LIFE!"
Got it. Here's where you can reach us!
/ cgcookie
/ cgcookie
/ cgcookieinc

Пікірлер: 153

  • @nv7287
    @nv72873 жыл бұрын

    1:35 begins 3:15 render settings: Cycles, Experimental, Sampling = 1, Tiling (your final texturesize should = tile size) Emit baketype, make UVs, Select your map (32bit) - make it active then bake. 4:47 SubDiv settings 5:46 adding displaceModifier

  • @nikokatsantonis1664

    @nikokatsantonis1664

    5 ай бұрын

    thanks, this guy forgot how to make a youtbe video

  • @shadowflar3
    @shadowflar34 жыл бұрын

    7:09 it looks shifted because you have Displace modifier Direction set to "RGB to XYZ". This is converting greyscale image values to diagonal vectors that have X and Y component in addition to Z. For this case you'll want to set it to "Normal" or "Z" which will both work to reproduce exactly the same result as displacement node.

  • @0x8080FF

    @0x8080FF

    4 жыл бұрын

    But if you look at the node setup, he didn't actually use the displacement node at all (although he should have). He just plugged the displacement straight into the material output, which *does* do the same thing as setting "RGB to XYZ" in the displace modifier. Basically he did it wrong in the shader, and then did it wrong in the displace modifier to match. So that's not what's causing the slight discrepancy at the end.

  • @lebronzejames9738

    @lebronzejames9738

    2 жыл бұрын

    This should be massively upvoted. He did a good job and this suggestion improves upon it! Now that's teamwork ;)

  • @Plrang
    @Plrang5 жыл бұрын

    Cool, that should be available as some automatic feature

  • @luizricardorobertooliveira2355

    @luizricardorobertooliveira2355

    Ай бұрын

    do you know some way to do ?

  • @KevinRMoore
    @KevinRMoore4 жыл бұрын

    This worked out awesome thanks for the share! I've been working with procedural landscapes and adding a particle system in the scene was impossible. Now I can generate endless landscapes, bake and add trees. Thank You!

  • @workflowinmind
    @workflowinmind5 жыл бұрын

    I hope this video will be obsolete soon. Don't get me wrong, it's just so cumbersome for such a simple task... And I'm impatient for the texture nodes to be done. That will allow using custom networks on texture.

  • @Jham3D

    @Jham3D

    Жыл бұрын

    3yrs later but depending on your scenario, it can be done pretty quickly with geometry nodes now since you can apply the modifier. I've only tried it with basic displacements but I don't see why more complex textures wouldn't work. If they don't now, I'm sure they will soon.

  • @namesurname624

    @namesurname624

    3 ай бұрын

    @@Jham3D got a link? this video is obsolete now i guess, bake doesn't give results at all

  • @alexandreancel6423
    @alexandreancel64235 жыл бұрын

    Awesome tip ! Thanks Ian !

  • @ttanfield5616
    @ttanfield5616 Жыл бұрын

    In terms of how your node tree should be set up (because I felt it was ambiguous in this video): 1. Make your displacement map in the node material editor in it's entirety. 2. When you're happy with it, remove your final displacement node, and replace it with an emmision node. Such that the order of nodes are: [Group of general nodes to create your desired displacement map] > Emision Node > Material Output (Surface) It's 2023, Blender v3.5, is there an easier way to do this? A plugin? A feature? Anything than this method that feels like a hack?

  • @protraheric5097

    @protraheric5097

    Ай бұрын

    Yell at Chat GPT until it gives you a python script to automate this, then sell the add-on for $10 on Gumroad. If someone does this, I will accept payment for the idea.

  • @mainecoon6122
    @mainecoon61225 жыл бұрын

    The best I've seen in a year or two.

  • @pmaegerman
    @pmaegerman5 жыл бұрын

    Great for 3D printing, thank you

  • @jammacrob
    @jammacrob5 жыл бұрын

    being able to use eevee with the height map through the modifier stack and then also being able to create geometry from a displacement function is amazing...

  • 4 жыл бұрын

    This is what I was looking for since 11pm. Now it's 3.40am but totally worth it. Huge thanks to you mate.

  • @veith3dclub

    @veith3dclub

    3 ай бұрын

    my life as a comment

  • @nisimjoseph
    @nisimjoseph4 жыл бұрын

    Finally, a way to do it, and it looks great! thank you for sharing!

  • @joshguillaume
    @joshguillaume4 жыл бұрын

    Great video, thank you. Late to the party, but shift looks to also be from Catmull-Clark subdivide. It's rounding the edges. Using Simple subdivide fixes it and will keep symmetry from World Creator.

  • @davidcheng3573
    @davidcheng3573 Жыл бұрын

    Such an amazing tutorial!As a product designer, I will try to find out how to apply on cylindrical surfaces seamlessly.

  • @Suzuki_Hiakura
    @Suzuki_Hiakura Жыл бұрын

    AWSOME TUTORIAL. Been needing this

  • @BobDuffy
    @BobDuffy4 жыл бұрын

    Wow, thank you for posting. I have a project with lunar landscape that's perfect for this

  • @ScottVanKirk
    @ScottVanKirk4 жыл бұрын

    Thanks for sharing this. Kudos to the ones who discovered it and Double kudo's for giving them credit. And as always, thanks Mom for not drowning me as a child.

  • @-Belshazzar-
    @-Belshazzar-4 жыл бұрын

    Just what I was looking for. thanks!

  • @benparker2522
    @benparker25223 жыл бұрын

    For anyone just getting a black image after baking the UV, you might have forgotten to make an emission node. The multiply (or in my case displacement) node plugs into an emission node, then into the material output or a view node. I was making that mistake and banging my head on the wall for a while...

  • @TheDJkarsy

    @TheDJkarsy

    3 жыл бұрын

    It still doesn't work, no idea what I'm doing wrong... :(

  • @Jmvars

    @Jmvars

    2 жыл бұрын

    I baked without an emission node and it worked for me. I'm on 2.92.

  • @rp1566
    @rp15664 жыл бұрын

    Many thanks for sharing!! Liked subscribed and i will make to mention your channel as a resource in my projects.. Thanks again!

  • @t.c.g.9324
    @t.c.g.93244 жыл бұрын

    Ohhh yeah, this worked perfect. Thanks allot. I needed that.

  • @Charliechoes
    @Charliechoes3 жыл бұрын

    Thank you Ian Johnson, Thanks CG Cookie! This is rich!

  • @sasaha8389
    @sasaha83894 жыл бұрын

    Thanks i need this since displacement maps are sooo heavy on my gpu. My gpu however can deal with a mesh rather than a displacementmap

  • @vladislavtasic3377
    @vladislavtasic33773 жыл бұрын

    Bless you man! This helped a lot!

  • @nathanpotter1334
    @nathanpotter1334 Жыл бұрын

    Still applicable to 3.2 - Well done Ian and Cookie

  • @danielhandle4061
    @danielhandle40613 жыл бұрын

    Also nice to mention would be that this way on top of the terrain being displaced you can add a texture displacement.

  • @Deretythe
    @Deretythe5 жыл бұрын

    After you set displacement to "RGB to XYZ", I think you should also set Space to "World". Your procedural displacement was plugged directly into the Displacement material output, which uses world-space coordinates. This will make a difference if your mesh has any scale or rotation. If you ran your procedural displacement through a Vector Displacement node first, you could set that to Local, and bake the _input_ of the Vector Displacement to get a local-space displacement texture. Unfortunately, it doesn't look like there's any way to support Tangent-space displacement in the modifier, just the shader, but at least this technique gives a way to bake from Tangent to World (by baking after the Vector Displacement node) and then get real geometry from that. Thanks for sharing!

  • @atk1152
    @atk11523 жыл бұрын

    thanks for for Tutorial, now i can work on making Muddy Terrain with this

  • @ChristinaMcKay
    @ChristinaMcKay5 жыл бұрын

    Thanks Ian and Kent

  • @StephenCoorlas
    @StephenCoorlas2 жыл бұрын

    Whoa. Nice work.🤘

  • @pths3907
    @pths39073 жыл бұрын

    If anyone struggling with slight offset, here is my solution that results in 100% accuracy, promise! Overlaying procedural displaced and modifier displaced meshes, one red, one white, result in a super high detailed noise meaning they are identical, also on the edges no gaps. Solution is, don't turn of subdiv modifier for baking! Instead use same view and render subdiv level. Additionally in Render baking settings i put margin down to 0 and delete harsh edges later. Otherwise you'll get imperfect edges if it's at default 16px. This baked map you put in direction rgb to xyz in displace modifier and midlevel down to 0. (Ah, by the way, i bake from displacement node, if you don't, try other direction settings, don't know if it works). In Texture Properties of baked map, turn off half float precision and under colours, disable clamp. Ah, and of course the displaced mesh needs same subdiv levels like highest subdiv of original mesh. Thats it! I worked that out because i need 100% accuracy for a particle system for grass on a complex rock so the grass really sits on the surface. It works!

  • @ChrisChoiThird
    @ChrisChoiThird4 ай бұрын

    This is good tip. Thank you so much.

  • @martinwidmann6714
    @martinwidmann6714 Жыл бұрын

    Great info!

  • @babakjamcg
    @babakjamcg2 жыл бұрын

    thanks mate this is very useful

  • @gold_twisted
    @gold_twisted3 жыл бұрын

    Ian Johnson. The Man, The Myth, The Legend.

  • @ProfessorShyguy
    @ProfessorShyguy3 жыл бұрын

    The frustrating part is the whole emission situation that isn't in a basic node setup. That's passed right over so none of my setups work with emission baking.

  • @RealDaveWinter

    @RealDaveWinter

    2 жыл бұрын

    Yeah, you need a custom plugin for this to work, but it's not mentioned in the video. So this won't work out of the box.

  • @ClintMoody

    @ClintMoody

    2 жыл бұрын

    Just send the final displacement through an emission node. Easy

  • @ClintMoody

    @ClintMoody

    2 жыл бұрын

    @@RealDaveWinter Node Wrangler comes with blender and is mentioned being used in the video

  • @user-qs1kq9qz6k
    @user-qs1kq9qz6k3 жыл бұрын

    Nice way to create mesh landscapes, special with decimate modifier. I think it would be helpful to make a script on this procedure.

  • @badrahmed9591
    @badrahmed95915 жыл бұрын

    This is very useful for 3D printing But *how do i control the height ??* What if i wanted a 3mm height for 3d printing 🤔??

  • @genraw5137
    @genraw51372 жыл бұрын

    That helped! Thanks man

  • @yujinzushi9671
    @yujinzushi96716 ай бұрын

    Still works after 4 years 👍 For identical result just tweak Displace Midlevel value to 0

  • @Flandelacasa
    @Flandelacasa4 жыл бұрын

    Hi Kent! I'm looking for a way to clone several image maps simultaneously, for things like tiling. Say I did the photogrammetry of the bark of a tree, and I want to use the actural height map of the tree that I baked from the multires. I thought materialize would do the tiling part of the trick but it only does it to the generated images taken from the diffuse map, it does not do it to the displacement map. This should be somewhere in Blender, and if it doesn't exist yet, it might be the first step to make Blender more like Substance. The other idea would be to automate, like Photoshop does. I could save the actions of cloning the diffuse and then applying them to the other maps, but I would like to be able to do this in open source software too.

  • @mikehattias5837
    @mikehattias58374 жыл бұрын

    Thanks a lot

  • @RomboutVersluijs
    @RomboutVersluijs5 жыл бұрын

    Okay, i hardly did baking. But i wasn't aware that samples where influencing the bake renders. Nice tip! So thats basically why i somtimes had insane bake times. That would make sense than

  • @RomboutVersluijs

    @RomboutVersluijs

    5 жыл бұрын

    PS Emit baking is the fastest method correct?

  • @RomboutVersluijs

    @RomboutVersluijs

    5 жыл бұрын

    PS wasnt it showing washed out because you had linear applied instead of Non-Color data?

  • @jrgenfrderbergtvedt7506
    @jrgenfrderbergtvedt7506 Жыл бұрын

    Thank you so much 🖤🐺🤘🏻

  • @kaiguo8373
    @kaiguo83733 жыл бұрын

    Is soooooooooooooo cooooooooooooooooooooooooool!! I like it! Thank you!

  • @ermerk
    @ermerk Жыл бұрын

    It still works even in 3.3!

  • @copypaste3526
    @copypaste35264 жыл бұрын

    Shwifty! Can I do something similar with the node output from an actual displacement node? Because there I am getting a colored displacement map. I'm guessing it's displacement in all directions. Because if I multiply the output of that node it loses all displacement information except for the z axis one. Am I doing something wrong. I amusing the Poliigon plugin for textures.

  • @kaibe5241
    @kaibe524110 ай бұрын

    Oh this is dope. Would save sooooo much processing :D

  • @zachhoy
    @zachhoy3 жыл бұрын

    perfect!

  • @bigalkool2897
    @bigalkool28972 жыл бұрын

    I've been looking for 2 days how to convert heightmap data to actual editable mesh. Turns out it's a single press of a button. Thanks a bunch god bless u

  • @Soturi4k
    @Soturi4k4 жыл бұрын

    Has anyone gotten this to work with Cesars procedural Rocks file? I can’t get it to bake correctly.

  • @cibartifex1482
    @cibartifex14822 жыл бұрын

    thanks

  • @daverhin5975
    @daverhin59754 жыл бұрын

    I download alot of model from sketchfab to 3d print and they come with bitmaps and textures. When i load the model in blender it looks awesome but when I export as an stl for 3d printing all the details go away. Is there an easy way to add them into the mesh? since its not a model I made it dont have that texture window... Im not a modeler at all

  • @skyelou5825
    @skyelou58253 жыл бұрын

    Can I bake an animation of texture to displace with it later?

  • @ackkipfer
    @ackkipfer4 жыл бұрын

    i wish this could be one click feature on blender! Perhaps there's an addon for it already? Does any one know?

  • @iGPetry

    @iGPetry

    4 жыл бұрын

    pleaasee

  • @Specoolar

    @Specoolar

    4 жыл бұрын

    I made one kzread.info/dash/bejne/iqGMx81shLPAfM4.html

  • @bia_campos

    @bia_campos

    3 жыл бұрын

    @@Specoolar THANKS A LOT! For those seeing this comment section, it is really worth the try

  • @TheDarkAnus

    @TheDarkAnus

    3 жыл бұрын

    @@Specoolar Just tried it, really awesome !!!! thanks you deserve some money for that

  • @klaudialustig3259
    @klaudialustig32592 жыл бұрын

    If you get "No valid selected objects", make sure to select your object in object mode in the scene collection.

  • @matslarsson5988
    @matslarsson59883 жыл бұрын

    Is this still the way to do it, or has something better and faster emerged?

  • @Sosapatram
    @Sosapatram2 жыл бұрын

    it is perfect to me your tutorial, but what about the displacement shader becomes from a image secuencie, or movie, can I export my mesh with my displacement animation?? im super lost with that that you very much :)

  • @petertremblay3725
    @petertremblay37254 жыл бұрын

    I don't get the part about the emission shader so i think something is missing here?

  • @BAYqg

    @BAYqg

    2 жыл бұрын

    press on CONTROL + SHIFT + LEFT MOUSE BUTTON on the latest node of your displacement chain. But it will only work if you enabled NODE WRANGLER addon.

  • @_MaZTeR_
    @_MaZTeR_2 жыл бұрын

    Could you in theory rebake a low res normal map of a video game character to a high res version (say, 1024x to 4096x) by basically converting the low res normal map into a displacement map, then using this tutorial to add the map to a high res geometry, baking the modifiers to a new high res topology, doing some changes to the topology to smooth out any rough edges and bake that into a high res normal map? Sounds better than just using A.I upscale on the normal map texture because most of the time it'll add some weird sharp edges and artifacts to places that shouldn't look like the final result of the upscale.

  • @nv7287
    @nv72873 жыл бұрын

    2:09, 2:30 Setup Texture 32Bit, 259 UV, 3:15 settings, Emit b3:42, 4:12. Create mesh 4:50, 5:26 load 32 bit,

  • @MaxIzrin
    @MaxIzrin Жыл бұрын

    Since I'm a beginner, and this shows up as the first search result, I feel that I need to point out that this is no longer needed. *There's a displacement modifier,* that you simply apply after configuring to your liking.

  • @kelvinrodriguez278
    @kelvinrodriguez2783 жыл бұрын

    After this becomes a mesh would I be able to return to Eevee and use it in a animation?

  • @animeshirk9751
    @animeshirk97514 жыл бұрын

    Could someone help me here? I got the displacement exr just fine but it when I add the displace modifier and load the exr the mesh doesn't change.

  • @milesertl4394

    @milesertl4394

    3 жыл бұрын

    Same

  • @raphsing
    @raphsing4 жыл бұрын

    rgb to xyz not worked well to me the displace laying to a side like if the wind blow my mountains

  • @linhbui7088

    @linhbui7088

    3 жыл бұрын

    did you fixed this bug?

  • @ananthanarayananr9176
    @ananthanarayananr91765 жыл бұрын

    Is there a trade off between the two methods ? Like rendertime vs space

  • @khtrammell

    @khtrammell

    5 жыл бұрын

    For this scene the procedural displacement (adaptive subdiv) took 19 seconds to render on my GPU. The converted mesh took 6 seconds. The tradeoff is potentially the perceived detail in the render, where a static converted mesh is limited compared to adaptive subdiv.

  • @ismayilkismu906
    @ismayilkismu9063 жыл бұрын

    the noise textures changes seed value for me is there any way to fix that.i want to use a particle system

  • @21EC
    @21EC2 жыл бұрын

    I followed your steps very carefully and did exactly what you said but it does not work for me in the end, I noticed my texture colors are not black/white like yours tho (they are bluish instead), could that be the reason it's not working?

  • @BBSHOCKZ
    @BBSHOCKZ4 жыл бұрын

    Would this speed up final renders? Is there much point in converting the displacement it a mesh to reduce render times?

  • @zebrainc829

    @zebrainc829

    3 жыл бұрын

    This will do exactly the opposite. You would use UV maps to reduce the render time ^^ (Yes a Year later but maybe someone else is thinking the same) ^^

  • @BBSHOCKZ

    @BBSHOCKZ

    3 жыл бұрын

    @@zebrainc829 thanks for the reply, I managed to figure it out in the end haha, but hopefully if anyone else has the same question they'll see your reply

  • @21EC
    @21EC2 жыл бұрын

    Does it actually carry over all of the geometry optimized info to the mesh from the shader displacement mesh? so the adaptive subdiv geometry would appear with the new mesh? I don't think so, so I don't get the point of this video if so.

  • @j_shelby_damnwird
    @j_shelby_damnwird8 ай бұрын

    Can this workflow be adapted to using a 2D image instead of a material (I want to generate a series of bas relief pieces for 3D printing)

  • @Woodythehobo
    @Woodythehobo4 жыл бұрын

    Shift ctrl click on node doesn't open a viewer or anything for me any ideas? Blender 2.8 release

  • @chriscollum9999

    @chriscollum9999

    4 жыл бұрын

    I think that might be a part of the node wrangler addon

  • @mariusnied8956
    @mariusnied89564 жыл бұрын

    My Texturebake is completely black. Can someone help me out? :/

  • @blendall5760
    @blendall57604 жыл бұрын

    YOU CAN BAKE COMPLETELY PERFECT DISPLACEMENT MAP! This method gives NO difference in render. And I suspect you don't even need that mad file format (depends on what quality you are looking for). First: bake vector to RGB, not only BW displacement channel Then follow the same steps (displace rgb to xyz, but (important!) turn off clipping colors at texture properties and set midlevel at displace modifier to 0. I tweaked some other properties but they look to give no difference. It just works, can explain better and full process if you failed, just ask in comments.

  • @blendall5760

    @blendall5760

    3 жыл бұрын

    @Linh Bui Hard to tell without file, you use proper nodes? Is your displacement map ok? No normals flipped?

  • @blendall5760

    @blendall5760

    3 жыл бұрын

    @Linh Bui when you bake output of displacement node you probably use bad image format that flattens the values (theyre not from 0 to 1 rgb). Use something like exr. Then use strength 1 on displace modifier, color to vector and midlevel 0 if i remember correctly, it should look the same as the effect of your nodes

  • @ronwatson3237
    @ronwatson32374 жыл бұрын

    works.

  • @hanfbrot
    @hanfbrot2 жыл бұрын

    How does the bake button know what to bake??

  • @nicksputnik9200
    @nicksputnik92005 жыл бұрын

    Would this method work on a textured model like a tank to get more surface detail into the mesh instead of putting all of the surface detail on there by hand?

  • @tomtomasz9798
    @tomtomasz9798 Жыл бұрын

    we need that in blender by - one click! - bought today poly heaven plugin!

  • @NinF37
    @NinF375 жыл бұрын

    YES

  • @menso3852
    @menso38522 жыл бұрын

    this still the only way of doing this as of 2.93?

  • @leatherandpoemscharmyman5774
    @leatherandpoemscharmyman57745 жыл бұрын

    is it useful for rendering an animation?

  • @khtrammell

    @khtrammell

    5 жыл бұрын

    Yes certainly. Let's say you wanted to animate a character walking through your procedural sand dunes. Without the ability to convert there would be no way to know where to place the character in the viewport since you would only see the flat plane. Converting it means you could accurately animate the character according to the terrain.

  • @leatherandpoemscharmyman5774

    @leatherandpoemscharmyman5774

    5 жыл бұрын

    @@khtrammell I need for an ocean for example , could be save me time for rendering process? I mean, make an ocean with ocean modifier and displace modifier is very good , but sometimes is heavy to render... could be this trick useful for me? in 50/50 (50 cool quality and 50 times for saving rendering) special because I have 4 o 5 characters in my scene fully rigged.

  • @khtrammell

    @khtrammell

    5 жыл бұрын

    @@leatherandpoemscharmyman5774 If your ocean is moving then no, this technique will help. The converted geometry is static where you need dynamic.

  • @rogerorchard2317
    @rogerorchard23175 жыл бұрын

    have not to look at the 32bit in blender lately did you say float? floating points are a really really bad way of storing data, real/integer data is better as they do not lose data

  • @Deretythe

    @Deretythe

    5 жыл бұрын

    There aren't any image formats supporting "real numbers", because certain numbers (e.g. transcendentals like pi, e) can't be represented digitally with infinite precision unless you also have infinite time or storage space. The closest thing we have are arbitrary-precision data types, which let you have numbers as precise as you can afford (in terms of time and space), but they're still not real numbers. In that sense, you're *always* losing data, unless the data you wanted to represent has a reasonably low, finite resolution. Integers are great for tracking real money, for example, because you normally don't care about fractions of a penny. (Loans and international exchange rates are a different story, of course, though you still want some representation without any rounding error). Integers aren't so great for distances: depending on the situation, you might care about things which are kilometers away, or millimeters apart, but you rarely care about the exact number of millimeters between things which are kilometers apart. Integer image formats have the problem of being fixed-precision: regardless of whether your values are large or small, you always have the same finite step size between adjacent values. If you need to deal with small values, you need a small step size (i.e. high precision), but if you need to deal with large values, you want a large range. If you have both a small step size and a large range, you have a huge number of unique values, which takes a lot of space per pixel. For example, consider a depth map. If you store it in a linear integer image format, and you care about values 1 millimeter apart, and your render distance is 40 kilometers (e.g. a window view in Manhattan), there are 40 million unique millimeter depth values possible for a given pixel. That takes about 26 bits per pixel (base 2 log(40km/1mm)), but there aren't any commonly-supported 26-bit formats, so you need the next largest supported format, with 32 bits per pixel. That gives you precision on the level of about 10 microns, which is pretty impressive (human hair is 50 microns wide), but it's also wasteful: you'll never see individual hairs for 99.9% of the distance. In fact, for a 4k render with 40 degree FOV, at a distance of 10 meters a single pixel is already 1.777 millimeters wide. (tan(40°/2) * 10 meter * 2 / 4096px) How far do you get with the next-smallest linear integer format, at 16 bits per pixel? 40km/2^16 ~= 61 centimeters, which is completely unusable as a depth map. 16-bit floating point actually does better: at 10 meters it can store a 2-centimeter difference. More importantly, the precision increases closer to the camera (1mm precision at 1 meter, 20 micron precision at 1cm), and you still get around 50cm precision at 1 kilometer (so, still more useful than 16-bit linear integer). A similar pattern applies for 32-bit float. At 10 meters, you get 1 micron precision, which is better than what 32-bit int gave at any distance. You also still get 0.1mm (100 micron) precision out at 1 kilometer, and 1cm precision around 40km (again, way overkill for rendering purposes). The other benefit to floating point formats is that you don't have a strict minimum or maximum value. For example, you can have depth values much farther than 40km; it just gets less precise the higher the values go. You can also have negative values, at the exact same precision the corresponding positive value has, without lowering your overall precision. A small handful of image formats (like TIFF) can store signed integers, which also support negative values, but that only leaves you with 31 or 15 bits for magnitude, halving your overall precision to make room for the negatives. All of these properties can be super useful for something like a vertex position in 3D space, or a displacement map for moving vertices around: your world doesn't need a limited size, and your displacement map doesn't need to be offset by 50% gray to support moving in both directions. Also, if your vertex positions are "local", i.e. relative to the mesh origin (which is useful for other reasons, like efficient transformation/animation support), you only run into precision issues when individual mesh objects are massive (so don't merge your life-size city into a single mesh if you can help it).

  • @Deretythe

    @Deretythe

    5 жыл бұрын

    ...In fact, Blender itself stores vertex coordinates as mesh-local 32-bit floats, so the most accurate displacement map format you can use _is_ 32-bit float. Your displacement will ironically be *less accurate* if you use 32-bit integer. And if you use some format strictly more precise than 32-bit float, it will just waste space (and RAM, and processing time), since it will be rounded down to 32-bit float regardless when applied to vertices. I should've just said that, but didn't think of it until after writing that wall of text; sorry. At least, it should give an idea of _why_ Blender (and most 3D apps) store vertex coords as float instead of integer.

  • @pyrotechnick420
    @pyrotechnick4203 жыл бұрын

    I followed along exactly but every time I baked I got a blank image with no data....I really would like to get this to work otherwise I would have to start my project over lol

  • @menso3852

    @menso3852

    2 жыл бұрын

    me too, did you figure it out. I AM using the emission shader and all that.

  • @pyrotechnick420

    @pyrotechnick420

    2 жыл бұрын

    @@menso3852 Hey so no I never was able to get this to work. I had to start my project over which wasn't a huge deal but this would have saved me lots of time :/

  • @menso3852

    @menso3852

    2 жыл бұрын

    @@pyrotechnick420 Baking with CPU not GPU works FYI for next time. I saw a comment with this tip after making this one.

  • @pyrotechnick420

    @pyrotechnick420

    2 жыл бұрын

    @@menso3852 holy shit you're kidding I always render with my GPU. Thanks for the tip!

  • @onprint4868
    @onprint48684 жыл бұрын

    4:49 ... where in the world can we get that subdivision surface .. levels?? wtf?!..

  • @JonnovanderRiet

    @JonnovanderRiet

    4 жыл бұрын

    You need to enable experimental in the Cycles render options

  • @matthewzaczeniuk4892
    @matthewzaczeniuk48922 жыл бұрын

    Can anyone help? This is not working for me. Every time I Bake the texture it comes out as a black/transparent texture with no data. I have tried Baking it with an emission node and without one and it still doesn't work. Any tips?

  • @RomboutVersluijs
    @RomboutVersluijs5 жыл бұрын

    WOW isnt it actually weird than that these 2 methods difference? I mean if the displacement on shader level also moves sideways, that looks buggy than?

  • @khtrammell

    @khtrammell

    5 жыл бұрын

    I'm not sure what you mean. Since this method is more a 'workaround' than an "official conversion", I don't think it's weird that there's a slight difference between the displacements.

  • @RomboutVersluijs

    @RomboutVersluijs

    5 жыл бұрын

    @@khtrammell i meant the displacement from the shading also went sideways, instead of only up in the modifier method. I would think they act the same.

  • @khtrammell

    @khtrammell

    5 жыл бұрын

    @@RomboutVersluijs AFAIK the default displace modifier only displaces along the mesh normal. But the shader's displacement can go various directions since it's compatible with vector displacement. But then that's where the RGB -> XYZ mode comes in handy for the modifier.

  • @RomboutVersluijs

    @RomboutVersluijs

    5 жыл бұрын

    @@khtrammell Yup i think the Vector Displacement is the difference here. Nice tut by the way, great tips!

  • @khtrammell

    @khtrammell

    5 жыл бұрын

    @@RomboutVersluijs Thanks!

  • @ludvigerdmann3352
    @ludvigerdmann33522 жыл бұрын

    I cant do the shift+controll clicking that are showed here: 1:40, anyone knows why?

  • @21EC

    @21EC

    2 жыл бұрын

    Yea, I figured out you have to have the node wrangler add on enabled (from Edit -> preferences -> add-ons)

  • @21EC

    @21EC

    2 жыл бұрын

    Then it works.

  • @ludvigerdmann3352

    @ludvigerdmann3352

    2 жыл бұрын

    Ok, thanks, I will try that

  • @no1famous890
    @no1famous8903 жыл бұрын

    Here's an easier version on this tutorial if anyone is interested: kzread.info/dash/bejne/lGyWzpOjgbG8g84.html

  • @mctechcraft7
    @mctechcraft75 жыл бұрын

    can we do this with animated displacements?

  • @remingtondaron
    @remingtondaron3 жыл бұрын

    MAKE SURE YOU BAKE WITH YOUR CPU NOT YOUR GPU, it will not output an image for some reason that I do not know why. Took me an hour to figure it out so I hope i save someone else the time. You can switch back to your GPU afterwards.

  • @drak0x6

    @drak0x6

    3 жыл бұрын

    Thank you, it worked for me, I add the fact that it is better to use a tile size of 16x16 or 32x32, it is faster to calculate for a CPU

  • @menso3852

    @menso3852

    2 жыл бұрын

    works, thanks.

  • @mikeyroberts126
    @mikeyroberts1262 жыл бұрын

    Cheers! Also try this video by Sanctus "Vector Displacement to Mesh" - kzread.info/dash/bejne/mJZ5m7eop9m1gLA.html

  • @yapanwolf
    @yapanwolf4 жыл бұрын

    my render stop at 0% and don`t want go ahead

  • @jonsk1402
    @jonsk1402 Жыл бұрын

    How is this not just a button? Blender already knows how to displace every single vertex... jesus

  • @paulatreides6711
    @paulatreides67113 жыл бұрын

    meaning heavy geo and 20s and 45 s to decimate and convert ..lol ,blender really need to improve how he handle heavy geo ..i wish blender would steal the displacement system in octane where you don't need subdividions

  • @subirin96
    @subirin967 ай бұрын

    Please like this to help others. To displace a mesh from an image, you don't have to use all these steps anymore. Just do the following: 1. Add "Subdivision" modifier (don't have to if it is already very high poly). 2. Add "Displace" modifier. 3. In the "Displace" modifier, at the top right corner, click the icon to the right of "X". 4. Select your desired texture image. 5. Under "Material", go to "Setting" and change "Bump" to "Displacement and Bump". Done. Don't have to deal with nodes.

  • @SimonBarke
    @SimonBarke4 жыл бұрын

    You want to add a Displacement node to your final Multiply and bake the color map. Then in the displacement modifier choose RGB to XYZ. :)

  • @Bitcoin_Baron
    @Bitcoin_Baron2 жыл бұрын

    Late to the party, but could you explain what you mean at 3:49 about baking emission? You just suddenly say a whole lot of things out of nowhere that really aren't explained at all. You haven't explained that bit at all. You say you are plugging into an emission node, but you were not earlier in the video.

  • @chasgiv4
    @chasgiv42 жыл бұрын

    I hate to be that guy, but there are a lot of skipped steps here that make this impossible to replicate.

  • @hameddesign70
    @hameddesign704 жыл бұрын

    No need for this amount of work , if Blender displace modifier just can work with nodes :|

  • @cg_cookie

    @cg_cookie

    4 жыл бұрын

    Converting it to a mesh can be helpful for having it interact with modifiers, physics, and all kinds of useful stuff

  • @hameddesign70

    @hameddesign70

    4 жыл бұрын

    @@cg_cookie can i send a link to you ?

  • @hameddesign70

    @hameddesign70

    4 жыл бұрын

    @@cg_cookie blender.stackexchange.com/q/155927/82714 can you see this link ?