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

SUIMONO 2.0 - Interactive Water System

Discussion in 'Assets and Asset Store' started by chingwa, Jan 6, 2015.

  1. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    Looks like Witcher4 :)
     
    AdamGoodrich likes this.
  2. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Ill second the 2.1 and tenkoku pairing - it looks brilliant. I was extremely surprised at how much of an improvement 2.1 brings, it really does address many issues and even brings lots of lovely new stuff to the table
     
    AdamGoodrich and chingwa like this.
  3. Karearea

    Karearea

    Joined:
    Sep 3, 2012
    Posts:
    386
    Hi Justin,

    Congratulations on getting 2.1 out- really loving the light effects through shallow waves, particularly as seen in @AdamGoodrich 's beautiful shots.

    I've been having trouble getting depth information to work- foam and transparency weren't rendering in my scene. After playing around with the demo setup, it looks like changing cameras breaks it- what's the best practice on this front?

    At the moment I have a persistent Suimono_Module object, so buoyancy works from scene to scene with a persistent player. When I first instantiate the module, it has a camera set to render nothing but a black colour, with tracking object set to the same. This is then swapped to the player camera when the first playable scene loads, and that fades in from black. The first blank camera has the same clipping as the subsequent cameras to ensure that is always set correctly. I change cameras later on when I enter aircraft, and also when I swap from cockpit/external cameras. This setup worked in earlier iterations of Suimono.

    Secondly, I'm using a TOD system with HDR skybox and scattering image fx fog, are there any particular changes I can make to this fog fx that would have it render over the Suimono reflections? The aformentioned screenshots are really selling me on Tenkoku, but keen to try with the current system first.

    Finally, I saw you mentioned picking up wind information from Tenkoku. Not sure what form this wind data comes in, but if it's vector3 might I make a feature request to allow for any vector3 public variable to drive the wind direction?

    Really excited to see how Suimono 2.1 develops from here,
    Cheers,

    Nick
     
  4. Karearea

    Karearea

    Joined:
    Sep 3, 2012
    Posts:
    386
    I jumped the gun regarding the fog vs. reflections- they look good. Still need to tweak the reflectivity at a distance so it's a bit less pronounced. I just have an issue with point lights set to a high range/intensity (range 600, Intensity 120) reflecting far more powerfully than expected when hitting terrain. I'm running the fully deferred path in DX9, No GI. Those point lights don't render onto the water layer directly (ie. not in the culling mask)

    In this case the terrain shaders are RTP3, but the same problem occurs with the built-in standard terrain shader. Doesn't occur with non-terrain objects.

    Point lights are within those emissive capsules:

    RTPReflections.PNG

    And in the scene view, without fog occluding the actual lighting on the terrain:

    RTPReflectionsSceneView.PNG
    Still no joy on the depth issues after swapping cameras.
     
  5. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    @ddnharris I've noticed a similar issue on my end with certain shaders generating differently in the reflection pass. On my end it's been connected to Deferred and Forward modes somehow, whereas the Legacy Deferred seemed to render properly. Your issue seems a bit different than mine, but they must be somehow related. I assume if you turn off the point light then the reflection renders as you would expect? I'd be curious to hear what happens with your scene if you switch it to Forward rendering, would the RTP terrain exhibit the same point light issue that you see in the reflection?

    The camera switching issue might be an oversight on my part... I'll review the camera code and get back to you ASAP.
     
  6. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    How long does it normally take to get info back when you register purchase info to get set up for the downloads?
     
  7. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    It's not automated, so it depends on me checking the info and manually registering you. Usually during normal working hours It's about an hour turnaround. At other times it varies depending on availability :)

    I haven't received any registration requests this evening though, so If you submitted one I suggest you try it again just in case!
     
  8. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Thanks.. I did it after you announced the 2.1 availability.. Either yesterday or day before? I'll go do it again now... Thanks!
     
  9. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,780
    I can't see myself ever using unity water again... today I was working on beaches... I just changed n tweaked the settings and it looked great.
     
  10. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    yeah!
    must b my influence
     
    AdamGoodrich likes this.
  11. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,780
    Yep :)
     
  12. Karearea

    Karearea

    Joined:
    Sep 3, 2012
    Posts:
    386
    Hi Justin, I think you're on the right track. The new Deferred path seems to handle point lights quite differently- I have them cranked up to an intensity of about 200 to look bright enough to make sense. Setting render mode to either Legacy Deferred or Forward makes this far too bright, on all shaders, not just RTP ones- the reflections therefore look as if they're happening in a different path for terrains, ie what you see reflected for the terrain is the same as what the terrain looks like in Forward or Legacy Deferred, with current lighting.. The unlit parts of the terrains look fine still.
     
  13. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Is anyone else having an issue with Infinite Water in 2.1 ?

    I'm only getting the one tile, no matter if I set it to 3D Waves or Infinite 3D Ocean.

    I upgraded project from 2.0.3 ... it was fine in that version.
    To upgrade, deleted all Suimono objects in scene, removed Suimono from project, saved, restarted, installed 2.1, added module and surfaces again.

    EDIT: Never mind ... its tiling water now. Might be as I have a few Suimono prefabs in the scene at different heights - rock pools. After i rearranged them it worked.

    Thx
     
    Last edited: Jun 8, 2015
  14. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    I want to get the beta from website but how do I find my serial number?
     
  15. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    @radiantboy you can either check the pdf invoice you received from the asset store (look for the "OR" order number), or you can login to the asset store, go to your profile and look under "credit card/paypal" and it should give you a list of your purchases with the order number next to them :)
     
  16. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    And then you need to do the serial number request deal on the website and use the order number to request @chingwa assign you a serial number. Right chingwa? We can't use the order number in serial number field, right? :)
     
  17. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    BackwoodsGaming likes this.
  18. MarcopoloR

    MarcopoloR

    Joined:
    Feb 4, 2015
    Posts:
    114
    Hi, I sent in a request with my order number a couple of weeks ago. How long does it take to get a password after sending in the order number?
     
  19. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    Hi MarcopoloR... If you didn't get a response then there may have been an issue with the form. Please try filling out the info again, OR you can email me your name/email/order number directly to konnichiwa[at]tanukidigital.com

    The form turnaround is usually within an hour or two (if I'm at my computer) or at the latest 6-12 hours (overnight/weekends etc).
     
  20. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    A few have been asking me in various places about the return of the dreaded refraction bleed error in the latest version. I'm happy to report that I've been able to fix this in most cases and the fix will be in the next update.



    It's nearly impossible to fix this type of error completely, and if you look close you'll even notice it in games like GTAV. However I think I've minimized it in most cases.
     
    ThunderTruck and John-G like this.
  21. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    When will the latest one hit asset store? :) Water has been the bane of my life for too long.
     
  22. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    The current version (2.1 experimental) has not been submitted to the store, though you can download it if you're registered on my website.

    The final version of 2.1 will be ready soon, though I don't have an exact date. Perhaps by the end of the week, or this weekend :) Once the final version is available on my site I'll also be submitting it to the store as well.
     
  23. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    UNITY 5.1 report.... I just tested Suimono in the latest Unity version and all seems to be working well :)
     
  24. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Cant wait to try I just registered my purchase with you.
     
  25. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Grabbed the latest version, seems very very impressive indeed! Makes the game look absolutely great. My only problem (apart from that it seems very performance heavy) is with the reflections, I have made a layer called reflectme, and only added items that I want to reflectto that layer, and specified that layer alone in the suimono reflection settings. However it is showing me stuff that is not on the reflectme layers too. Also from some angles things that are reflecting well and intended to be reflected suddenly disappear. Also in some cases the water is reflecting something that isnt visible and is on a floor below the water.

    I am trying to integrate this into my game which uses UFPS and Adventure Creator. Any tips would be great, thisis the closest Ive got so far to AAA working water and it's very exciting :) Thanks!.. Gaz.
     
  26. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    I did try doing as you described here on my end, and the first time it didn't render the reflect layer, just as you've said. The second time it rendered fine, so I'm not sure if the setting needs to be set, and saved before it will pick up the change?

    There is certainly a bit of unpredictable behavior in some of the layer selection function in the current version. I've fixed a few bugs with this in the next update and I also prevent the water layer from rendering when it shouldn't (such as in the transparency calculations). Hopefully the next update will fix this for you.

    I don't have much direct experience with UFPS, but @CaptainMurphy posted a few tips about using this with Suimono over on my help forum, check it out here: http://tanukidigital.com/forum/index.php?topic=584.msg1702#msg1702
     
  27. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    I'm experiencing drops in performance recently too. I am adding content so its that as well, but I suspected it may partly be Suimono / Tenkoko updates I applied too.

    I just went through something like this ....in my case I had water drawing correctly in one area (foam, shore-waves, and reflections), eg ....







    but not in another a small distance away - where there was no foam, no shore-waves, and strange reflections - reflection looked like a super-scaled blade of grass ....






    When I thought about it I realized the supersized blade of grass was a clue ... and suggest the players position was so far from the cam used for reflection it was supersizing reflections. I was already changing cams on Suimono as I had a few around my scene, but it seems I was setting only one. Once I set both 'Scene Camera Object' and 'Scene Track Object' in Suimono Module it worked ...



    good luck
     
    chingwa likes this.
  28. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Thanks for the link, although I cant quite work out what he is trying to say. What does he mean background camera? In suimono module I have scene camera object and scene track object set to FPSCamera (inside my UFPS guy) Im not sure if this is correct, I dont even recall doing it so maybe suimono picked it for me.

    Still not got much an idea why things not even on the right layer show up, or why reflections come in and out, I suspected it was to do with occlusion culling but turning it off didnt work. One thing ive noticed is when I right click to zoom things often appear in the reflections that arent on the right layer, Im guessing its something to do with the weapon camera on UFPS maybe. It is really hard to say whats up, and one last thing I just put some palm trees on the layer reflectme and theyve got a very odd white "shadow" on the water, see below.

     
  29. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    I saw this mentioned somewhere by another poster.
    There is a very definitive appearance change between near and far (though not really very far) on this infinite ocean effect. I have found no setting to edit this. Any ideas?

     
  30. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    @Don Gray is this Suimono 2.1? I'm almost positive this was addressed already...
     
  31. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    @radiantboy Suimono probably picked out the cameras for you by default. Often this works fine, but with a multi-cam setup like in UFPS you may need to experiment with what cameras should be tracked. I would first set both suimono camera trackers to use the main UFPS camera (not the weapon camera)... set them explicitly in the suimono_module, and then save and play your scene.

    I have to admit thought hat I've ever seen the white shadow before... it's possible this might be the foam effect showing up in the wrong position, which you can test either by turning the foam alpha color down to 0, or by removing the tree layer from the Shoreline calculation layer list...
     
  32. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278

    Yes, as you guessed, it was not the latest version.
    I had downloaded and unzipped it but not imported it.

    :)

    Thanks!
    Don
     
    chingwa likes this.
  33. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    I've been making some tweaks and edits to the UI and settings for the upcoming final version of 2.1. Some of these changes are added attributes, but most is just a rearranging to better suit the organization and workflow of using the editor.

    I've been realising for a while that while including all these different settings and options makes Suimono a very powerful and flexible system on one hand, on the other it increasingly gives it a harder learning curve to those just starting out. To that end I'm implementing an "Editor Mode" option at the top of each water surface window, which can be used to switch the editor between the full "Advanced" version of the options, and a simplified version that just gives a select few important settings and colors. Hopefully this will make the UI a bit less intimidating :)

     
  34. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Hi,

    I'm close to completing a scene, but am having ridiculous performance - like 10FPS in some cases. So I've starting analysing it by duplicating the scene, then removing large chunks to see where the performance bottlenecks are. I've removed just about everything except one small area and only gained around 3 - 5 FPS. That's probably because I use occlusion in the full scene - which seems pretty effective in my case (underground caves etc mostly). So now I'm concentrating on that small area only - deleted all else. I have Suimono and Tenkoko, and deferred linear rendering (tried forward too with similar results).

    Obviously there is also the possibility to improve by optimizing my meshes and textures, better atlassing etc which I will work at (I don't have any lights other than Tenkoko in this scene) ... but looking at the stats below, I don't expect too much there. And it may well be that my case is worse (or better) than someone else's ... but regardless, it still deserves to be useable. Its not even a big scene as you can see below - as most is stripped out - 104k tri's.

    So below are some stats on my simplified scene with Suimono 2.1 and Tenkoko 1.0.4. I obviously want them in there as they are magical ... just hoping they can become usable, and posting my findings here hoping some others can comment on their experiences as I may (hopefully) be doing something very wrong, and also as feedback to Chingwa from users using his products in different scenes

    Actually a note to Chingwa : I recommend in testing that more assets are used, and not just base testing on the demo scene - as that's just really a beach scene with not much else happening. Maybe use a scene like Unity's PBR Viking village with Suimono and Tenkoko on an 'average' gaming PC to get a better feel for user experience.

    A) Scene Only
    FPS 57-91
    SetPass Calls 63
    Drawcalls 122
    Tris 104k
    Total Batches 148
    Dynamic Batching: 30 batched, 6 batches, 472 tris
    Static Batching: 32 batched, 6 batches, 5.5k tris


    B) Scene + Tenkoko
    FPS 38-46
    SetPass Calls 277
    Drawcalls 652
    Tris 618k
    Total Batches 777
    Dynamic Batching: 188 batched, 36 batches, 8.8k tris
    Static Batching: 144 batched, 19 batches, 22.4k tris


    C) Scene + Suimono
    FPS 29-32
    SetPass Calls 611
    Drawcalls 689
    Tris 535k
    Total Batches 765
    Dynamic Batching: 89 batched, 17 batches, 1.4k tris
    Static Batching: 95 batched, 19 batches, 14.1k tris


    D) Scene + Suimono + Tenkoko
    FPS 10-14
    SetPass Calls 1342
    Drawcalls 1895
    Tris 1.6m
    Total Batches 2157
    Dynamic Batching: 440 batched, 56 batches, 18k tris
    Static Batching: 306 batched, 44 batches, 47k tris


    SUIMONO (C) :
    ------------
    So in my example (C), FPS dropped 50% - 66% of same scene without Suimono (A).
    That is extreme.
    When I researched this a while back I heard of figures around 15-20% ... which are also significant but at least that can be worked with. Over 50% is murder.

    Now I know 2.1 is a beta ... so is this expected to improve that much when its finalized? I'm hoping so, and that as its a beta hopefully there is some ugly temporary overheads that are going to dissappear!

    I tried making the performance changes suggested in the forums but I'm not seeing big differences:
    - Completely disabling Tesselation made no real difference other than visual.
    - Disabling Shoreline improved 3FPS and removed 10k tri's off the 535k tri's ... so probably not worth disabling for the visual improvement it offers, but its an option.
    - Disabling Reflections dropped tri's to 359k from 535k, but no noticeable FPS change although there probably would be depending on the CPU/GPU queue. This explains where a lot of those tri's are coming from! Can the reflection not be dealt with some other way - what about on a very low density mesh? A quad is probably not idea as one wants the reflections to show on the rise of the waves, but I would imagine a low density mesh would be ok? Maybe using a Quad should be a 'Performance Setting' ? ... Like Reflection options : "Full", "Low Density", "Quad", "None" instead of just Enable. I already have transparency texture down to 256 in size.

    LOD:
    I only see one LOD : SuimonoLOD01 - at 5000 tris
    Are there multiple of these loaded per tile? ... it looks like it for reflection at least.

    I'm not sure why I'm seeing 567 extra drawcalls with Suimono? Not to mention 431k extra tri's (almost half million).

    So how much visual quality do we lose if these number are halved? Surely 200k tri's is ample? And it must be possible to reduce drawcalls significantly.

    What I also don't get is that non-infinite Suimono (3DWaves or "Flat Plane") doesn't change much - 530k tri's and 28-34FPS ... so its not just the 'extended' surface of tiling, but rather all in the one base tile.

    1) Can we get LOD meshes please? I'm kind-of surprised that's not already in the package. As ocean is often in the background at a distance most of time, so this is sure to help in many cases. Maybe an LOD_2 with 50% tri's (or even less - like 30%), then LOD_3 with minimal tri's - just enough for flat rendering of textures.

    2) I also suggest a SUIMONO "Lite" option ... so in cases where the designer knows Suimono will be in the background only to use this prefab. This may be the LOD_02 mesh from the main prefab - but also with further LOD's. Also I'd like to see more options to disable some of the 'heavy' processing for these cases. Essentially this is a lower quality option for large performance gains ... so designers can use whichever suits their scene.

    This will also suit many inland lakes and rivers better where there is not such intense wave action needed etc.

    3) I've asked for this previously (and Chingwa agreed its a good idea) - so just a bump really as I for one could definitely use it now ... please add some more prefabs for smaller surfaces like rock pools etc, like 25x25. That will help save a lot of resources.

    4) Can the performance-eating processes be better isolated? If so, it will be an idea to add more options under performance to disable them. But also perhaps an option to 'dynamically' disable them - so similar to a LOD system as you already have the camera transform. Perhaps with the option enabled they can dis-able/re-enable based on distance and execution time etc

    5) What about lighter options for things like reflection cams etc. ... i'm think maybe they don't need to be taking pics at full FPS, and maybe they can take lower res pics or have a way to automatically use lower LOD of the objects they include in the pics.



    TENKOKO (B)
    ----------
    Again ... massive performance degradation - 40 -50% loss.

    Similar to SUIMONO ... I don't understand why there is 514k extra tri's ... thats over half a million! Not to mention 530 extra drawcalls.

    Unless I'm doing something really nutty, Tenkoko needs a lot of optimization. Also serious options to disable performance hoggers, perhaps optional 'Lite' meshes etc.

    - Disabling Star, Aurora, and Galaxy Rendering strangely makes hardly any difference.

    As many games are multi-scene, it may be better that Tenkoko (like Suimono) is only used at full quality in specific scenes. The thing is, to save processing overhead by not using Tenkoko in some scenes would mess the game up.

    Again ... there should be a "LITE" option here - with a fraction of the tri's (maybe like 100k? or 50k) and reduced processing (so some code disabled etc, hopefully some cheaper not-as-perfect replacements), also - smaller textures that are also atlassed better. It must surely be possible to still get decent visuals with a lot less ... sure, perhaps its not 100% pixel perfect .. but again the designer should have the option of using what they need, when they need it. A 'Lite' Tenkoko option would still make it better than most sky solutions out there, and certainly better than skyboxes!



    Looking deeper into the performance issue I found the most expensive process in most of my frames is the GPU Drawing of Transparent Geometry -> Mesh.DrawVBO at 38.5%. That constitutes 354 drawcalls where all except 41 are TenkokoCloudPlane.

    Now I know the cloudplane would be made up of overlaid textures to simulate a 3D cloud ... but surely these can be atlassed to reduce drawcalls? Also they are small clouds in the sky so occupy maybe 10% screen-space max ... theres no reason for them to be large textures ... so loads of them can fit on one atlas efficiently.

    _____________________

    In summary, I think Suimono and Tenkoko are amazing art assets, and they've been developed to an extremely high visual standard, but if my experience above is not overly flawed then I battle to see them in real use, unless its in the simplest of scenes (maybe outdoor fishing game with only boat and character assets etc) and/or on extreme hardware. And I REALLY want to use them. My hardware is pretty good for gaming, but certainly not the latest hardcore GPU etc.

    Good game design is mostly making small sacrifices for the greater good, and trying to find more ways of 'tricking' effects cheaply. I'd like to have ways to disable the bottlenecks to prevent these large overheads when not absolutely necessary.

    I can understand not wanting to reduce the overall artistic visual quality of these products, but there needs to be usable options. I believe including stripped down "LITE" versions for this purpose is a great way to achieve that and still deliver the main top-quality juiced-up "art" product. That will give users more confidence and ability to use these products in more scenes. Even if they are downloadable from the website for licensees only so as not to overcomplicate packaging etc. I know its a bit more effort to maintain, but its really necessary to have these stripped down versions - although much of it can be managed in code quite easily.

    But please, we need more options to reduce overhead, and soon as developers are starting to want to deliver products. So please prioritise this for both Suimono and Tenkoko.
     
  35. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Is there a simple way to turn off the water when you arent looking at it? it seems to be using cpu when its behind you, can I mark it static etc with no bad effects?
     
  36. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thanks for that post, @mwituni. I have been debating on Suimono for a long time now but the performance scares me. I just can't afford to use that much for one asset no matter how beautiful. A light version would be fantastic but I also like the ideas of fine tuning some of the performance issues.

    I need this for a river so a light version would be ideal. But I also need this later for an ocean so LOD's and atlased textures would help.
     
    BackwoodsGaming likes this.
  37. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Thanks for the reply. Suimono + Tenkoko are magical together, I definitely recommend them if you can work around the performance, hopefully we'll see some options to help soon.

    I guess in some cases ( eg. a beach scene or ship at sea ) one can get away with it as is. But the problem is what to use in other denser scenes where you don't want to use a different looking product.


    If its "Infinite Ocean" then its in front of you too - under the ground.

    You can try occlusion - like create a large stretched cube under ground and above water (it must not intersect), mark it as occluder static and occludee static, then build occlusion areas. I've not tried it to occlude Infinite Ocean yet, but it (should) work. Actually I think I can try use that in the current scene to hang onto Suimono, thanks for the bump.
     
  38. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I am pretty sure I can't work around a performance hit like that. :) I have found ways to lower Water4, but the hit from Water4 is not as much as you stated. I imagine something will be found to fix the problem though. Magical is lovely, but not as good as game play. :)
     
  39. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    @mwituni WOW! Thank you for the very detailed comparison and breakdown of these rendering hangups. I can say that, as you mentioned, the latest 2.1 version is "experimental" seeing as how it introduced some new rendering techniques. I've have already made some improvements to performance for the next version... water shaders should now render in 1 setpass, abovewater/underwater shaders have been separated again, a constant depth rendering bug has been fixed, etc. These should translate into a performance increase for everyone, however how much of an increase is still to be seen, and I'm sure there's even more room for performance improvements. :)

    To answer some of your specific questions...

    1) WATER LOD... YES. This is implemented in the next update. You'll be able to choose from 4 different LOD levels manually. Auto-LODing is not yet implemented, but I'll be looking into the feasability of this for future updates. There are also some editor updates that allow for much easier use of custom meshes and textures.

    2) LITE Options... There are now enable/disable features on some of the heavier features such as reflection, depth, and tessellation. These combined with the new LOD options may go a ways to making this easier to simplify/optimize when needed.

    3) SIZE Options... I think this can now be handled better by using the LOD option instead? Size can always be by scaling in the transform, though it's still a good idea to include a round water mesh option. It may be best to get feedback on the final 2.1 release before deciding if this is actually still needed.

    4) AUTO PERFORMANCE... I don't have any options for this yet, but as mentioned above I'll look into this for a future update. :)

    5) CAMERA Options... There are manual settings for reflection and depth operation fps, I'll see about exposing these for easier customization before the next update! There were also some bugs with the layer selection which have been fixed.

    TENKOKU:
    Much of Tenkoku's performance impact is probably due to the included reflection probe... by default it's rendering the entire scene which, yeah, is probably not the best idea. In the next update I'm defaulting this to just render the sky which should increase performance considerably depending on the complexity of your scene. I suggest changing this on your end as well under Tenkoku DynamicSky-->SkySphere-->Tenkoku_ReflectionProbe and set the Culling Mask setting to "Transparent FX". I'll probably add some UI controls to make this easier as well.

    In addition to that I've also been combining a few rendering functions where possible, and the overall codebase is getting a performance pass in the next update. It remains to be seen how much of an impact this will have, however I think revisiting the reflection probe settings may be the biggest culprit here.

    As for the clouds, unless you're ok with just completely flat clouds (which I'm not) they will always incur a certain amount of overhead simply due to their nature. Your calculations above are really high, and maybe are being inflated by the probe setting as well. In my test scenes the clouds use 15 SetPass calls, which translates to around 800 additional rendered tris. This is regardless of the complexity of the clouds... they are all rendered across the sky at once, so atlasing or other batching techniques will not work in this case.

    ----

    Overall, while I've already implemented and fixed a few of the issues you've brought up here, I think there's always room for performance optimization and the data you've given me will be a good reference to consider future optimizations :)

    The performance of Suimono in particular is also very dependent on the overall optimization of the rest of your scene as it is performing a number of rendering passes in order to calculate proper scene reflection/transparency/depth information. In a well-optimized scene while this will of course have an impact it often is worth the benefits of running Suimono. However, In an un-optimized scene it will simply magnify all underlying performance issues...

    I plan on the final 2.1 update to be ready this week, with a Tenkoku update shortly afterward. :)

    @radiantboy Note: There were some issues with constant depth rendering in 2.1 experimental that I've fixed that should address this. In general though, normal water surfaces should not render/calculate when they aren't within the scene view/render distance. However the infinite ocean will always render in the scene, regardless of which direction you're looking.

    @Teila Dammit... I'm going to make it a personal goal of mine to bring you into the Suimono fold! :) You will experience the magic and be unable to resist. </voodoo>
     
  40. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    :)

    Very sweet of you, Chingwa. :)

    My problem is that our games is a niche game and the niche is not one that has high powered computers. Unity 5 already puts us at the higher end of that niche and I want to make sure we don't go WAY over the top. I love your water and want to use it very badly but before I invest more money an asset that won't work for us (I already own every water system in the asset store practically!), I need to be sure that performance won't affect us too adversely. I can live without Tenkoko as their are other solutions that work and are lighter.

    We are doing desktop so we don't need mobile low, but our game will be full of players and player's objects, houses, trees, etc. and I do worry. :) Believe me, I want "magic" but my players will be more than willing to give up some "magic" for the complex game play they want. They continuously tell me this. lol

    Thank you though for the comment. It makes me feel special. lol
     
  41. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Thanks for the great feedback, your never ending positive attitude, and strong will to see it all through. I can't wait to test the mods you've been putting ... like LOD!

    Possibly ... that would be nicer - although it seemed such a big difference was needed.

    Also - some of those options I tested and they had minor effect.

    Maybe it'll help to have some simplified 'gear-shift' Quality option : 'DogsBreakfast', 'Basic', 'Nice', 'Excellent', 'WorkOfArt' which will make changes to enable/disable sub-components and set defaults on them (which the auto-performance can use too if added later) - this is because many users eyes just glaze over when we try understand the many options and impacts they'd have on the shader engine, and spend days just trying to tweak it. Something as basic as 'DogsBreakfast' (feel free to choose a more appropriate name) is needed even though you would never use it in a scene (some of us will have too!), so don't shy away from it.

    Sure, I'm happy to try using a LOD3 mesh and scale it down to say 25x25.
    The problem with scaling has been the wave scales down too ... but depending on how the LOD meshes are made that may work.

    Yes a round one will be nice.
    Another good shape may be rectangular - for rivers etc. Like 25 x 100 or something.

    The thing is ... its really easy to include a few different prefabs and there will always be users that find them useful.

    Actually, this didn't affect me at all as I had disabled Reflection Probes in Quality Settings to try help performance. I re-enabled it and tried with your suggestion now and its pretty much the same. So no big win there in this case.

    I agree - flat clouds are not good. Although on 'DogsBreakfast' setting (almost) flat clouds may be a necessity.
    What I'm not getting is how you can have 800 tri's and I have half a million. It suggest I'm doing something really silly ... which raises the need for an easy 'Quality' setting as above.

    So perhaps the solution is to try find a way to cap it? Like in 'DogsBreakfast' allow 500 tris max, then scale it up till Advanced maybe like 10 000, and leave it open on 'WorkOfArt' or a very high cap. not just tri's ... but all related processing. Thats both for Siumono and Tenkoko - as both were around half million tris in my case. If I can have each of them in around 1000 (even 10 thousand) tri's .... I think I'll be really happy!


    Brilliant, I look forward to testing with updates.

    I have no doubt some improvements could be made in my scene assets, but as I mentioned I stripped it down into a very small scene so theres not much there ... its about 300 units x 50 x 80 high in physical size, 100 000 tris.

    under the voodoo spell all the current licensees are chanting "Suimono Magic ... Suimono Magic" at Talia o_O
     
  42. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Ahh, maybe. But I am THE TEILA, so I have magic of my own. ;) Only those who know our game will get that, but couldn't resist.

    The person behind Teila is also very pragmatic. Magic bounces off me.:p
     
  43. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    I want to re-stress this - some way of capping.

    After reading that they scale depending on the scene, I did a quick test in a full scene (not the more basic test scene of 100k tri's from earlier tests) ... this scene shows 1.3m tris at 28FPS without Suimono or Tenkoko. When I enable Tenkoko that goes to 4.2 million tri's ! at 18FPS .. thats nearly 3 million additional tri's.

    Enabling Suimono adds 500 000 tri's ... so 4.8million and 8FPS.

    So it seems Tenkoko is scaling a lot. Suimono seems constant at half a million tri's between this full scene and test scene.
     
  44. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    That just does not sound right to me... :/

    On one hand Tenkoku will increase the triangles of your scene simply by the fact that it includes a directional light (LIGHT_World object)which will cast against your scene geometry (If you have other directional lights in your scene they should definitely be turned off). There's nothing to be done about this really as it's simply a result of how dynamic Unity lights work, But at most this would only double your rendered triangles(I think?), I can't think of a reason this alone would multiply your triangles by 4.

    Another possibility is that you have scene geometry on the TransparentFX layer? If this were the case it would then be rendered a second time by the Tenkoku's fog effect, and possibly a third time by the Reflection Probe, depending on it's layer settings?
     
  45. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Thats what I said :confused:

    Probably the reason you not seeing the multiples you expected is because these numbers are based on the current scene camera - just as a guide. But regardless, its a hell of a lot.

    And no - unfortunately no geometry on TransparentFX layer to improve it.
     
  46. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Due to the slow performance, I'm having to enable and disable Suimono and Tenkoko in my current scene. I can do this as most of it is underground, so I'm using triggers to enable / disable.

    I'm getting this error :

    Code (CSharp):
    1. Destroying GameObjects immediately is not permitted during physics trigger/contact, animation event callbacks or OnValidate. You must use Destroy instead.
    2. UnityEngine.Object:DestroyImmediate(Object)
    3. Suimono_reflectionMirror:OnDisable() (at Assets/SUIMONO - WATER SYSTEM 2/SCRIPTS/Suimono_reflectionMirror.cs:170)
    4. UnityEngine.GameObject:SetActive(Boolean)
    5. EventListener:onDoExteriorEnv(Boolean) (at Assets/_SCRIPTS/EventListener.cs:88)
    6. TRIG_ExteriorEnv:OnTriggerExit(Collider) (at Assets/_SCRIPTS/TRIG_ExteriorEnv.cs:23)
    Looking at 170 in Suimono_reflectionMirror in OnDisable() you are using DestroyImmediate()
    I can see a few more DestroyImmediate's.

    Can you change those please so we can use disable.

    Thx
    __________________________________________
    EDIT

    Also, I'm getting a lot of these errors:

    Code (CSharp):
    1. Coroutine couldn't be started because the the game object 'SUIMONO_Module' is inactive!
    2. UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
    3. SuimonoModule:StoreSurfaceHeight() (at Assets/SUIMONO - WATER SYSTEM 2/SCRIPTS/SuimonoModule.js:546)
    But hopefully thats just because of the DestroyImmediate calls above.
     
    Last edited: Jun 19, 2015
  47. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    @mwituni I'll investigate those DestroyImmediate() calls...

    I'm not sure if your second error is related though. Are you sure you have your Suimono_Module enabled in the scene before you press play?
     
  48. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    HI,

    Thanks,

    Yes its active before I hit PLAY.
    But i deactivate it as explained. And reactivate when in range etc.

    And it seems the destroyimmediate does not gracefully close off components. So it may seem to some (running) scripts that the Suimono_Module is (missing) when in fact its just been destroyed immediately.
     
  49. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    Oh I didn't catch that, sorry. I don't think you should be disabling the Suimono_Module object as there are coroutines that are happening when it starts (which is why you start to get errors when it's deactivated I imagine). Disabling the water surface objects when they aren't needed should be ok, but the module is mandatory. It shouldn't cause much of a performance hit by itself without the surface objects.

    EDIT!: Nevermind about the above. I've gone through and fixed this so that you can in fact disable the Suimono_Module object now without the system throwing errors.
     
    Last edited: Jun 20, 2015
  50. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    My water is taking 27% of the cpu when im not looking at it at all. Mind you im using the beta 2.1 I think, I can probably easily write a script to turn it off (im writing one right now to stop npcs calculating when not visible). Everything works pretty good apart from that and reflections, I cant yet go into the water either (using ufps) would be great if there was a simple way to get the ufps guy working as your woman and swimming etc. Great water though, people have been very impressed too by my water abilities, until I say yeh I bought that :)