This is awesome. Using this with all the quixel surfaces+nanite is going to be absolutely brilliant. Thank you so much for the clear and concise video!
@marcusjohnston3138 Жыл бұрын
My thoughts exactly, been trying to figure out a nice workflow and this seems to be tip top!
@olaufr2 жыл бұрын
This is immensely useful, thanks a lot for these videos.
@LoganPinney2 жыл бұрын
Fantastic Ryan!!! Please make more of these wicked BP tuts. I did not know about any of these nodes, soooo cool!!
@Retro_simone2 жыл бұрын
That frozen trick is awesome!
@ChristopherZoog2 жыл бұрын
Thanks for these vids! I have not found any documentation of geometry script so this is great!
@RyanSchmidtEpic2 жыл бұрын
Unfortunately as an Experimental feature in UE5.0 there will not be much documentation. Hoping to improve on that in 5.1
@MyGameDevPal2 жыл бұрын
Thank you Ryan!
@lucascavallari84897 ай бұрын
That's very nice! But any idea on how to make it work with nanite? Or maybe the standard tessellation change used on landscapes? I think nanite displacement over tessellates the objects, so it would be great if you have an answer on that.
@smithedits11 ай бұрын
Is there any way you can make a tutorial on how to animate this displacer and make sure it updates on every frame/event tick, when you render it out from movie render queue?
@mitchellrcohen5 ай бұрын
Pleaseee😊
@GDi4K2 жыл бұрын
Very cool stuff.
@sthJuniorPK2 жыл бұрын
Great tut! Thank you
@PeoplesGaming Жыл бұрын
Hey Ryan, is it possible to tesselate an area and displace that one area ?
@yunsongliu9217 Жыл бұрын
Great Tutorial ! Here might be a bug : After I reproduce all the steps in the video , tick the fozen option on, and compile the blueprint again. The shadow of the genereated dynamic mesh would disappear. And if we click on other object, the close view of the genereated mesh would be flicker.
@arielenriques Жыл бұрын
Could you do a tutorial on how to get to that part of the beginning? because I imported a geometry that I would like to apply displacement and I don't know how you created that blueprint and the variables
@ZoraJones Жыл бұрын
has anyone been able to animate the displacement, and how?
@spyrava Жыл бұрын
Awesome video! But how to do that with nanite?
@UNmisterIZE-xz7yx Жыл бұрын
Nice! but do you use a DB_meter something for your audio edits? kinda dont ear much. (critique constructive.. ;) lol ) (y)
@Thunder_Owl2 жыл бұрын
Thank you, shared to Discord friends
@SagunManandhar Жыл бұрын
"Copy Mesh from Static Mesh" is not available in ue5.3 ??
@luivega Жыл бұрын
Any chance to animate the magnitude / displ. map offset etc in the sequencer?
@Ziboo30 Жыл бұрын
Hey Ryan ! I'm trying to do something similar on a Dynamic Mesh at runtime, but I would like to use a RenderTarget to displace the mesh. Displace only accept a Texture Asset. Any solution you can think of ? Thanks !
@HeavensDisciplesGames2 жыл бұрын
Nice! I appreciate the share.
@huseyinkaraaslan628 Жыл бұрын
This tutorial is very useful thank you. My static mesh has 2 materials. Generated mesh has only 1 material slot. İs there any way to get materials from static mesh? Thnak you.
@pawprinting2 жыл бұрын
Hopefully it can work for skeletal meshes too later on down the line
@jeremyrotsztain Жыл бұрын
Thanks for this tut, it's been super helpful. Do you have any tips for making this run every frame instead of whenever the mesh or BP settings update? Also, is it possible for this to work in runtime or just when editing?
@antonthomsen4043 Жыл бұрын
Did you figure something out?
@haydenmartin58662 жыл бұрын
Just what I was looking for! I’m coming from a CGI & VFX background... wondering if it’s possible to do triplanar displacement this way?
@RyanSchmidtEpic2 жыл бұрын
ah yea that would be cool, however it's not (easily) doable right now, it would need a custom function (in C++). Conceivably it would be possible to do 3 separate displacements, on 3 copies of the mesh, and then blend their vertex positions in blueprint, but it will be very expensive to do the per-vertex processing.
@ghislainfontainebujold78342 жыл бұрын
I dont understand, where does the "event on rebuild generated mesh" comes from? Im new to this, but it doesn't seem to come from an interface or something like that and how come it has a pin for target mesh?
@ghislainfontainebujold78342 жыл бұрын
Nevermind, i watched the previous video and found the answer in the first minute 😄. Thank you this is very helpful.
@rajmundorban512 жыл бұрын
hi. I can't find the event on generated mesh
@metatrox2 жыл бұрын
This is great! Is there a way to starget only a single color channel of the texture 2d node? I want to use this for megascans textures but its packaged map and the displacement is the blue channel. Or perhaps a way of duplicating the texture in unreal and disabling the other color channels? i dont want to have to use photoshop to export the blue channel as another texture. Thanks!
@RyanSchmidtEpic Жыл бұрын
yes, you can specify a specific channel from the texture in the displacement options
@metatrox Жыл бұрын
@@RyanSchmidtEpic figured it out! Thanks!
@sosasebastian30332 жыл бұрын
Hi, Thank you very much for the tutorial! I would like to know if blueprint can be run on GPU, because for large meshes, the tessellation lead to important computation.
@RyanSchmidtEpic Жыл бұрын
sorry, blueprints cannot be run on the GPU
@acidarts2 жыл бұрын
Gorgeous feature! Any chance to animate the displacement with this tool ? That would be so fun.
@ahmadsy10002 жыл бұрын
Hi! I think u can animate values with sequecner or in event tick
@luivega Жыл бұрын
@@ahmadsy1000 how can I implement the event tick in the blueprint structure? If I change the values in the sequencer the mesh does not update...
@ZoraJones Жыл бұрын
@@luivega hey lui!! have you figured this out? I have the same issue
@sleuthman8642 жыл бұрын
This is cool, but if you then apply your material to that, isn't your normal map and AO etc now wrong as it's applied to actual geometry rather than a flat plane? You're going to to be doubling up on your normals as the shape will still be in the normal map/ao?
@RyanSchmidtEpic2 жыл бұрын
yes, if you had those maps, they would be wrong if you displace the mesh. However this isn't any different than with GPU displacement materials, for example. And many use cases of procedural mesh generation would be in contexts where you don't have a normal map or AO map to begin with (eg procedurally generating Assets from scratch, at the scale of Nanite content, and/or using Lumen for GI) (However in future (5.1) we will also have geoscript nodes that can be used to bake new maps)
@mikehanache54512 жыл бұрын
Great video! Thanks for the info! I’m curious though, I’m trying to get it to work with a packed texture and I can’t seem to pull a specific color channel in blueprint! In materials it’s straightforward to mask a color channel, I’ve never had to for a BP but I imagine there’s a way right?
@RyanSchmidtEpic2 жыл бұрын
There is not really a way to do any kind of masking on the input texture in 5.0, however the Options struct for the ApplyDisplaceFromTextureMap function in 5.0 takes an "ImageChannel" argument you can use to specify R/G/B/A (as 0/1/2/3).
@mikehanache54512 жыл бұрын
@@RyanSchmidtEpic Nice! Thanks for the info :)
@maomaogamedev2 жыл бұрын
Hey Ryan, how it the performance between a Dynamic mesh actor vs a static mesh? Assuming you are not changing parameters at runtime
@RyanSchmidtEpic2 жыл бұрын
A static mesh is more efficient to render, it at minimum uses the static draw path which at minimum caches a lot more things than the dynamic draw path. For a single mesh it's not a huge difference but if you had a scene with lots of meshes, it will add up. Also static draw path can automatically do instanced rendering of multiple copies of a static mesh, whether or not you are using an ISM Component. If you have Nanite enabled, static mesh is even more efficient, even if it's low-poly it will use a more efficient way of handling instances/etc. There are some details on this page: docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/Rendering/MeshDrawingPipeline/. I can't really give you specific numbers though, it is too dependent on your meshes, hardware, scene setup, etc.
@maomaogamedev2 жыл бұрын
@@RyanSchmidtEpic thank you for taking the time to do a detail answer! This is more than enough! Thanks a lot!
@dorianare2242 жыл бұрын
Thank you! I think they might have changed in the new UE5 version. I can't seem to find "Copy mesh from Static Mesh" and other nodes... :(
@RyanSchmidtEpic2 жыл бұрын
Have you enabled the GeometryScript plugin? You might want to start at the beginning of the playlist: kzbin.info/aero/PLnogvUVeY_MiSIgHp1b4TWgkZYJtl_37a
@Ro285172 жыл бұрын
hi, can virtual textures be used as in UDIM support for this? Great vid btw
@RyanSchmidtEpic2 жыл бұрын
This method is using the source texture image, so it won't matter if it's a virtual texture or not (if the source texture is very large then it will require a lot of memory, though). No UDIM support currently.
@nmatthes29272 жыл бұрын
What kind of blueprint do I have to create to get to the window you start in? And for the magnitude I can not choose "real" as type because "real" does not exist in the list. :S
@RyanSchmidtEpic Жыл бұрын
'Real' was renamed to 'Float' after I made this video. You have to create a BP subclass of GeneratedDynamicMeshActor (might help to start at the beginning of the playlist)
@drummerman8832 жыл бұрын
I have noticed when adding a material to new mesh the material and tesselation don't match. Even when setting the uv tiling. Any idea for a solution or why this happens?
@RyanSchmidtEpic2 жыл бұрын
I would need more details - maybe you can post on the Epic dev community w/ some screenshots of BP and/or results? dev.epicgames.com/community/
@enricosanti76272 жыл бұрын
Is it possible for the height map to act similarly to world aligned textures? to scale the UV's as well as pan the UV's as you move the model around but in BP?
@RyanSchmidtEpic2 жыл бұрын
You could build something kind of like this yourself by using SetMeshUVsFromPlanarProjection to do the scaling/panning. However the current displace-from-texture node doesn't support anything like this, and it doesn't support any kind of weighting/blending currently.
@UnrealEngineUA2 жыл бұрын
Good afternoon tell me please What processor are you using in your computer? It takes me a long time to process, when working with displacement maps. Thank you :)
@RyanSchmidtEpic2 жыл бұрын
in these videos I am using either a 64-core/256gb or 24-core/64gb machine. If you are using large meshes then it does really help to have a lot of cores as many of the geometry operations are multi-threaded.
@flyinggecko33222 жыл бұрын
Is this something new from UE5? Is it the equivalent of Geometry Nodes from Blender?
@RyanSchmidtEpic2 жыл бұрын
Yes, it is new in UE5. Here is an (evolving) playlist of short tutorials like this one: kzbin.info/aero/PLnogvUVeY_MiSIgHp1b4TWgkZYJtl_37a
@ashoakenfold2 жыл бұрын
Nice to see these features. Have you tried Gemoetry Nodes in Blender?
@iiiiiii24472 жыл бұрын
What if I want to adapt a displacement map to a geometry cache?
@RyanSchmidtEpic2 жыл бұрын
Sorry, no support for geometry cache here currently, as far as I am aware geometry caches cannot be modified
@Bumlife2Bomblife2 жыл бұрын
How much for animation?
@Arrkail2 жыл бұрын
can it be used on a landscape?
@RyanSchmidtEpic2 жыл бұрын
Sorry, no.
@MigueldeAguirre2 жыл бұрын
Awesome ! can you explain How to get ¨Event On Rebuild Generated Mesh¨ I did a Custom event but it didn't work I'm missing something :(
@RyanSchmidtEpic2 жыл бұрын
You need to use "GeneratedDynamicMeshActor" as the base class, not "DynamicMeshActor". The GeneratedDynamicMeshActor version has this event already, you just override it. The base DynamicMeshActor does not (but you can use the Construction Script there)
@MigueldeAguirre2 жыл бұрын
@@RyanSchmidtEpic Thank you very much for your answer, now everything works as it should :)
@zenbauhaus1345 Жыл бұрын
dope
@neeo99492 жыл бұрын
Hi, custom mesh supported? can I transfer it to Nanite when bp already done?
@RyanSchmidtEpic2 жыл бұрын
The bit at the end (with a torus) is an input arbitrary static mesh, so you can use any other mesh there (I assume what you mean by "custom mesh"). You can 'bake' back to a static mesh as shown in this video: kzbin.info/www/bejne/mH3dqXqjp92kiNk And (in 5.0 release) you will be able to enable Nanite rendering on that StaticMesh asset.
@neeo99492 жыл бұрын
@@RyanSchmidtEpic I'll check it out, thank you for these tutorials and help, I'll continue to follow you, cheers!
@alejandrocambraherrera82422 жыл бұрын
Can you execute these scripts on runtime?! That would be crazy! Real-time Houdini!!
@RyanSchmidtEpic2 жыл бұрын
Yes, it is a bit more complicated, but most Geometry Script functions can be used at Runtime, and so can DynamicMeshActors.
@RyanSchmidtEpic2 жыл бұрын
yes: kzbin.info/www/bejne/hpuQZKaPhL94pdk
@williamhendrickson95812 жыл бұрын
Hi Ryan, great series here. I just finished following through all your videos and I learned a lot! Quick question, is it possible to expand this displacement tool to use a static mesh actor rather than a static mesh?
@RyanSchmidtEpic2 жыл бұрын
a static mesh actor is just a container for a static mesh asset. So, yes it is possible but you would just extract the static mesh asset from the actor, and everything else is the same.
@CyberWolf7552 жыл бұрын
I would make a custom event inside the script with call in editor ticked, so a button in the details panel of the blueprint would appear. That way you can call the function by pressing a button to recalculate the mesh rather than having to freeze the rebuild event node graph.
@RyanSchmidtEpic2 жыл бұрын
Yes, that's another option, in that case you can use the base DynamicMeshActor instead of GeneratedDynamicMeshActor. However artists tend to prefer to have live feedback, even if it's a bit chunky, and then the option to pause it, rather than having to click a button after each parameter change - but it depends on how long the mesh update takes, if it is more than 1-2 seconds then people tend to prefer a button. We are considering building this freeze/explicit-recompute functionality into these procedural mesh Actors in the future.
@shikhermyv2 жыл бұрын
Nice
@zzynski8322 жыл бұрын
man i wish that would work for landscapes
@SanjarTheKingOfKings Жыл бұрын
For someone who struggles with houdini this is actually amazing stuff. I'm trying to do multiple different displacement in sequence by simply copying (not duplicates/instances, separate nodes that show up in the details tab after) the nodes after PNtessellation, but they don't function. Any pointers to get this to work?
@wilbertvanvulpen9553 Жыл бұрын
Please dont skip anything. I have no idea how to make the sourcemesh and displacemap variables
@lt.parkinsons80882 жыл бұрын
"Copy Mesh from Static Mesh" Node doesn't seem to exist anymore.
@RyanSchmidtEpic2 жыл бұрын
do you have the Geometry Scripting plugin enabled? It still exists for me in both 5.0 and 5.1 (preview) binary launcher installations...
@lt.parkinsons80882 жыл бұрын
@@RyanSchmidtEpic Ahh I didn't in 5.0, sorry about that and thanks boss.
@Joviex2 жыл бұрын
This isn't a displacement map it's literally baking a high mesh.
@privaatsak Жыл бұрын
Great tut if a bit fast for BP beginner... plus for the beginning which I had to refer to this tutorial to understand: kzbin.info/www/bejne/a53Sl354rpdjmq8