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

Graphics Hydroform Ocean Renderer [RELEASED]

Discussion in 'Tools In Progress' started by Xix-Interactive, Feb 11, 2016.

  1. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    ASSET STORE LINK: Hydroform Ocean System


    waterShoreTwitter02.jpg
    waterTwitter.jpg
    seaFoamTwitter02.jpg
    sunsetOcean.jpg








    What makes Hydoform different from other ocean renderers is that it is entirely GPU based, which has many advantages:

    • Parameters (amplitude, frequency, speed, direction, wave complexity, etc) can be modified in realtime
    • It will pretty much run everywhere PC, Mac, Linux, consoles, etc.
      • *Note, not optimized for mobile, not recommended for that platform
    • It's lightweight, easy to integrate and it runs fast (image above runs at 1500 fps on Geforce GTX 660)
    • Truly infinite water, it'll always render to whatever your far plane distance is without any extra performance hit

    I've been a pro game developer for 20 years, about half that time in AAA and engine development. I've designed this to look great and run fast.

    ASSET STORE LINK: Hydroform Ocean System

    Stay tuned on this thread for latest news and updates!
     

    Attached Files:

    Last edited: Feb 19, 2021
  2. NikProductions

    NikProductions

    Joined:
    Oct 29, 2014
    Posts:
    95
    Woah, really nice! It looks alot better than most solutions on the asset store.
     
    jbb1979 and Xix-Interactive like this.
  3. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Thanks much! More good stuff to come!
     
    jbb1979 likes this.
  4. Dark_Tiger

    Dark_Tiger

    Joined:
    Oct 21, 2014
    Posts:
    32
    That looks absolutely incredible, will you be putting this up on the asset store?
     
    jbb1979 and Xix-Interactive like this.
  5. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Thank you, yes it will be in the store in a few weeks!
     
    jbb1979 likes this.
  6. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    654
    Looks great. Especially like the simulated subsurface scattering in the unlinked second pass video!
    A few questions:
    1. Is it all PBS-ey? (technical question, this ;-) )
    2. Does it do cresting waves? (tips toppling over)
    3. Will it handle views from below the water (like Ceto, etc)? (not vital, just curious)
    4. Can one get height infomation (for bouyancy calculations, etc)? (I realize this might be hard if it's on-GPU.)
    5. How smoothly do changes to the parameters get represented? (e.g. straight tweening of a value but see waves jumping around as phase moves too fast?)
    6. Can it handle / how to handle updates to area covered? (e.g. in a procedural world, one wishes to remove one area and add some more -- perhaps simply translating the GameObject with the mesh is sufficient if waves are based on global position?)
    7. Rough pricing expectation?
    Thanks & GL, Rupert.
     
    jbb1979 likes this.
  7. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Thank you!

    My responses:

    1. PBS-ey? Not sure what that means
    2. Sorry, no cresting waves
    3. Yes, but probably not on initial launch
    4. Yes, I just simulate the shader in script for a getHeight() call, so bouyancy calculations are possible
    5. Well it's all floating point, so you can do very smooth transitions in realtime. Changing the frequency might look a bit strange, but you could probably get away with it if it's gradual enough
    6. I'm not sure what you mean. The ocean is infinite and the waves are based on global position if that helps.
    7. I'm thinking around $50 on initial launch and increase the price as more features go in. Unity may have some input on this, so this is not concrete at all
     
    jbb1979 likes this.
  8. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Updated screen and video, added specular and subsurface scatter

    waterTwitter.jpg

    VIDEO HERE
     
    jbb1979, Eric2241 and Dark_Tiger like this.
  9. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Wow - looks fantastic! Especially the translucency with the subsurface scattering.
     
    jbb1979 likes this.
  10. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,369
    Looks nice but some waves seem to go in the opposite direction.
     
    jbb1979 likes this.
  11. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    654
    Sorry, bad joking phrasing given everything these days seems to advertise "physically based shading/rendering" :)

    Yes, that's cool. So could have multiple non-infinite meshes? Or one mesh that is non-infinite? (the old 'terrain caves' problem springs to mind -- or does one need to solve with funky render order / operation things here for things like holes (static) and/or inside rowing boats (moving)?)

    Thx, Rupert.
     
    jbb1979 likes this.
  12. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Looks good - count me in as interested! What AAA games have you worked on? Always nice to see a pedigree!
    Hopefully will turn out to be the fastest solution.

    Questions:
    - culling it out for inland (ie perf/overdraw)?
    - lod?
    - SSR support (unity's maybe?)
    - support for lights or deferred?

    Thanks :)
     
    Last edited: Feb 19, 2016
    jbb1979 and Xix-Interactive like this.
  13. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Ya, they do in the video, that can be adjusted if you want them to go in the same direction. Opposite directions look good for smaller waves close to shore.
     
    jbb1979 likes this.
  14. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Yes, I could make non-infinite patches, "lakes" essentially that might work for holes depending on the case. I don't want to increase complexity or hurt performance by checking cases in the shader. For terrain caves, I would imagine occlusion culling or just a simple trigger that deactivates the ocean object would work well. Row boats could be solved with render-order.
     
    jbb1979 and Arkade like this.
  15. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Ha, well my AAA career was quite a while ago, if you are a shooter fan, the most popular game I worked on was probably Tribes 2.

    The biggest performance hit is the fill-rate, so if you are inland there won't be much fill, so it should be fine. You can change the wave complexity in realtime and I attempted an LOD system that reduced wave complexity with distance from the water plane and it made almost no difference, so I'm not sure it's necessary. The geometric waves do fade out in the distance, and you can set how far out they render. The quality settings are very granular, so it's easy to set whatever performance target you want, mostly by changing the vertex density, wave complexity, and the patch size.

    I would love to do SSR (screen space reflections I hope you are referring to), but it requires access to the previous frame's render. AFAIK there's no clean way to get that - you'd have to have the main camera render render to a texture and then somehow flip to it without doing a screen copy? I haven't looked into it too much, if Unity allows access to the last frame rendered, that would make it a lot easier.

    I'm not going to add lights to the water renderer other than the sun/specular. It should have deferred support however, so that should handle lights if you want it.
     
    jbb1979 likes this.
  16. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Thanks for reply! by SSR I mean the built in SSR effect over on Unity's bitbucket in beta at the moment. It's also available on asset store. It's a post FX so it doesn't require anything special other than your shader to support outputting smoothness so it can reflect.
     
    jbb1979 and Arkade like this.
  17. Lee7

    Lee7

    Joined:
    Feb 11, 2014
    Posts:
    137
    Xix, are you a Tribes fan?

    We are making a Tribes 1 inspired game (our Ski and Jet physics are almost exactly T1). It will be on Steam Greenlight by around the end of next week. We will be looking for additional team members after that time.

    http://i.imgur.com/Pz5ugVP.png

    Anyways, sorry to threadcrap, let me know if you are interested. I only brought this up because you worked on Tribes 2, were you a member of Dynamix? <3

    The ocean rendered looks AMAZING btw.
     
    Last edited: Feb 21, 2016
    jbb1979 likes this.
  18. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    It's post-fx but it requires a frame buffer (usually previous frame so there's no pipeline stall) to reflect - that's the hard part, getting that efficiently. Thanks for the info, I'll check it out, hopefully they have a good built in solution coming.
     
    jbb1979 likes this.
  19. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Ya, of course I'm a Tribes fan, that's why I went to Dynamix to work on the second one! ;) Good to hear you are modeling the physics on T1. The screenshot looks nice, good luck with the GL, what's the project name?
     
    jbb1979 likes this.
  20. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Got deep ocean foam going:
    seaFoamTwitter02.jpg
     
    jbb1979, Teila, snuoq and 1 other person like this.
  21. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Whoops, forgot link to new video:

     
    jbb1979 and Teila like this.
  22. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,369
    Web player?
     
    jbb1979 likes this.
  23. Dark_Tiger

    Dark_Tiger

    Joined:
    Oct 21, 2014
    Posts:
    32
    Would be nice to see how it looks closer to shore, if you've done anything there.
     
    jbb1979 and Xix-Interactive like this.
  24. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    What's happening? could use a new ocean toy to play with. Specially if its super optimised :)
     
    jbb1979 likes this.
  25. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Not yet, but that's under serious consideration.
     
    jbb1979 likes this.
  26. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Ya, I have shorelines working; it's nearly done, I just have to do more testing and create a new island that I can hopefully release - my test island is using paid assets right now. Screens coming soon!
     
    jbb1979 likes this.
  27. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Happy to help test on various hardware, love the thought that this might be really quick.
     
    jbb1979 likes this.
  28. trialnterrorgames

    trialnterrorgames

    Joined:
    Feb 20, 2014
    Posts:
    58
    Does this work on spheres? Looking for an ocean renderer for planets, and most only work on planes...
     
    jbb1979 likes this.
  29. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Awesome, I do need some testers who have Mac or Linux, let me know!
     
    jbb1979 likes this.
  30. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I have PS4 dev kits coming out of my ears, does that help? :)
    Although if it works on DX11 it should just work providing you're using SV_TARGET etc...
     
    jbb1979 and JamesArndt like this.
  31. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    It is planar, however I believe it could be adapted to work on a sphere relatively easily since the verts are procedurally modified in the shader. I am available for contracting if you would like that kind of modification.
     
    jbb1979 likes this.
  32. mensch-mueller

    mensch-mueller

    Joined:
    Nov 25, 2014
    Posts:
    156
    Hi
    I´m on a Mac, if that helps! By the way, looked at this thread since the beginning and your water looks marvelous! I hope its the same on Mac ;)

    Cheers
    Michael
     
    Last edited: Mar 9, 2016
    jbb1979 likes this.
  33. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Yes definitely, I'll be in touch when I'm closer to launch!
     
    jbb1979 likes this.
  34. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Thank you very much! Yes it should look the same on all platforms except mobile, where I'm going to have to cut down wave complexity.
     
    jbb1979 likes this.
  35. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Sweet - I should be doing more on device tests from next week onward. Looking forward to what you get up to. I adore nice effects and nice things, but when I buy them, I end up not using them because they're way over budget in a real world game scenario - something I hope your system will avoid :)

    Did you do some thinking about shore lines or lakes or rivers and whatnot or is that out of scope?
     
    jbb1979 likes this.
  36. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    I really built this as a practical ocean renderer that looks great, but performs well for real-game use. I definitely do not want to release a pretty, but useless asset! It's highly granular on the quality level so you can hit whatever performance target you've got. You could easily set up different quality profiles for games too, ie (low, medium, high).

    Shorelines are pretty much done, I'm just working on a new island to show them off better. Lakes are a maybe, rivers are out for this asset. I've got an idea for a river-specific asset that I think would be pretty great, but I want to see how this one does in the market first.
     
    jbb1979, Teila and one_one like this.
  37. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Sounds good! Rivers do seem like something that would be a separate asset, ie being able to do a low res vertex based flow map around rocks and whatnot.
     
    jbb1979 and Teila like this.
  38. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Yo! any updates?
     
    jbb1979 likes this.
  39. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    If it is up to Hippo's standards, I will buy it too. :) Also, a river asset would be most welcome. I know dozens of people who would buy that. :)
     
    jbb1979 and hippocoder like this.
  40. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Hold on, I've got a stalker! a welcome one but still :D my needs might not always be quality driven but they will always be performance driven ;)
     
    jbb1979 and Teila like this.
  41. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Exactly! That is what I need. I want something that is fast. Pretty is just an extra at this point. Lots of pretty out there, but not a lot of fast. :) I trust you to give an honest opinion once you try it.
     
    jbb1979 likes this.
  42. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Sorry I've been crunching on another project so I haven't had time to get more work done on this. Hopefully I'll be back on it next week.
     
    jbb1979 likes this.
  43. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Just curious, what platform and target spec are you guys targeting? It would be good to know if I do another round of optimization.
     
    jbb1979 likes this.
  44. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    PS4, but you know PS4 is busy with the thousand npcs, the whole city and surrounding island as well as the compute shader sky. So I guess "as fast as possible" qualifies.
     
    jbb1979 likes this.
  45. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Ok, so that would be comparable to a good PC GPU - it should perform well on there.
     
    jbb1979 likes this.
  46. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    PC, DX11 although DX9 would be fabulous. :) I have a Nvideo Geforce 970 graphics card but would like it run on a newer i7 or i5 laptop with the newer intel graphics cards if possible, even if that means reducing quality a bit through a player preference panel. I don't expect anything that looks great in DX11 to look as great on a i5 with intel integrated graphics.

    My target audience will be people who might not have the top of the line system but probably not far behind. Oh, and mine is a small MMO or a large multiplayer, depending on where you gut the numbers of for each. :) So would like 500-1000 players.

    However..I doubt your ocean would have to have deep water quality close to shore, and offshore will be only in small boats with a handful of players/npcs. So not entirely worried about that. I don't know if it is possible, but would LOD's be useful for a water system?
     
    jbb1979 likes this.
  47. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Thanks for the feedback! I might be able to hit DX9 if the wave complexity is reduced and some loops unrolled. I'm not sure if I can do that cleanly yet, have to think about it. I had it running about 60fps on my old i5 laptop with an Intel 4000, but I feel that's a little slow. I'm not sure what the settings were on the water with that, so I should go back and do some more tweaking to see what looks best on those low-end profiles.
     
    jbb1979 likes this.
  48. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    So long as the optimisations for the low end do not slow down the high end, which can happen :)
     
    jbb1979 and Teila like this.
  49. Xix-Interactive

    Xix-Interactive

    Joined:
    Aug 26, 2015
    Posts:
    442
    Na, that will not be a problem, I'm more worried about keeping the code clean than slowing down the high end.
     
    jbb1979 and Teila like this.
  50. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    That is great! I am with Hippo though, don't want to slow down the high end. :)

    Having this as an option will extend it usability though which would be very nice for you. Most of the water systems out there are somewhat limited, at least those that are not flat water.
     
    jbb1979 likes this.