A deep dive into my process of creating this animated stylized ocean in UE

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 พ.ย. 2024

ความคิดเห็น • 87

  • @norvsta
    @norvsta 3 หลายเดือนก่อน +1

    Great vid Ghislaine, and the Patreon files are amazing, so much depth of information there. Thank you!

  • @darcygall7497
    @darcygall7497 2 ปีที่แล้ว +7

    the final result material is stunning, amazing work : )

  • @EricAAnderson
    @EricAAnderson 2 ปีที่แล้ว +5

    Fantastic overview! I’ve worked a bunch with Gerstner waves in the past and have just started exploring the new water plugin tools (lots of interesting stuff in there). Your breakdown was excellent!

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว

      Thank you, much appreciated! Gerstner waves are cool!

  • @cocopops733
    @cocopops733 ปีที่แล้ว +4

    Absolutly fantastic video ... one of the best tech art presentations ive ever seen on this site .. congratulations

  • @josefbuchner344
    @josefbuchner344 2 ปีที่แล้ว +1

    Incredible! I was following your journey here on twitter and this is some of the most exciting stuff I've seen in a long time!

  • @kiradark2322
    @kiradark2322 2 ปีที่แล้ว +3

    Thanks I bought it on patreon this has helped me better understand epic game waves and how it works (I don't recommend it for users looking to use it directly in their game this is for users looking for knowledge as performance is very unstable) Thank you very much for sharing these details, I will always support your work, the tutorials and guides are really good

    • @ddc1044
      @ddc1044 2 ปีที่แล้ว

      What's the sponsorship number, please

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว +2

      Ty for the support and kind words! :) Yep right, it's meant to be educational first of all. I'm curious about the performance instability though, would you mind telling me more about it? In the viewport I can certainly agree, but in-game I've experienced quite a stable GPU and CPU cost. It jumps a little bit depending on the hardware occlusion culling and mesh drawn though.

  • @somename371
    @somename371 ปีที่แล้ว +1

    This is absolutely amazing

  • @zeroy
    @zeroy ปีที่แล้ว +2

    This is excellent results!

  • @GorkaGames
    @GorkaGames 2 ปีที่แล้ว +1

    great video man!!

  • @duke222222
    @duke222222 2 ปีที่แล้ว +1

    Regarding capture rate - if you ping/pong'd between two RT's, you could lerp between them to avoid the snapping look.

  • @georgesanxionnat5054
    @georgesanxionnat5054 ปีที่แล้ว +1

    Merci beaucoup pour cette vidéo super intéressante !

  • @shuxilin9385
    @shuxilin9385 2 ปีที่แล้ว +1

    great tutorial!

  • @Tiberius_Kane
    @Tiberius_Kane 2 ปีที่แล้ว +1

    Merci, pour cette magnifique vidéo. Elle est très inspirante.

  • @morgan3692
    @morgan3692 ปีที่แล้ว +1

    The water looks like in SoT, impressive.

  • @alexanderalikin1210
    @alexanderalikin1210 ปีที่แล้ว +1

    Insta subscribe. Remarkable work and explanation. Thank you

  • @0805slawek
    @0805slawek 2 ปีที่แล้ว +1

    super cool I understand 1% of this but watch every sec, maybe next video about river and flowmap procedural etc?

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว +1

      It's a bit of an advanced breakdown yes so you might want to start with more beginner-friendly tutorials first. We'll see what coming up next, but I do have a couple more things in the works that is water-related yes. Also I covered some flowmap techniques in other videos.

  • @bdenix1997
    @bdenix1997 2 ปีที่แล้ว +1

    do you know if there's a way for iterating through the parameters from parameter collection? or do i have to manually loop through them.
    seems like you did manually but if there is a way, please..
    I would try to pack an array into a texture, but since they are not between 0 and 1, i can't use it. neither i can use color32 cuz its bytes. and increments by 1. so its like using ints.
    i refuse to do it by hand.

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว

      Hi. Uh, good question. There's no way to loop through a material collection parameter in vanilla BP afaik. Most surely doable in CPP though. You could maybe somewhat cheat and build an array of Parameter Names and loop through that list to query each parameter individually. And you could build that Names array somewhat automatically as long as you name your parameters with some sort of incrementation like "Param1, Param2, Param3" and so on. Not ideal but could be a solution?

    • @bdenix1997
      @bdenix1997 ปีที่แล้ว

      ​@@ghislaingirardot by the way i found a solution. you can make a custom node and do everything inside. no need for visual scripting at all, by making structs inside of the custom node.

  • @rohanmandke1920
    @rohanmandke1920 2 ปีที่แล้ว

    this is fantastic

  • @devonroyer8044
    @devonroyer8044 4 หลายเดือนก่อน

    THATS WHY HES THE GOAT! THE GOAT!!!

  • @unlinkedgames6595
    @unlinkedgames6595 11 หลายเดือนก่อน

    Dude, you did an incredible job!
    Does it support buoyancy? Can the waves be changed at runtime? Is it possible to create volumes with such details to use in the scene as local overrides?

    • @ghislaingirardot
      @ghislaingirardot  11 หลายเดือนก่อน +1

      Thanks! Only the steepness & amplitude can be changed at runtime with Gerstner Waves. Changing direction & wavelength comes with strong, nasty side effects.
      Regarding buoyancy, no, not as-is. But technically doable, have a look at my Niagara Buyoancy System. You could build buoyancy for this.

  • @alex3d847
    @alex3d847 2 ปีที่แล้ว +1

    hi, im new to unreal and just wondering how do you update render targets in editor at real time, couldn't find how to do it anywhere. I've seen this in all kinds of projects but how?

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว

      Hey! You shouldn't have to do anything. As long as the scene capture component meant to output to that render target is in your scene and configured to capture at all times or when moved, the render target should be updated.

    • @alex3d847
      @alex3d847 2 ปีที่แล้ว +1

      @@ghislaingirardot oh, it's scene capture component that capturing wpo texture? I thought it's draw material to render target. Hmm, but how do you capture wpo with scene capture, isn't it just a camera that renders what it's see?

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว

      @@alex3d847 Ohh my bad I hadn't paid too much attention to which video you were commenting & my brain kinda defaulted to scene capture component when you mentionned render targets, sorry. It's indeed draw material to render target here, no scene capture components. It's not updated in editor in my case here, I just play a PIE session and have the render target opened in another window. You could update the render target in editor by calling the draw material to RT function in a construction script or in a function callable in-editor afaik.

  • @leonardm6736
    @leonardm6736 ปีที่แล้ว +1

    How can you add Physics like Boujency to that and what option do I have to buy to get this?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว +1

      Highly depends on what you're trying to do but it can be somewhat complicated. There's some cheap buoyancy examples available in my project but it can be expensive to compute in blueprints. Usually, multiple points are scattered underneath an object and the water height is sampled at each of these points. If any is below the surface, some physical upward force is applied to the object at that location and the total upward force is added per frame to make the object float. The more points/samples the more accurate.
      Project is available as a tier 2 reward on my Patreon.

  • @AdnanSky-sm2xk
    @AdnanSky-sm2xk 10 หลายเดือนก่อน

    Hey man! amazing work!. do you think its possible to make one big wave on this ocean? a big wave like tsunami? i have been struggling for a month now. may be because i am new in unreal engine. but it would be amazing and id be very much grateful if you can help me with any information

  • @prototypega8257
    @prototypega8257 ปีที่แล้ว +1

    To learn Gerstner wave and FFts is Probably Possible from home but to get further , become harder than the Animating and Sculpting ore Ui Part of game dev. I also would like to know more about Crystal structurs but it ´s Pretty hard to understand. Could i ask where you lerned all the techniks i work for over 3 years beside ,Studying Mechanik enfgineering with the Unreal engine. But even if i wanted to switch i wouldn´t know to what. Sorry for the prediction but your accent sound a bit French and i´m from Germany and live close the Border and if you guys would have a University over there i would learn french . Becouse here we still haven´t wifi in shools.

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว +1

      I'm indeed French :) I'm self-taught, just got to look around, be curious, learn & experiment everyday and it'll start to snowball sooner or later

    • @prototypega8257
      @prototypega8257 ปีที่แล้ว

      @@ghislaingirardot The ball ist still rolling faster. But i´m a bit Insecure becouse the Univerity is for me no Option anymore and I hadn´t start to sell anything till know. But Character UI, Blueprint, Modeling, shading, Texturing and animating is learned and Niagara is the last step on my list. It´s nice to hear that other decided to run this way like i do.

  • @medusesteno2292
    @medusesteno2292 2 ปีที่แล้ว +2

    je sais le français c'est has- been mais comme tu as un bon french accent je comprend ton english easily 😄

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว +1

      haha, je fais de mon mieux :D c'est pô facile. Zeu flouweurs aRe boutifoul.

  • @HeavensDisciplesGames
    @HeavensDisciplesGames 2 ปีที่แล้ว +1

    Great work! Can this be applied to a spherical ocean?

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว

      Thanks! Oof, good question :D This particular project I released will not work out of the box to create a spherical ocean if that's what you're asking but, technically yes, there's no reasons why you couldn't. You could sample the Gerstner waves in XY planar coordinates and remap that to polar coordinates. You certainly would have to come up with your own LOD system though, which'd be its own technical challenge. The above/below post process material would need to be reworked to support that as well. TLDL: no, not of the box. With some/lot of work and if you sort of know what you're doing, yeah I can see that being possible.

  • @martinberge9237
    @martinberge9237 ปีที่แล้ว

    Is this water replicated efficiently? Or do you have to do some extra time syncing?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว +1

      There's nothing to replicate though? It's just a shader. Do the same Gerstner maths on the server and you get the same wave offset and that's it? I'm not sure what you are asking for here.

    • @martinberge9237
      @martinberge9237 ปีที่แล้ว

      @@ghislaingirardot Thanks so much, that answered my question😁

  • @nBodyResearch
    @nBodyResearch ปีที่แล้ว

    How are you having the post process of the underwater blue perfectly under the waves??

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว +1

      Sample the waves in clip space to get the wave height on screen and create an above/below mask in a post process material. The technique can be found in UE's water plugin

    • @nBodyResearch
      @nBodyResearch ปีที่แล้ว

      @@ghislaingirardot could u possibly do a tutorial on how to do this with custom water meshes that dont use unreals water plugin?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว

      @@nBodyResearch I'm afraid it's not exactly on my plans, sry. I did say a few words about that technique in my "Technical overview of my water system in UE" video I made a while ago, so maybe that'll give you a few hints. Investigating how it's done in UE's water plugin should give you all the information you need to adapt it to your own water. It's really all about sampling the wave height at clipspace to get the wave right in front of the camera. Anything above is air, anything below is water.

    • @nBodyResearch
      @nBodyResearch ปีที่แล้ว

      @@ghislaingirardot so in the WavaCaoture BP would you use a sceneCaptureComponent2d and just point it at the water mesh?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว

      @@nBodyResearch No. Please enable the water plugin and have a look at "WaterContent/Materials/PostProcessing/M_UnderWater_PostProcess". There's a volume one to be applied on a post process volume and mesh one to be applied on a subdvided plane. The mesh technique is more complicated but gives much better performance. You just need to change the way the wave height is computed to match yours (by default it's a Gerstner wave function called 4 times to get the height with a recursive search)

  • @ue5beginner248
    @ue5beginner248 2 ปีที่แล้ว

    Slt l’autre fois tu m’as
    dit d’aller sur le site panthéon mais du coût sa consiste à quoi? C’est des cours sur comment faire des vagues ?

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว

      Salut! Non Patreon c'est un site de financement participatif mensuel ou tu peux accéder à différentes récompenses en fonction du 'palier' que tu choisis. Pas de cours dans mon cas, juste que tu as accès aux projets UE. Celui ci est accessible avec un soutien de Palier 2 (Tier 2) en plus de tout les autres projets déjà disponibles sur ce palier, donc tu paies 10€/mois pour accéder à tout les projets UE Tier 2. Après si au bout du premier mois t'as déjà l'impression d'en avoir eu pour ton argent rien ne t'empêches de te désabonner, sinon tu peux continuer quelques mois pour me soutenir financièrement et continuer à avoir accès aux nouveaux projets que j'ajouterai. J'espère avoir été clair, dis moi si il te faut plus d'infos! (le lien Patreon est dans la description)

    • @ue5beginner248
      @ue5beginner248 2 ปีที่แล้ว +1

      @@ghislaingirardot ah d’accord j’aurais accès à ce que tu as fait, le band de poisson que tu as fait l’autre fois et l’océan dans mes projets. Si je prends l’abonnement ? d’accord j’ai compris
      Si tu peux faire des cours en français de ce que tu as fait çà serait le top. On n’ai près à mettre le prix lol . Tu es le seul à faire ça. tu cartonnerais c’est sur Udemy les cours en ligne. Merci pour ta réponse 👍

  • @Hypnoticshark
    @Hypnoticshark 2 ปีที่แล้ว +1

    This is fantastic, may i ask how long this took you to make?

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว +1

      Ty! Probably around 2/3 weeks full time for both the project & video. It's quite time consuming 😅

  • @ashwinj9879
    @ashwinj9879 ปีที่แล้ว

    is it possible for me create this same one if i pause and make same bp?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว

      I can't guarantee I've shown every bits of every single blueprint and material used to create this demo. Probably most of it though, so try and see for yourself I guess.

  • @ilhamwicaksono5802
    @ilhamwicaksono5802 ปีที่แล้ว

    (EDITED) Hi, how do you make this stretch infinitely into the horizon? I have no clue on achieving it effectively. . .

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว

      Hey! Not sure I understand the question sry

    • @ilhamwicaksono5802
      @ilhamwicaksono5802 ปีที่แล้ว

      @@ghislaingirardot sorry, I meant how do you make the ocean stretch into the horizon, do you just scale it so big or is there some way that is effective in term of processing power to achieve that?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว +1

      @@ilhamwicaksono5802 I mention it a bit in the video. It doesn't actually need to stretch towards the horizon though, just be large enough. That being said, there's no simple solution. I chose a naïve approach with a subdivided plane following the camera's position. You could use a screenspace grid like I explained in a recent video or a miriad of other methods, all with pros and cons.. Ideally you'd use a quad tree, similar to UE's water actor which imo the best solution but the also the most complex to setup.

    • @ilhamwicaksono5802
      @ilhamwicaksono5802 ปีที่แล้ว +1

      @@ghislaingirardot Thanks a lot, people like you are the best, this will really guide me as I learn by myself, thanks again mate!

  • @muramasa2643
    @muramasa2643 ปีที่แล้ว

    mind blown😵😵‍💫🤯🤯🤯🤯🤯

  • @thegreatSalu
    @thegreatSalu 2 ปีที่แล้ว +1

    will objects in the sea move along with the waves?

    • @morganlak4337
      @morganlak4337 2 ปีที่แล้ว +2

      You can sample the gerstner function to make this happen fairly easily 👍

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว +1

      There's a blueprint that allows you to do that but it's only really meant to show you how it's done and should really be converted to CPP. Sampling 128 Gerstner waves iteratively in CPU in blueprints is a big no no although it's doable... :)

  • @zytron615
    @zytron615 ปีที่แล้ว

    Hey Grishlain, as always amazing work! But I have a quick question how can I make the Ocean Multiplayer ready and how can several players use the same ocean without making the mesh too big? Or do I just have to use BP_GerstnerWater_Fixed

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว

      Hey! There is nothing to replicate, it's pretty much just a shader. The mesh would be on the client side to fit each client's own POV

    • @zytron615
      @zytron615 ปีที่แล้ว

      @@ghislaingirardot Yeah but If you have boats which you can walk on it would be totally different if two clients were on the same boat because the waves are different on every client? Or am I totally wrong?

    • @ghislaingirardot
      @ghislaingirardot  ปีที่แล้ว +1

      @@zytron615 first, that's assuming you implemented some kind of buoyancy system, which is a whole other thing entirely. Second, nop: Gerstner waves are deterministic, each client would just need to have the same parameters (time & wave parameters, probably from the server or something) to generate the same exact waves.

  • @astrixx
    @astrixx 4 หลายเดือนก่อน +1

    Shit is not hard, it's easy to get 75-80% there, which for most cases is good enough. the last 10-15% is the tough work of fine-tuning it and experimenting to be perfect for your application. Game companies can afford to do that because each extra percent nets them more time they can keep a player addicted to their game.

    • @FateOfFools-o6h
      @FateOfFools-o6h 21 วันที่ผ่านมา

      the last 15% really makes a difference and teaches you a lot, so go through with it even if you don't implement it, make sure you know what it is 😅

  • @littledemo3605
    @littledemo3605 ปีที่แล้ว

    Mobile friendly?

  • @gggrrs9089
    @gggrrs9089 2 ปีที่แล้ว +1

    try post in reddit

    • @ghislaingirardot
      @ghislaingirardot  2 ปีที่แล้ว +1

      Oh yeah I tend to forget about reddit, ty for the suggestion, I'll make a post. Social media are exhausting, there's too many :D

  • @gggrrs9089
    @gggrrs9089 2 ปีที่แล้ว

    w o w

  • @maxrotceig
    @maxrotceig ปีที่แล้ว

    La tech française

  • @blavkadam2153
    @blavkadam2153 10 หลายเดือนก่อน

    thanks water daddy