Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Create large environment with water

Discussion in 'Getting Started' started by oerdy, Oct 19, 2017.

  1. oerdy

    oerdy

    Joined:
    Oct 19, 2017
    Posts:
    3
    Hello,

    I have a specific task at hand and I have probably a couple of ways to achieve it. I want to create an offshore installation scene, which covers 20km x 20km in real world dimensions (mostly water and some windturbines). The goal of my subject is to simulate different sea states with different wind speeds similar to the beaufort scale. See here: https://en.wikipedia.org/wiki/Beaufort_scale
    With the standard water asset I couldn't get far.

    What is the best way to achieve my task? I'm no expert in 3d-modelling or unity so I need your help.
    As far my understanding goes, the standard water asset is using a bump map to create the waves. The wave movement is achieved by simply moving the bump map. I tried to use different bump maps, which I created with 3ds max. But my results are not where they need to be and looked quite similar to the waves from the standard asset, even I created rather large waves in 3ds max.
    I found the Suimono Water System Asset in the store but it seems like it has some problems with VR (which is a requirement).
    Is it feasible to create a large water surface and animate it (in 3ds max easily achieved which houdini ocean) and then export it to unity? I tried a smaller patch (1000x1000) with a file size around 70MB. I figure that this will reduce my framerate to almost zero?
    Is tiling an option? Can I create one tile and duplicate it in the scene or will have this the same effect?

    Or is there another way?

    Thanks in advance
     
  2. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I think you'll need to dynamically create (or at least, deform) a mesh at runtime. Certainly you want to tile this if possible (this is only possible if you can put certain constraints on the wave length and orientation).

    This is not a simple task if you are new to Unity and/or C# programming. You might want to hire some help (feel free to PM me if that is the case).
     
  3. oerdy

    oerdy

    Joined:
    Oct 19, 2017
    Posts:
    3
    @JoeStrout thanks for the reply. I'll have a look into it. Hiring someone is sadly not an option as this is part of my thesis ;)
     
  4. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    In that case you'll need to spend some time working through the basic Unity tutorials first (follow the Learn link at the top of this page), and follow up with some of these tutorials on dynamic mesh generation.

    Good luck with your project; it sounds very interesting!
     
  5. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Do you need to have some interaction between waves and other things or do they just need to look wavey? If only looks matter, then you could try making a custom shader with shaderforge. It is a node-based shader creation system and if you are familiar with node-based material editors then you will probably find it fairly intuitive. You could experiment with using vertex displacement in a shader, driven by multiple tiling textures that interact with each other. This could be a rather time-intensive trial and error journey though.
     
  6. oerdy

    oerdy

    Joined:
    Oct 19, 2017
    Posts:
    3
    Thanks Joe! I'll give it a shot.

    @Martin_H No interaction needed, yet. But to make it future proof I would go down this route. I have heard about shaderforge and give it a look. Trail and error is part of the fun I guess ;)