UE5 Geometry Script - Displacement Map

  Рет қаралды 28,096

Ryan Schmidt

Ryan Schmidt

Күн бұрын

Пікірлер: 94
@strideknight
@strideknight 2 жыл бұрын
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
@marcusjohnston3138 Жыл бұрын
My thoughts exactly, been trying to figure out a nice workflow and this seems to be tip top!
@olaufr
@olaufr 2 жыл бұрын
This is immensely useful, thanks a lot for these videos.
@LoganPinney
@LoganPinney 2 жыл бұрын
Fantastic Ryan!!! Please make more of these wicked BP tuts. I did not know about any of these nodes, soooo cool!!
@Retro_simone
@Retro_simone 2 жыл бұрын
That frozen trick is awesome!
@ChristopherZoog
@ChristopherZoog 2 жыл бұрын
Thanks for these vids! I have not found any documentation of geometry script so this is great!
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
Unfortunately as an Experimental feature in UE5.0 there will not be much documentation. Hoping to improve on that in 5.1
@MyGameDevPal
@MyGameDevPal 2 жыл бұрын
Thank you Ryan!
@lucascavallari8489
@lucascavallari8489 7 ай бұрын
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.
@smithedits
@smithedits 11 ай бұрын
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?
@mitchellrcohen
@mitchellrcohen 5 ай бұрын
Pleaseee😊
@GDi4K
@GDi4K 2 жыл бұрын
Very cool stuff.
@sthJuniorPK
@sthJuniorPK 2 жыл бұрын
Great tut! Thank you
@PeoplesGaming
@PeoplesGaming Жыл бұрын
Hey Ryan, is it possible to tesselate an area and displace that one area ?
@yunsongliu9217
@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
@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
@ZoraJones Жыл бұрын
has anyone been able to animate the displacement, and how?
@spyrava
@spyrava Жыл бұрын
Awesome video! But how to do that with nanite?
@UNmisterIZE-xz7yx
@UNmisterIZE-xz7yx Жыл бұрын
Nice! but do you use a DB_meter something for your audio edits? kinda dont ear much. (critique constructive.. ;) lol ) (y)
@Thunder_Owl
@Thunder_Owl 2 жыл бұрын
Thank you, shared to Discord friends
@SagunManandhar
@SagunManandhar Жыл бұрын
"Copy Mesh from Static Mesh" is not available in ue5.3 ??
@luivega
@luivega Жыл бұрын
Any chance to animate the magnitude / displ. map offset etc in the sequencer?
@Ziboo30
@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 !
@HeavensDisciplesGames
@HeavensDisciplesGames 2 жыл бұрын
Nice! I appreciate the share.
@huseyinkaraaslan628
@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.
@pawprinting
@pawprinting 2 жыл бұрын
Hopefully it can work for skeletal meshes too later on down the line
@jeremyrotsztain
@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
@antonthomsen4043 Жыл бұрын
Did you figure something out?
@haydenmartin5866
@haydenmartin5866 2 жыл бұрын
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?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@ghislainfontainebujold7834
@ghislainfontainebujold7834 2 жыл бұрын
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?
@ghislainfontainebujold7834
@ghislainfontainebujold7834 2 жыл бұрын
Nevermind, i watched the previous video and found the answer in the first minute 😄. Thank you this is very helpful.
@rajmundorban51
@rajmundorban51 2 жыл бұрын
hi. I can't find the event on generated mesh
@metatrox
@metatrox 2 жыл бұрын
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
@RyanSchmidtEpic Жыл бұрын
yes, you can specify a specific channel from the texture in the displacement options
@metatrox
@metatrox Жыл бұрын
@@RyanSchmidtEpic figured it out! Thanks!
@sosasebastian3033
@sosasebastian3033 2 жыл бұрын
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
@RyanSchmidtEpic Жыл бұрын
sorry, blueprints cannot be run on the GPU
@acidarts
@acidarts 2 жыл бұрын
Gorgeous feature! Any chance to animate the displacement with this tool ? That would be so fun.
@ahmadsy1000
@ahmadsy1000 2 жыл бұрын
Hi! I think u can animate values with sequecner or in event tick
@luivega
@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
@ZoraJones Жыл бұрын
@@luivega hey lui!! have you figured this out? I have the same issue
@sleuthman864
@sleuthman864 2 жыл бұрын
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?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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)
@mikehanache5451
@mikehanache5451 2 жыл бұрын
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?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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).
@mikehanache5451
@mikehanache5451 2 жыл бұрын
@@RyanSchmidtEpic Nice! Thanks for the info :)
@maomaogamedev
@maomaogamedev 2 жыл бұрын
Hey Ryan, how it the performance between a Dynamic mesh actor vs a static mesh? Assuming you are not changing parameters at runtime
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@maomaogamedev
@maomaogamedev 2 жыл бұрын
@@RyanSchmidtEpic thank you for taking the time to do a detail answer! This is more than enough! Thanks a lot!
@dorianare224
@dorianare224 2 жыл бұрын
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... :(
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
Have you enabled the GeometryScript plugin? You might want to start at the beginning of the playlist: kzbin.info/aero/PLnogvUVeY_MiSIgHp1b4TWgkZYJtl_37a
@Ro28517
@Ro28517 2 жыл бұрын
hi, can virtual textures be used as in UDIM support for this? Great vid btw
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@nmatthes2927
@nmatthes2927 2 жыл бұрын
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
@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)
@drummerman883
@drummerman883 2 жыл бұрын
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?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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/
@enricosanti7627
@enricosanti7627 2 жыл бұрын
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?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@UnrealEngineUA
@UnrealEngineUA 2 жыл бұрын
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 :)
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@flyinggecko3322
@flyinggecko3322 2 жыл бұрын
Is this something new from UE5? Is it the equivalent of Geometry Nodes from Blender?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
Yes, it is new in UE5. Here is an (evolving) playlist of short tutorials like this one: kzbin.info/aero/PLnogvUVeY_MiSIgHp1b4TWgkZYJtl_37a
@ashoakenfold
@ashoakenfold 2 жыл бұрын
Nice to see these features. Have you tried Gemoetry Nodes in Blender?
@iiiiiii2447
@iiiiiii2447 2 жыл бұрын
What if I want to adapt a displacement map to a geometry cache?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
Sorry, no support for geometry cache here currently, as far as I am aware geometry caches cannot be modified
@Bumlife2Bomblife
@Bumlife2Bomblife 2 жыл бұрын
How much for animation?
@Arrkail
@Arrkail 2 жыл бұрын
can it be used on a landscape?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
Sorry, no.
@MigueldeAguirre
@MigueldeAguirre 2 жыл бұрын
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 :(
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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)
@MigueldeAguirre
@MigueldeAguirre 2 жыл бұрын
@@RyanSchmidtEpic Thank you very much for your answer, now everything works as it should :)
@zenbauhaus1345
@zenbauhaus1345 Жыл бұрын
dope
@neeo9949
@neeo9949 2 жыл бұрын
Hi, custom mesh supported? can I transfer it to Nanite when bp already done?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@neeo9949
@neeo9949 2 жыл бұрын
@@RyanSchmidtEpic I'll check it out, thank you for these tutorials and help, I'll continue to follow you, cheers!
@alejandrocambraherrera8242
@alejandrocambraherrera8242 2 жыл бұрын
Can you execute these scripts on runtime?! That would be crazy! Real-time Houdini!!
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
Yes, it is a bit more complicated, but most Geometry Script functions can be used at Runtime, and so can DynamicMeshActors.
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
yes: kzbin.info/www/bejne/hpuQZKaPhL94pdk
@williamhendrickson9581
@williamhendrickson9581 2 жыл бұрын
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?
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@CyberWolf755
@CyberWolf755 2 жыл бұрын
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.
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.
@shikhermyv
@shikhermyv 2 жыл бұрын
Nice
@zzynski832
@zzynski832 2 жыл бұрын
man i wish that would work for landscapes
@SanjarTheKingOfKings
@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
@wilbertvanvulpen9553 Жыл бұрын
Please dont skip anything. I have no idea how to make the sourcemesh and displacemap variables
@lt.parkinsons8088
@lt.parkinsons8088 2 жыл бұрын
"Copy Mesh from Static Mesh" Node doesn't seem to exist anymore.
@RyanSchmidtEpic
@RyanSchmidtEpic 2 жыл бұрын
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.parkinsons8088
@lt.parkinsons8088 2 жыл бұрын
@@RyanSchmidtEpic Ahh I didn't in 5.0, sorry about that and thanks boss.
@Joviex
@Joviex 2 жыл бұрын
This isn't a displacement map it's literally baking a high mesh.
@privaatsak
@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
UE5 Geometry Script - Booleans in Python
2:13
Ryan Schmidt
Рет қаралды 10 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
UE5 Geometry Script - Booleans at Runtime
8:05
Ryan Schmidt
Рет қаралды 25 М.
Displacement in UE5 | Geometry Script Tutorial
11:27
pinkpocketTV
Рет қаралды 49 М.
This Unreal Engine 5 Superman Demo is MIND BLOWING [4K]
10:10
gameranx
Рет қаралды 8 МЛН
UNREAL Engine  Displacement Map 5.2
12:46
MR GFX Unreal
Рет қаралды 5 М.
Using Displacement To Create Cobblestone In Unreal Engine 5
13:02
Peyton Varney
Рет қаралды 22 М.
3 Ways to Scatter PCG Points on a MESH in Unreal Engine 5
14:45
Aziel Arts
Рет қаралды 12 М.
UE5 Modeling Mode - Dynamic Mesh Actors
6:51
Ryan Schmidt
Рет қаралды 24 М.
Procedural Mesh Generation Tools In Unreal Engine 5 (Lyra Project)
14:02
BuildGamesWithJon
Рет қаралды 54 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.