Search Unity

SUIMONO - Customizeable Water System [RELEASED]

Discussion in 'Assets and Asset Store' started by chingwa, Aug 11, 2012.

Thread Status:
Not open for further replies.
  1. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I should have paid attention, the order number was the invoice number with 'OR' in front of it! Well anyways if unity actually gives me a chance i'll have a mess with this pronto
     
  2. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Right, first of all, this new beta is great! I'm really impressed. It's not what i'd consider realistic but its definitely what i'd consider a wonderfully artistic approach to creating oceanscapes, even the flat version is lovely, and the tesselated 3D version shows a ton of promise but yes, its a beta and things need work, but i'm going to have a bit of a go myself at 'fixing' things i feel it lacks, although some of it is way out of my remit.

    First few thoughts:

    The 3D version doesn't scale ideally, infact keeping wave scale as low as you can seems to be the only way to avoid very strangle looking 'knobbly' waves. The waves in general i think could take a better input for their formation as they dont behave realistically, like there can be swarms of mountainous waves in a localised area and calm elsewhere, and i dont think wave height is a good factor by which to apply foam. THAT SAID and going back to my first few lines, i love the 'artiness' of it and realism i dont think should be driving you at all with this, you can edit just about everything imaginable and you can give your ocean far far more atmosphere and nuance than any other solution ive seen.

    Maybe pursue wave generation that's a little more realistic if at all possible for those wanting that and continue to develop more interesting things too, as you're using normal maps and i could get some extremely interesting effects playing with the myriad of settings the ocean could be used for a lot more things than just an ocean, i've already got ideas in my head

    I noticed that your default tesselation preset had very very large surface details, like the typical high density normal map for breaking up the surface wasnt tiled nearly enough. I have seen a use custom texture checkbox though so i'm going to investigate that, and along with that this texture generator http://scrawkblog.com/2013/09/03/wave-texture-generation-in-unity/ hopefully can provide some more realistic waves. The same guy also did several ocean projects with very realistic whitecaps and suchlike, he has a thread on the forum and I like his ocean water but its not very practical for games, you could possibly get in touch with him for sharing some ideas though. It's nice having 'realism' mind, but yes i'll take the beta's level of artistic control over that wayyyy more.

    The settings interface is great and really good fun to use, but cause it's on the surface object you the framerate goes to hell when you change settings until you click back off the object, which can make it hard to get accurate feedback from a settings change, it would probably be a good idea to have the settings panel somewhere else

    And the last thing I can think of for now is, i love the shorelines, it really is about time a water asset did those, and they look good, but I think the foam amount for the waves and shorelines should be separate, so you have individual control, and it might be worth doing a Water4-style blending of two scrolling textures for the shoreline just to break it up a bit, but it looks very good already!

    I havent been using it long so, just getting used to it and probably missed some features but this is promising and UNLESS you're going for super realism in your game, this has more things to fiddle with than is imaginable, and the criticisms regarding how realistic the wave shape and wave foam forms I genuinely thing can be answered reasonably enough, and i'm going to investigate it myself anyways, i've been wanting to make a showcase demo for a while and what with rtp3 and this and wanting to figure out physically based lighting and wotnot i've got quite a collection of interesting things to fool with. Keep this up!

    Also its a TON easier to use than the first Suimono and while i was unsure about the preset system at first, its actually a really great idea and could be very very useful
     
  3. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Hi lazygunn,

    Thank you so much for your feedback! This is exactly what I was hoping to get by putting out a beta release... an in-depth and balanced critique. There is certainly some improvement to be made on a number of the Beta features. I'll be interested to hear what you think after supplying your own normal textures and playing around with the settings some more... (and yes, just make sure you use the "use custom texture" checkbox).

    The suggestion of separating the settings interface and the surface renderer is very interesting and one that I hadn't even thought of. I can't think of any reason not to do this, especially if it helps the in-editor performance during play-mode. I will have a look into this soon.

    One of my main goals with Suimono is to keep as much of it customizable as possible. I wrestle a bit sometimes with how many "settings" to include before it get's overwhelming, though I hope to have struck a good balance here. I understand your feeling about the foam settings, and I could differentiate the height foam and edge foam some more. the height foam also could use some tweaking as it's currently not very easy to get the best results. I wanted the height foam as a means of doing "wave caps", rather than doing a texture look up. I would also like to add an overall "beaufort" sliding scale that will automatically mimic the real life classifications... and also be an easy setting to quickly handle the tweaks that are needed on the various attributes to achieve this.

    Currently, there is basically no documentation for the beta, and I hope to change that soon. But one feature you shouldn't overlook is the "flow_generator" component (this is located on the Surface child object called "shorelineObject"). This generates the under-water depth calculations for the water surface, which also affect the waves and foam generation. By adjusting the "shore range" and "wave range" attributes (which are depth-by-meter), you control how deep the shore generation goes. Therefore, setting lower values will bring the 3d waves closer in to the shoreline. You can set this to auto generate at a specific frames-per-second speed, or you can change the values and click the "generate map" checkbox to re-generate manually.

    The wave_Generator child component works in a similar fashion, and you can control the generated FPS speed of the 3d waves with this. Almost all the other settings are on the main Surface object.

    Thanks again for this great rundown. If you run into any problems, questions, or WTF moments, just let me know :D
     
  4. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    schwa - I've done some tests with the Suimono beta and the latest version of EasyRoads 3D Pro (ver 2.5.3) and everything seems to work generally well... and yes the directional flow seems to work as expected. A couple notes on settings...

    1) the roads/river mesh needs to be set to the "water" layer, and it's mesh collider should be set to "IsTrigger" in order to get proper underwater generation.
    2) for the water to flow properly across the river mesh uvs, you need to set the "Flow Direction" setting in the Suimono General Settings tab to be "0"
    3) I haven't gotten proper 3D shoreline generation to work correctly yet, but this is a general problem with the beta itself and should be worked out pretty soon. 3D waves and Tessellated waves do work and flow properly though :)

    These tests were done on Unity 4.3, but I see no reason why they wouldn't work in other Unity versions as well.
     
  5. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Ahh the generators sound good! I think full documentation really is a must asap or it could be easy to flounder a bit, although the main interface is very straightforward. Regarding your thoughts on too many or too little options, I do think you hit a very good balance although there were a few settings i wasnt sure what they actually did other than make changes to the water colour that i didnt anticipate, however they probably have some art use at some point and having every aspect available like that is very good and keeps a scene artists options open. No more settings spring to mind atm as being needed for now, enough to keep me occupied for a while. I've just allocated myself a few hours to get my hands dirty with this now so time to get some texture generators going and wotnot and see what can be done, i'll post a video or something if i get something worthwhile (if you dont mind)
     
  6. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    I think so too! I'll have a preliminary documentation PDF posted sometime tomorrow... at least to describe each setting and component, and their functions. I do expect some setting additions and changes over the course of the beta though.

    Post away! I'd love to see what you can do with this!
     
  7. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I just found out by accident that there IS a 3D ocean for non-dx11 users, its not quite as swanky as the tesselated surface but its not too bad at all considering I was expecting nothing. Also turning dx11 on (which is how i got familiar with the dx9 3d surface because i couldnt figure out where the tesselation options went until i realised i didnt even have dx11 on) after importing the package seemed to bugger the system up a bit so I had to reimport, this is with 4.3 and I dont know if it's reproducable because i dont want to wait through the compilation of the shaders again haha, some of them are monsters. I get the feeling I actually jumped the gun a bit on the wave appearance after that because i'm now free to give the generators a once over, i possibly jumped the gun on commenting on wave appearance. Definitely needs some documentation to underline some of the process of fitting the ocean to the scene soon
     
  8. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Actually it turns out I can reproduce it as it did it again, i'm not sure if it's me being a dullard but in dx11 on 4.3 i got DockGUI errors regarding not finding shader properties when i selected the Suimono surface object in the demo scene. Not sure what's going on there at all, it may well be me being oblivious but i'm trying it in 4.2 instead, i guess thats what i originally imported it into. Keeping several versions of Unity installed has proven to be a good idea.

    If you can shine any light on why that might happen, much appreciated
     
  9. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Yep! There are 3D wave transformations for everyone, even on mobile (though performance on mobile really needs to be tested more thoroughly). Maybe it was unclear in the description though? 3D waves for all, but if you're targeting DX11 then you get the really sweet stuff :D

    Hmm... Seems strange. I don't seem to get any errors going back and forth between dx9 and dx11 in 4.3. The only problem I'm seeing is that the water surface goes pink when I switch, which means the automated shader selecting isn't working :/ though if I go and switch the shader to water_pro_dx11, then it works as it should under dx11 (and vice versa under dx9). I don't get any console errors though... I'll try importing from a fresh project and seeing if that has any effect.
     
  10. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Oh, i guess i was being a little dumb but it's worth saying, the demo scene loads with the dx9 shader and i didnt even think to switch the shader manually, that was where i went wrong, i should both sleep more and post on forums less ha

    The pink thing happens but the console gets spammed with errors too, its not a big deal at all but confused me a bit, not sure if thats a thing you can automate for cleanliness sake, very trivial anyways
     
  11. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Well, the shaders should be switching automatically, I built a whole shader switch subsystem just for this reason... argh! I'll make sure it's working for the next beta release. :)
     
  12. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Had more of a play, i could honestly mess around with this all night, every night, just for fun. It can be a thing to do. The only thing that i feel needs a quick fix, ideally very very quickly (just for my enjoyments sake), is moving the settings off the surface object because that is actually the only blemish on what is otherwise a very enjoyable process. I never knew making oceans could be so fun. After generating those maps it seems the waves are more consistent as well as the caps but the shoreline thing is really, really, great. You've put a hell of a lot of thought into this. I was wondering how they went about it in gta 5 because the wave height attenuates with proximity to shorelines and possibly a sample of how much water is in a particular area (so water can be connected to the sea level while inland and still have a realistically calm surface) and you've got it in this! Well, not so sure about my second idea but the actual shore attentuation works great and looks great, very impressive. There's a game in just providing an ocean and an island and the suimono settings sliders i reckon

    In terms of visual things, the waves do lack a kind of 'proper' definition, like if you change the flow speed they translate but still just kind of go up and down, dont show any dynamic with wind etc so the beaufort idea is a good one and the old FFT approach does provide convincing results, i guess i'm assuming a lot there but i'm going to try this: http://scrawkblog.com/2013/09/03/wave-texture-generation-in-unity/ plugged into it now and see what happens, it's using the cpu to calculte FFT based normal/height/slope info into a texture, i havent the foggiest how to use any of that information cept the normal map it makes but should be interesting seeing what happens. As your provided normal map textures dont change and this animates, i'm quite intrigued by what's going to happen.
     
  13. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Cpu was much too slow so i'm trying out his gpu implementation and just hope he doesnt mind. Probably worth talking to him about it if it looks good (and i figure out how to make a normal map from all these numbers)

    edit: way more complicated than i first assumed to do quickly, something to keep me occupied i guess
     
    Last edited: Nov 19, 2013
  14. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Hi Chingwa! I've been following this thread for a while because I'd be very interested in using this water system for "Ghost of a Tale" but what I noticed on the new video (and what Lazygunn mentions here) is what keeps me from buying the asset.

    My main worry is that the displacement for the waves looks a little blobby/shapeless in the video. So I was simply wondering if it is possible to give the waves more definition (make them "sharper") at all. Like "pinching" them at the top to create more noticeable crests. I hope you see what I mean...
     
  15. norby

    norby

    Joined:
    Jul 10, 2006
    Posts:
    277
    There is a small movie on this page
    Maybe it's interesting to check how this is being achieved .
    just take a look :)

    http://www.valkaari.com/?cat=40

    norby
     
  16. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Oh my, now those look like waves! :eek:
     
  17. norby

    norby

    Joined:
    Jul 10, 2006
    Posts:
    277
  18. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    This is definitely possible. The wave generation is all texture based, so the waves really can be any shape you want with the right input. Right now, they are a bit more of a swell type of wave. It might be a good idea to include a few different wave textures for different uses... or actually even better might be to combine 2 or 3 during runtime according to how large or choppy the water should be.

    Ghost of a Tale looks really unbelievable! It reminds me of The Secret of Nimh, which I saw at a drive-in as a kid... it completely freaked me out, and became my favorite movie for years. :D
     
  19. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Thanks norby, I'll take a look at his technique, I'm sure I could learn a lot from it. Too bad the video only lasts for 6 seconds...
     
  20. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Ive spent a really silly amount of time overnight studying the work of that guy in the wip thread, his ocean shader, it's open source but incredibly complex so my brain feels like it's melting but he's helped out a bit, explained a few things, wished me godspeed and directed me to a release of the work that makes textures that can drive such waves more available (Coulda done with that 10 hours ago). Pretty nice of him and it's just what's needed, it's probably worth having a look if you havent already http://scrawkblog.com/2013/06/04/ocean-with-brdf-lighting-in-unity/. Suimono's water is indeed texture driven so it is a matter of producing the textures and the beta's fairly open for poking around under the hood i've found so i think i'll attempt any changes needed to get the best out of all that, Suimono has some really nice shaders for the depth, reflection, refraction, all kinds of water phenomena or just plain arty touches and it looks great and its very fun to mess around with, so with a fast and pretty amazing looking FFT implementation like that it'll be golden. So i'm hoping I can get some good results! (I'll also speak on suimono's behalf for the case that it's perfectly possible, i'm just not a very good programmer, and everythings already there for that or your own implementation for the waves to blend in nicely with the shoreline attenuation and i don't see why not wakes and other such things, you can set how the ocean updates by fps and control the complexity of the tesselation pretty specifically)
     
  21. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Yes, I've looked at his implementation and honestly don't understand any of it :D Props to him though, because whatever he's doing looks really great!

    Unfortunately my mind is more art oriented than tech oriented... and I've tried to wrangle Suimono to fit that mindset. The wave generation is being handled via an input texture, but It would also fit to do some morphing of the texture against various criteria to approximate a more ocean-y feel. I'll start looking into this in the next day or so. But first I do plan to put out a release that improves the UI performance, and hopefully fixes the shader switch issue, as well as some minimum documentation of all the components.

    I appreciate all the energy you're putting into this lazygunn, and am really glad you're enjoying the Update so far! Again, I'm looking forward to what you can do with it :)
     
  22. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    @Chingwa: Thanks for your kind words about "Ghost of a Tale". The game looks much better today than it does on the alpha video. And "The Secret of Nimh" is a great inspiration for sure (it's probably one of the first animated movie I ever saw when I was a kid).

    That sounds really interesting. What I'll do is probably wait until the 2.0 release version (when the documentation is finished) and then jump right in to get a feel for it. Eventually I would really love to be able to use this system for the game's water. Meanwhile I'll keep popping in to ask questions from time to time... Cheers! :)
     
  23. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    It's no big deal! I want, finally, and absolutely smashing ocean shader, cause up till now the nicest one ove found is the mobile optimised community ocean shader and thats a pretty shocking state of affairs, and dont even get me started on Water4 i find it ranges between unpleasant and absolute eyesore no matter how hard i tried to make it look good. Absolutely everyone benefits from this fooling im doing and i do have a LOT of spare time so really why not! I've been planning something that I should start work on very soon, as the event it will be displayed at is relying on it for projectors onto walls, and i thought what better than get a few assets i'm a bit in love with, like Fluidity, RTP, experimenting with Jove and so on (I'm wondering how much cohesion can be kept but when it comes to adding a shoreline and ocean i want it to look absolutely terrible, quality means respect means more work and a higher profile and one day i'm hoping my venues prolifigate into something wonderful, like a double rainbow, gotta love those

    I genuinely believe communication between devs is a very very good idea, they can have some level of integratio or it can just be some regularly signposted promotion for things that work with your thing, and regarding that kinda thing, i dont think Justin would mind having a look and making the maths work with the surface you've very nicely prepared. I was gonna made a video that got him all excited but then i got a tad bummed out when it seems there's a few maps and settings in his texture output version of his work that i'd super appreciate coming back to life, although I appreciated his reasons for excluding some maps given possibly much added complexity. I think I may PM him shortly and see if he can provide output for the height, slope and displacement generations and if doable the choppiness scale result as that adds much character and im quite hellbent on getting it in there I'm also considering attempting a bunch of things im not sure are possible and doing a bit of an approximation of your wavemap generation straight off a invisible unrendered but updated FFT driven ocean by Justin. I'm just going to hack it to death any way i can to get it looking grand, and hopefully you and him can communicate cause i think his input would transform your project from 'cant wait to find a project to use this fully to, i'm gonna make a freaking project on this right now cause thats lovely. And like I say, its a situation in which noone loses. And to be honest it does make complete sense to have a 'real' or in fact serveral 'real' approaches for wave generation but also very unworldly effects, im very sure i will one day make a game with this in it and my intention was little to do with making an ocean

    end of rant for now, im procrastinating anyways, i'm going to get this ocean working with the height maps i can now stream in and hopefully slopes as a normal map and in a perfect world, a factor by which the choppiness could be implemented and form the crests of waves a bit more strongly.

    I might add, ive said it before, this thing does not need to have 100% realisim, its really quite arty and you can create very satifyingly pretty water to the point where you're like 'well im not making a boat game, if we walk into the water we drown, i quite like the pretty waves, super dont care about brainiac stuff, this package is a win

    But yeah i'm gotta try get involved if you don't mind because this has massive potential, with a good few tweaks here and there still needed, hence beta and given the cost of other things and they are really not what i want to look at or enjoy working with (tbh i find most the alternatives dreary as hell, having had a good runnabout in them before feeling a sad feeling of dissatisfactionll) - the nincest game-practical think ive tried with unity are the various iterations of the community shader. This should ideally kick its arse however
     
  24. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    It's no big deal! I want, finally, and absolutely smashing ocean shader, cause up till now the nicest one ove found is the mobile optimised community ocean shader and thats a pretty shocking state of affairs, and dont even get me started on Water4 i find it ranges between unpleasant and absolute eyesore no matter how hard i tried to make it look good. Absolutely everyone benefits from this fooling im doing and i do have a LOT of spare time so really why not! I've been planning something that I should start work on very soon, as the event it will be displayed at is relying on it for projectors onto walls, and i thought what better than get a few assets i'm a bit in love with, like Fluidity, RTP, experimenting with Jove and so on (I'm wondering how much cohesion can be kept but when it comes to adding a shoreline and ocean i want it to look absolutely terrible, quality means respect means more work and a higher profile and one day i'm hoping my venues prolifigate into something wonderful, like a double rainbow, gotta love those

    I genuinely believe communication between devs is a very very good idea, they can have some level of integratio or it can just be some regularly signposted promotion for things that work with your thing, and regarding that kinda thing, i dont think Justin would mind having a look and making the maths work with the surface you've very nicely prepared. I was gonna made a video that got him all excited but then i got a tad bummed out when it seems there's a few maps and settings in his texture output version of his work that i'd super appreciate coming back to life, although I appreciated his reasons for excluding some maps given possibly much added complexity. I think I may PM him shortly and see if he can provide output for the height, slope and displacement generations and if doable the choppiness scale result as that adds much character and im quite hellbent on getting it in there I'm also considering attempting a bunch of things im not sure are possible and doing a bit of an approximation of your wavemap generation straight off a invisible unrendered but updated FFT driven ocean by Justin. I'm just going to hack it to death any way i can to get it looking grand, and hopefully you and him can communicate cause i think his input would transform your project from 'cant wait to find a project to use this fully to, i'm gonna make a freaking project on this right now cause thats lovely. And like I say, its a situation in which noone loses. And to be honest it does make complete sense to have a 'real' or in fact serveral 'real' approaches for wave generation but also very unworldly effects, im very sure i will one day make a game with this in it and my intention was little to do with making an ocean

    end of rant for now, im procrastinating anyways, i'm going to get this ocean working with the height maps i can now stream in and hopefully slopes as a normal map and in a perfect world, a factor by which the choppiness could be implemented and form the crests of waves a bit more strongly.

    I might add, ive said it before, this thing does not need to have 100% realisim, its really quite arty and you can create very satifyingly pretty water to the point where you're like 'well im not making a boat game, if we walk into the water we drown, i quite like the pretty waves, super dont care about brainiac stuff, this package is a win

    But yeah i'm gotta try get involved if you don't mind because this has massive potential, with a good few tweaks here and there still needed, hence beta and given the cost of other things and they are really not what i want to look at or enjoy working with (tbh i find most the alternatives dreary as hell, having had a good runnabout in them before feeling a sad feeling of dissatisfactionll) - the nincest game-practical think ive tried with unity are the various iterations of the community shader. This should ideally kick its arse however
     
  25. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I wouldnt worry too much about complexity with his shader, its gpu based there which shouldnt be a problem at all for recent cards, its pretty hard to get usable information out of his whitecaps implementation though! I think what im looking at in unity now is a version able to kick out a heightmap and a normal map. I have to offer some constructive criticism hee because sometimes i didnt know why you used certain maps in certain spots, specifically normal maps for what i'd assume would come out a lot better as a height map, iirc the red channel contains the y component(i think) of the direction of the normal, didnt seem cogent, but i think normalmaps can be very simple to get from his efforts too, i just wish i was more savvy with how i might use them to modify the shape of the wave to produce crests, in the wave generator, but i'm also wondering if they'd be useful actually applied to the ocean surface and blended with smaller ripples and suchlike to give a nice smooth look to those very small details.

    I had a burst of energy for whatever reason so im going to grab the rest of his work and see if I can merge them to a degree where i can still get textures for suimonos waves but have a few more options open. The fellow who made these things ported them from alternative open source source bit he clearly has brains the size of a planet, he understandas everything in them perfectly well, so i hope he takes an interest! Being able to add wind and choppiness.xy to the whole thing would look very swanky, and i think he'd probably have a way to do it (sorry for loading you with obligations, justin-friend btw

    But until then i'm going to try hack it in, wish me luck
     
  26. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Just wanted to let you guys know there's a new beta ready for download. The main update to this one is the performance improvement when changing UI settings during gameplay. Big thanks to Lazygunn for the suggestion. Also the shader switching should be fixed... should remove the pink water when switching target/rendering platforms.

    edit: also note, that because of these changes there's a new prefab organization for the water surface. You'll need to re-add this prefab to your scenes.

    UPDATE: 11/19/2013 - 2.0 Beta Version 02 released
    • - CHANGE - Separated SuimonoObject component and mesh/rendering object for performance reasons. Surface render is now a child of surface object.
    • - FIX - Automatic Shader switching depending in Unity version and Target Platform.
    • - FIX - general Implicit errors in some preset return functions.
    • - FIX - Unity 4.3 loading wrong UI in Android mode.
     
  27. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Good man! You've fixed the only pressing issue i have with it at all! I'm having a go at translating more of the maps from the whitecap shader the guy did into his version that cut a few of these out and changed structure a bit to accomodate producing the output. He said he was a bit concerned for performance but im spoilt and my gpu doesnt even nearly break a sweat. If I can get the values and the fellow doesnt mind offering a bit more guidance i think it could get pretty great. I should just look really but does the wave generator also account for moving vertices along the x and y, assuming z deemed height?
     
  28. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    The wave generator itself generates a map where the red value is equivalent to the wave height... though I was thinking of using the other 3 color inputs for other purposes. currently it just uses the red channel. I suppose moving vertices in other directions could possible be achieved using these other color channels, though you'd need to update vertex displacement on the shader to understand these values.

    The wave offset/scrolling value and scroll direction is read in from the SuimonoObject component on the parent object. It also reads the _Surface1 and _Surface2 and _FlowMap textures off the main shader then combines them, generates it's own texture and outputs it back to the shader in the _WaveMap slot. I'm sure a lot of improvement can be made just by getting some more interesting normal (or height) maps and playing with how the values are combined in this generator. Even something as a simple as an opposing scroll with certain combining rules could give a much more interesting effect without too much work, but I'll be very interested to see what you can do with Justin's wave generation.

    By the way, my name is Justin as well, don't get confused! :D
     
  29. Mihai93

    Mihai93

    Joined:
    Jul 14, 2012
    Posts:
    213
    @chingwa

    Hello i have test the new suimono beta 2 i need a little information can you please tell me how did you add to your script a image? i need code if is possible please let me know i dont know where to find it if you please can make me script with only that code i need code for show my picture into editor like this one

    $gui_tex_suimonologob.png
     
  30. immFX

    immFX

    Joined:
    Mar 20, 2010
    Posts:
    110
    @chingwa:

    Your water system looks great (judging from the videos), I might consider this for my boats game, as an alternative to the (tweaked) version of the community ocean shader I'm using. However, I have the following questions:

    1. How much can it be stretched before the waves start looking really ugly? (e.g. could it stretch to cover a 2000x2000 terrain?)
    2. Is the buoyancy script that I see in one of your videos included in the package?
    3. The dinghy in your buoyancy video shakes too much, why is that? Could it be better if you add more mass to it?
    4. Do you have some sort of depth map shader that does not let the water be seen inside the dinghy?
    5. What about boat wakes? Will a projector do the job?
     
  31. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    mihai93 - take a look at the Editor scripting documentation here... http://docs.unity3d.com/Documentation/ScriptReference/Editor.html that should get you up and running.

    Once you set up the basic editor script you can add in different GUI elements as you need them. To get the image to load properly it's best to have it in a "resources" folder... then you can simply load it by using the DrawTexture function...

    Code (csharp):
    1. myTexture = Resources.Load("my_logo_texture");
    2. EditorGUI.DrawPreviewTexture(Rect(0,0,100,100),myTexture);

    immFX - wow... The Good Life looks AMAZING! I'm going to have to look into it some more once I get a little free time. congrats on such a nice finished project, the work you put into it really shows.

    1) The ocean/water can be stretched to be as large as you want. 2k x 2k is certainly acceptable, though there is a resolution consideration that come with this. The normal 3D waves displacement is per vertex, and works fine for smaller areas of water. However for large water scale on a single plane you really need to use the DX11 tessellation feature(if you can) which will fill-in the resolution gap, otherwise the waves will not have enough detail to look correct.

    2) Yes the buoyancy in the video is included in the beta. Buoyancy can be set up on objects by using "buoyancy objects" which apply force to their parent object based on location. So in a boat object for example you can have a number of buoyancy objects in different positions around the object with different buoyant properties. This give you more control and customization options, rather than just having a single buoyant property for each object.

    3) Yes there is a bit of tweaking involved... between mass and buoyancy forces. The more mass your main object has the less schizophrenic the buoyancy will appear. But this is also a feature I hope to improve over the beta period.

    4) Yep! A custom depthmap shader is included. The beta demo is pretty bare bones for now, but it does include the boat object from the video to show an example setup. I'll have some documentation on this soon.

    5) Wakes... currently there are splashes and ripples, but not wake effects that would be specific to a boat. Before the beta release I had made a great vertex based wake shader (it was awesome really! ^_^), but again it relies on vertex resolution and thus has problems when the water scaling is increased. I'm still working on this though and plan to have a wake function before final release... either a vertex solution or particle based solution (or a mix of both). A Projector-based solution will probably run into trouble (don't projectors always run into trouble?) I'm hoping to have a better and more reliable solution using vertex/particles, but stay tuned!
     
  32. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Today should be exciting since i'm finally making myself see what rtp can do and my mission of disassembling and reassembling this beta continues. I'm hoping for the more arty look with a touch of realism from the other justin's texture generators although you wont be able to change their 'wind speed' and choppiness in realtime, but hopefully it wouldnt take more than a few seconds to build a new cycle of textures with different conditions. Thats one mission, the other is to somehow become clever enough to use the way you generate your shorelines to adjust a biased adapting mesh rather than use a tesselated surface so i can fulfill my dreams of realtime fft waves with these fancy shaders of yours. As far as I noticed the mesh is done on the cpu too so you could use it with pregenerated textures on non-dx11 hardware. I'm probably going to fail, but if i have any luck ill let you know

    This thing and other justins thing have woken some kind of dormant thing in me
     
  33. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    We've woken the dragon... :D

    Glad to see you getting digging through this Beta, it's exactly what it needs!

    I added a link to the preliminary documentation PDF. This is still in progress, but it gives a description and rundown of the general system as well as the main components on the Module and Surface objects. Take a look here, we'll be updating this document constantly over the course of the BETA...

    PDF Documentation Link: http://tanukidigital.com/suimono/beta/suimono2_documentation.pdf
     
  34. immFX

    immFX

    Joined:
    Mar 20, 2010
    Posts:
    110
    The PDF documentation clearly shows where this is going...
    Great job so far, looking forward to the missing features (wakes, underwater blur, etc).
     
  35. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    @Chingwa
    - Great, re water flow and "easy roads" asset.
     
  36. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Hi All, there's a new BETA version ready for download... :)

    UPDATE: 11/25/2013 - 2.0 Beta Version 03 released
    • NEW - Improved underwater depth and fog shading. Now includes directional-lit fog and edge falloff controls, for a more immersive underwater environment.
    • NEW - Added Refraction Speed and Refraction Scale attributes to the Underwater Refraction Controls.
    • NEW - Improved underwater rendering for Android and iOS. Uses full fog and reflection renderer.
    • CHANGE - Consolidating vertex shader code into new SuimonoFunctions.cginc library.
    • CHANGE - Added new "Performance Settings" options to the Suimono Module Object.
    • CHANGE - Dynamic Reflections now work on mobile by default. There is a new option to disable Dynamic reflections in the performance settings.
    • FIX - Dynamic Reflection texture link to main shader was broken. Now the reflection Object successfully feeds the generated texture to the Surface Shader.
    • FIX - Blurring now functions correctly on surface object and underwater.

    Edit: Below ia video showing off the changes to the underwater fog system in the latest beta. It now includes scene-lit volumetric fog and edge falloff controls... Enjoy :D
    [video=youtube_share;6VVMxshFSFg]http://youtu.be/6VVMxshFSFg
     
    Last edited: Nov 25, 2013
  37. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    Wow!

    DX11 required for that?
     
  38. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    The new fog effects will work in all versions of Unity, though you do need Unity Pro because of the depthtexture calls.

    I guess it isn't exactly clear in the videos and info I've put out, but DX11 is ONLY required if you want to use the high resolution tessellation function... the 3D waves themselves will work fine on non-DX11 systems... and if you only need small bodies of water then you won't see much of a benefit from using the Tessellation anyway. Where the DX11 Tessellation really shines is in a large body of water, such as a large lake or ocean.
     
  39. bigkahuna

    bigkahuna

    Joined:
    Apr 30, 2006
    Posts:
    5,434
    Meaning it will work with Unity Pro 3.x or 3.5.x? One comment regarding the demo video, to look more realistic I would reduce the reflection (on the underside of the water) at least 50%. The caustics effect on the body looks a bit weird also. Definitely has great potential. :)
     
  40. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I'm having random mysterious problems with tesselation but I think it's all on my end, i signed up to, and installed, a lot of nvidia developer program stuff that might have F***ed my drivers up will try get it working again, if i fail, im going to really have a bloody good go at getting fft waves going using your actual surface shaders as a basis for the shading and 'borrowing' big chunks of Nvidia's tech demos. Gonna get this stuff sorted if it kills me

    One question that suddenly dawned on me, are you using a large animated model for the non-tesselated 3d ocean?
     
  41. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Chingwa i do stronglye recommend you look at the nvidia dx11 samples, they have code and will, i think give you insairation for some darn beautiful water, full ocean and coastline irientated. Like im finding though, brainwork! Worth it though. I'll look at your base mesh for the tesselation by the way, if it equists, it might be able to be tweaked, i think its going ti be very hard to get a driving beauforce kind of system implemented without drivng choppy waves

    Anyway's i'll try get the 'confused' phillips spectra working, with me luck
     
  42. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    No luck anywhere, naturally! Tessellation has mysteriously stopped doing much, so there no sense of scale to the waves, or ability to adjust it. I'm going to try taking the suimono tessellation out entirely and use a different tessellation method/shader with a different way to generate waves, if/when I feel up to it. It seems the tesselation problem is something my end (older projects still exhibit the issue) yet other tessellation examples work. Ahh well, i'll look at it later

    It's just occurred to me that it's feasible enough to have a look at the community shader generation methods, ill look at that too
     
    Last edited: Nov 28, 2013
  43. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    bigkahuna - Thanks for your feedback bigkahuna. It will work with 3.5.6 and up. But will also work across most target platforms, PC Mac, Mobile etc.

    lazygunn - you ought change your nickname, as you seem way too industrious to be called lazygunn :D
     
  44. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Hah, just intrigued by some of the stuff involved, if you dont mind, im going to pm you with a bunch of free-to access ocean water solutions that might inspire yu given my only real problem with this is wave generation, esp given competing products atm. It does involve fft maths but that can be sent off and then recovered without too much faff (as far as i know, but im not that good with this stuff)
     
  45. immFX

    immFX

    Joined:
    Mar 20, 2010
    Posts:
    110
    Any progress on the buoyancy script? I'm particularly interested in this, did you get it to work as expected?
     
  46. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Hi immFX, currently I'm working on perfecting the wave algorithm. Once this is done and decided on I'll be revisiting the buoyancy calculation, since the two are inextricably connected. I'll have some additional updates about this really soon! Thanks!
     
  47. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Here's a plug for suimono doing something a little bit different. If the work in this direction pans out it'll be available to suimono users, i supose chingwa has the web-based backend for checking legitimate suimono licenses so i'll put it to him as an 'experimental addon'. Suimono shaders with an alternative generation method



    There'll be a video in a bit after ive eaten everything
     
  48. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Without the terrain it runs at 300 frames per second on a gtx 580
     
  49. makotech222

    makotech222

    Joined:
    Oct 20, 2013
    Posts:
    9
    I'm using the 2.0 Beta, and i'm getting this weird bug. Suimono seems to work fine the first time i use it, but after some changes, ill get this:

    http://imgur.com/r7Avpbm

    I'm using the DX11 shader on DX11 Unity Pro. I make the changes during play, and they aren't saved, but when it reverts back to the prefab defaults, i get this. Oh, and don't mind the pieces of water coming out of the grass. Thats on me. Its just the whiteness on the water.

    Oh and it works in the scene view, but not when i click play.
     
    Last edited: Dec 8, 2013
  50. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Hi makotech,

    So the problem seems to be it's too bright? It seems to me like it's the foam setting which is causing the overbright (though it's hard to to tell in your screenshot). You can try darkening the foam color and the alpha. Do you have multiple lights in your scene... it's possible that might be overbrighting the water as well. If so, try reducing the number of lights and see if that makes any difference... if so, please let me know and I'll look into ways of re-saturating in the surface shader.

    In general I suggest during playmode, once you make edits and get it the way you like, go down to the Presets tab and make a new preset with those settings. That's the best way to save, and iterate, and experiment without losing your work. As usual with Unity, edits made in playmode will not be saved once you go back to editor mode, however the preset system gets around this shortcoming very nicely. :)
     
Thread Status:
Not open for further replies.