Search Unity

Ceto (Scrawks Ocean)

Discussion in 'Assets and Asset Store' started by scrawk, May 4, 2015.

  1. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,619
    How about providing an interface for the bouyancy stuff. This would allow you to ship Ceto with whatever implementation you feel is right, but due to the interface, it allows developers to replace it without changing the Ceto code. Sounds not like a bad idea to me.
     
    Rycons likes this.
  2. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Well I'll probably just keep it simple my own using a couple of sample points (bow and stern) and then simply factor roll from wave direction + magnitude from bow and stern. It's very similar to the wipepout/drone hovering stuff I've done so as long as I have the option to keep things fast rolling my own, I'm good.

    Speed is more important than even visuals or simulation for a lot of us, just pointing out :)
     
    twobob, bartm4n and Rycons like this.
  3. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    I have had to scale back a lot of my expectations for what can be done simply for the sake of frames. As much as I loved my super accurate CoB/CoG/FreeSurfaceEffect/RightingMoment/RollPeriod model that I made for Hearts of Oak, it was MUCH too heavy for real world usage. When I cut back to a slightly lower model it worked great until I started adding hundreds of objects into the scene. Now I am down to the point of a super simplistic version that is using much less resources but is still returning pretty similar values for the player. It is hard to tell them apart other than some minor roll variations due to removal of the righting moment calculations and period of roll figures but that can be simulated with some basic drag on the rotation values.

    I would agree that the focus of this project is the shader, not the ancillary code that goes along with it.
     
    Rycons likes this.
  4. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Maybe there's a way to make the buoyancy scalable, kind of like how LOD works? So you could have the best simulation for the closest objects?
     
  5. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I guess having an approximation given the water level would probably be fine. You know the water level already, it starts at 0. So I guess you could sample up to a range of 100 units and from 100-120 gradually damp sample result toward (water level) then from 121 onward just use a fake simulation.

    That's pretty much what I'm doing except for near the beach. But I'm waiting on proper surf and beach before going further. What I did doesn't feel binary because I use the full sample for a while but dampen the result so there's no hard cut off between my faked sim in the distance and the real thing closer.

    You can't tell at all though, at least I can't visually.
     
  6. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    The simplest 'LOD' that I have done was to cut the calculations (buoyancy and gravity) down based on a frame count so that the nearest ones calculated more often and the ones further away did less often. The only thing that did was changed how often the physics impulses were done and really had very little other effect. With Ceto it has been fine pooling the objects (still looping individually for height calls) and so far my testing has had up to almost a thousand buoyancy objects at once without a real slowdown, and this is all prior to full batching of the objects. Once I get this networkable version working I will send it over to @scrawk to take a look at and clean up some more. I imagine he will find a few ways to make it faster.
     
    Karearea and John-G like this.
  7. kideternal

    kideternal

    Joined:
    Nov 20, 2014
    Posts:
    82
    My two cents: I've got a VR project that requires very high framerates, so I had to move away from accurate buoyancy models that kill performance in favor of a modified a version of Scrawk's (old BRDF) script that just takes an average/percentage of the wave/angle changes to simulate mass/inertia. It works well enough to fool the eye. If someone has a better way that isn't computationally expensive I'd be interested in taking a look, of course.

    Regardless, buoyancy can be worked-on separately or in tandem to Ceto, especially because multiple methods are probably necessary to meet all needs, and I don't want to see Ceto's release slowed-down any further by its inclusion. (I'm hoping to release my project with Ceto in a week or so, but may have to go with my modified version of BRDF instead, unfortunately.)
     
  8. pixelquaternion

    pixelquaternion

    Joined:
    Jun 28, 2014
    Posts:
    122
    Hi kideternal,

    Have a look at this paper from fxguides, you will find great info for what you are seeking : http://www.fxguide.com/featured/assassins-creed-iii-the-tech-behind-or-beneath-the-action/
     
  9. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    The will be some nice practical buoyancy scripts in Ceto at some point and the foam will also get a bit of a over haul but there won't be any new features added for the release than what is currently done.

    I am just far to busy at the moment and I needed to focus on more practical matters like performance, memory optimisations and bug fixes. Any thing else will just have to wait for a update after release.

    Memory allocations are now a quarter of what they were. There is also a option to used the depth buffer to apply the depth fade effect instead of using a replacement shader. This results in much less draw calls but the ocean has to be in the transparent queue for this to work.
     
  10. pixelquaternion

    pixelquaternion

    Joined:
    Jun 28, 2014
    Posts:
    122
    Hi Scrawk,

    Don't know if you ever saw those excellent examples on real time buoyancy but in case you didn't here the links:

    https://www.garagegames.com/community/forums/viewthread/132910

    http://www.hindawi.com/journals/ijcgt/2014/580154/

    https://www.merlin.uzh.ch/contributionDocument/download/4292

    http://redgreenblue.squarespace.com/games/2014/12/17/simulated-buoyancy-in-unity

    http://stackoverflow.com/questions/18110225/creating-a-buoyant-boat-in-unity

    The book Game Programming Gems 6 also have a full solution it is also for real time applications.

    And here i stumble upon this guy selling his complete ocean system at a very steep price (1000) but the buoyancy look OK but he doesn't show it in real heavy ocean state.



    Regards
     
  11. pixelquaternion

    pixelquaternion

    Joined:
    Jun 28, 2014
    Posts:
    122
  12. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    Any way to add normals or height data to the foam trail generation? Just need some way to break up the specular on it since it is just as shiny in the foam as it is on the rest of the water.
     
  13. Bartolomeus755

    Bartolomeus755

    Joined:
    Jun 20, 2013
    Posts:
    283
    Awesome job, looks really amazing. Can't wait to get Ceto for my Maritime Simulation project.

    Marko
     
  14. kideternal

    kideternal

    Joined:
    Nov 20, 2014
    Posts:
    82
    Scrawk, I've been trying to improve the performance of your OceanBRDF work while I (patiently?) await Ceto, and wondered if you already have a solution for the slowdown that m_heightsBuffer.GetData(m_heights.data) causes as it stalls the CPU waiting for data from the GPU? This effectively halves the potential framerate. I'm not very knowledgeable in this area, but some Googling around recommends using a ComputeShader to copy the array and eliminate the stall.

    It's probably worth mentioning that almost nobody will need the entire height array back in C#-Land for determining heights, so if it's possible to just query the GPU directly via a small array of height look-ups, that's probably a more efficient solution.

    Hopefully you've already figured out how to do this more efficiently and can just ignore this. ;)
     
    dreasgrech and hippocoder like this.
  15. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    Ive looked into this issue a lot and never found a solution.

    Ceto does the displacements on the cpu using multi threading and this works fine and your can access the heights quickly. The catch is its not practical to use a fouier size greater than 64 but I think its large enough to look good while still performing well.

    There is a option to do the displacement on the GPU and have it read back but if your making a game I do not recommend this method. It was only added for people doing games (like a flight sim) where they dont need buoyancy so the read back can be disable or for people doing engineering demos where performance is not critical..

    The read back is done with a compute shader. There will still be a stall. Reading the data back causes a flush in the GPU pipeline. This means the GPU will execute all the tasks it has backed up before the it does the read back as it needs to make sure what is read back is the most current data.

    Its far more practical to read back the whole texture than to just query on the GPU and send back the result. Maybe for a small number of samples this will be ok but for most applications many height querys will be needed and they need to be done at any time. This means you could have many small read back over a frame and its not the amount of data that gets sent back thats the problem its the stall it causes. While I havent tested if many small querys cause many stalls Im pretty sure this will be the case and either way it would be a complicated set up and not something I have time to implement especially since this whole problem has been solve by running the displacements on the cpu.
     
  16. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    You can but you need to modify the add foam trail script.

    on line 263 the foam overlay is created add this code after it.

    Code (CSharp):
    1.  
    2. overlay.NormalTex.mask = foamTexture;
    3. overlay.NormalTex.maskMode = OVERLAY_MASK_MODE.WAVES_AND_OVERLAY_BLEND;
    4.  
    This will just mask the wave normals to be more flat where the foam is strongest.

    EDIT - Actually this will mask the normals to point up more which makes the foam more reflective so its the opposite to what you want sorry. I dont think there is a way to do this currently.
     
    Last edited: Sep 15, 2015
  17. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Just a basic video showing Ceto running with Truesky and uFS. The perfect triple combination for any budding flight sim creators out there.



    Screen capture is stutters a bit and audio is popping, have to figure out how to configure the software properly yet.


    EDIT: Got the screen capture working now so remade a new one:



    EDIT: Get this error after scene is running a few minutes.

    Ceto Error:</color> System.InvalidOperationException: Can not wait on a task that is already done
    at Ceto.Common.Threading.Tasks.ThreadedTask.WaitOn (Ceto.Common.Threading.Tasks.ThreadedTask task) [0x00018] in C:\Users\Sim2Reality\Documents\Ceto TrueSky Beta Test\Assets\Ceto\Scripts\Common\Threading\Tasks\ThreadedTask.cs:237
    at Ceto.WaveSpectrumBufferCPU.Run (Ceto.WaveSpectrumCondition condition, Single time) [0x000b3] in C:\Users\Sim2Reality\Documents\Ceto TrueSky Beta Test\Assets\Ceto\Scripts\Spectrum\Buffers\WaveSpectrumBufferCPU.cs:442
    at Ceto.DisplacementBufferCPU.Run (Ceto.WaveSpectrumCondition condition, Single time) [0x00006] in C:\Users\Sim2Reality\Documents\Ceto TrueSky Beta Test\Assets\Ceto\Scripts\Spectrum\Buffers\DisplacementBufferCPU.cs:69
    at Ceto.WaveSpectrum.GenerateDisplacement (Single time) [0x000ff] in C:\Users\Sim2Reality\Documents\Ceto TrueSky Beta Test\Assets\Ceto\Scripts\Spectrum\WaveSpectrum.cs:563
    at Ceto.WaveSpectrum.Update () [0x002ce] in C:\Users\Sim2Reality\Documents\Ceto TrueSky Beta Test\Assets\Ceto\Scripts\Spectrum\WaveSpectrum.cs:434
    UnityEngine.Debug:Log(Object)
    Ceto_Ocean:LogError(String) (at Assets/Ceto/Scripts/Ocean/Ocean.cs:509)
    Ceto.WaveSpectrum:Update() (at Assets/Ceto/Scripts/Spectrum/WaveSpectrum.cs:441)
     
    Last edited: Sep 15, 2015
  18. Sharlatan

    Sharlatan

    Joined:
    Jul 23, 2013
    Posts:
    111
    I think so too! I mean, it's absolutely great as it is without a doubt! It's simply astounding! But I'd really imagine that most people looking for a great looking ocean asset are also planing on making a game that at least somewhat depends on some kind of interaction with the water.
    Of course people could implement proper buoyancy themselves. But I'd argue that most people that will be buying an ocean asset aren't able or don't have the time to make an ocean system themselves. And if they don't have the time/skill for that, chances are that they'd have an even harder time integrating a buoyancy system.

    @scrawk It's been quiet a while but I once sent you some questions regarding getting started with my own ocean simulations and you were so incredibly nice and took time out of your day to give me great, lengthy and super helpful answers (also really motivated me in my endeavors to give back to the community and to try to share my work and what I learned on my journey as game dev so others can get something out of my work too)! I'd again like to thank you for that and am happy to see I'll soon be able to give something back and support you by buying your asset! Thank you again and keep up the incredible work! :)
     
    Last edited: Sep 15, 2015
    scrawk likes this.
  19. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    People. Author has already said he'll look into it post release and provide something cool. So will the community. Heck I'll cook something up for you. But he also said very clearly that bugs, performance etc take priority, and they do. After all you want it to actually you know, run on your computer.

    Ocean rendering esp buoyancy is the slowest part of my game right now so anything that can improve this will be brilliant indeed from my POV.

    I've noticed it is possible to have a read back without affecting framerate whatsoever, but this is at cost of having data a frame or two out of date (and oceans don't really change data frequently enough for this to ever be a problem + interpolating result). The key is reading from the texture when it's absolutely guaranteed to not be in use. So ceto would probably copy this information to a render texture every 2nd frame and read from it in the alternate frame, or just double buffer it and hope for the best, which should in theory work.
     
    Last edited: Sep 15, 2015
    dreasgrech and cygnusprojects like this.
  20. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    @John G. : That error is the threading error Captain Murphy had.This should be fixed in version 1.0.3. Can you please tell me what version your on? Theres a version txt in Ceto folder.

    @hippocoder : I had tried waiting a frame before reading it back but there was still a stall. Maybe I need to look into that again. Maybe I need to make a copy of the texture and then wait a frame or two.
     
    John-G likes this.
  21. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
  22. Sharlatan

    Sharlatan

    Joined:
    Jul 23, 2013
    Posts:
    111
    Sorry, I didn't mean to come across nagging or anything. I'm also absolutely fine with buoyancy being something that'll come later on and didn't mean to imply scrawk should change his mind and put it into release 1.0
    I agree that the stability and performance he's working will provide a very solid foundation to build upon.
    Just wanted to add my voice to the other ones wishing for this feature to give scrawk (hopefully) valuable feedback on what additional features potential buyers might want most and as an extension of that to hopefully help him to get as many sales for this incredible asset as possible.
     
  23. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Oh yeah, sorry if I came across harsh, I was just thinking maybe nobody noticed what the author said. I think it would indeed increase sales so long as there is a basic one in to start too.
     
  24. Blotee

    Blotee

    Joined:
    Aug 24, 2015
    Posts:
    2
    Hi Scrawk! I am looking forward your open beta version so as to test Ceto on my game. I hope you will share it with us soon ;).

    I have one question: I would like to include Ceto on a Unity GL build but I think there will be problems with multithreading ( I think the unity GL builds dont support multithreading. I tried to build your previous ocean indie scene with Unity GL and It threw a threading exception).

    Would CETO solve this problem. Maybe with a GPU version for unity GL the problem could be solved, but as I have read Ceto will not use GPU, will it?

    Thanks a lot scrawk and I am looking forward to test your awesome development!
     
  25. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    Not sure what you mean by Unity GL (web player, webGL?) .

    This project also uses multi threading so if the last one did not work for you then neither will this one.
     
  26. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    We are running into an interesting issue with Time of Day asset and Ceto. If we turn up foggy conditions and then put a light source in the scene we get this:



    I am not sure what shading the fog is using but it sure causes some interesting coloring on the water.

    I also get little black squares showing up if the camera has blur put on it. I am going to guess both of these are based on post effects of some type.
     
  27. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804

    Ok. I'm not sure what either of those issue is. I've made a lot of tweaks and bug fixes for the next version so maybe the time of day issue will go away. If not I will have to get a copy of it and have a look.

    I will check the blur issue. There is a underwater post effect script on camera in last update. If you have it on the camera disable it and see if it still happens.
     
    Last edited: Sep 19, 2015
    hopeful and CaptainMurphy like this.
  28. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    @scrawk is it possible to disable the underwater script when camera is above water and only enable it when below water.
    Have an issue where the underwater is causing tearing on the horizon that always above water and clouds.
    Can be seen in the video I made previous:
     
  29. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    Thats caused by a depth fighting issue in the mask thats used to determine if a pixel is below or above water.

    Have fixed the depth fighting issue and the underwater script will now not run if its not underwater. Will be in next update.
     
    hopeful and John-G like this.
  30. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Bug Report: Ok I've finally nailed down the cause of an issue I mentioned to you in PM that happens at certain angles.
    It appears its related to shadows, if a shadow in being cast from an object behind the camera Ceto is applying the shadow over the ocean surface as can be seen in this pic:
    (Object casting the shadow was another ship behind camera at the lower right of the screen)

    If i turn of shadows, everything is ok. But turning on shadows either hard or soft causes the shadow bug.

     
  31. verenion

    verenion

    Joined:
    Mar 25, 2013
    Posts:
    10
    So excited for this to be released. I've actually stopped working on my ocean rendering until this has been released now - as I know I wont be able to achieve results like this on my own. Is there any information yet about when / how much this will be?
     
  32. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804

    Ok. Thats a new one. Will add it to the list.

    @verenion: Im hoping to have the release version done this week. Price will be $80.
     
  33. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    So foam is getting a bit of a over haul.

    The foam texture that currently gets applied to the spectrum foam has been moved to the ocean script and is now applied to both the spectrum foam and overlay foam. Theres also a scroll speed to move the textures over time if you want.

    This means you can get more detail in the overlays foam which was not possible before. The idea is that you use the overlays as a alpha of where you want the foam and the texture then adds the fine detail. It also means you can use the overlays to add edge foam where you want like at the shore line.

    This does means that all the foam has the same texture but in a future update I will add a feature to give the overlay a foam type (ie surface, bubble cloud, shore edge) and apply a texture for each type.

    If you dont like this feature and want to go back to how it was before its a simple change in the shader.

    Ocean48.jpg
     
    elias_t, Rycons, ThunderTruck and 2 others like this.
  34. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Sounds good, looks like a fine addition.
     
  35. Gabo_campitelli

    Gabo_campitelli

    Joined:
    Oct 17, 2012
    Posts:
    426
    Of all available ocean shaders your work has been by far the best. Great results with good performance and amazing realism. I have chose it from first time i saw it. Now i found about Ceto. Can't be more happy after playing the demo and seeing all the improvements. I'll be more than willing to pay for the asset.
    Keep up the good work.
     
    scrawk likes this.
  36. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    The final version for the testers is now out. The demo builds have also been updated.

    This will be the version to go on the asset store. Theres still some issues but it should be usable to most people. The rest of the issues will have to wait to next update.

    For those of you who need the ocean to be in the opaque queue there is now seperate transparent and opaque materials. Just drag which ones you want onto the projected grid component. No more changing the shader queue manually.

    Heres the rest of changes in the new version. All this is in the version txt file in folder.

    Sorry for formatting issue. Was copy and pasted from file.

    Ceto Version 1.0.4

    - The ocean will no longer throw a exception if at least SM3 is not supported.
    Instead any feature that requires at least SM3 will disable its self if not supported.
    Rendering the ocean still requires at least SM3. This is for server that just needed
    to generate the displacement data and dont render anything.

    - The displacement, slope and foam can now be disabled from a tick box on the wave spectrum script.

    - The wave spectrum fourier size can now the changed during runtime.

    - The wave spectrum will now only use temporary render textures.

    - Possible fix for spectrum render textures getting cleared when alt-tabbing.

    - A new query mode called CLIP_TEST has been added. Querys using this mode will just check if
    the position has been clipped and wont sample the wave height.

    - The way in which the uv distortion is applied to the refraction and reflections has been improved.

    - Fixed the bug where in forward and with no image effect on camera the refractions were flipped wrong way.

    - Fixed the bug where the under water effect was showing up where the ocean has a clip overlay added.

    - You can now added you own command buffer to do the refraction grab (if 'useCmdBufferForGrab' enable)
    This will allow you to post process the refraction texture before the ocean samples it.

    - lots of GC optimizations.

    - Fixed depth fighting issues in ocean mask.

    - you can now manually adjust the depth fade to blend between using world y or cam z for the depths.

    - Underwater effect now has a blur option.

    - The spectrum conditions will now be cached so if changing the fouier size, wind speed, wave age or wind dir the script will look to see if previous conditions have already been created with these settings and if
    so the condition will be reused. You can also manually and conditions to the cache to pre-created conditions
    that maybe needed at a later time.

    - The foam textures on the wave spectrum component have been moved to the ocean component.
    The textures will now be applied to the spectrum foam and the overlay foam.

    - Fixed a issue where the under water effect on top side mesh was not being applied correctly when ocean level not at 0.

    - Fixed bug where changing camera fov, near or far plane meant the mask, depths and reflections where not being rendered correctly.

    - Reflections now have a option to blur. Reflection roughness has been replaced with this. The old method just adjusted the mipmap level to blur but this created artefacts when sampling at low mipmaps.

    - New overlay script has been added called AddFoamThruster. This has been designed for ship pod thrusters. Rotating the game object its on will change the foam thruster direction.

    Heres the list of current known issues

    KNOWN ISSUES AND THINGS YOU SHOULD KNOW


    - Performance is poor on low end hardware. My five year old gaming laptop gets 20-30fps.
    This asset is not currently recommended for older hardware or mobile devices.

    - The Current buoyancy scripts are rubbish. They will be rewritten at some point.

    - The waves in the demo scene look like they are jittering. There not. The buoyancy makes
    the ship jitter and as the camera is looking at the ship it jitters to. Unless your using my
    buoancy scripts (not recommended atm) this shouldnt be a issue.

    - The ocean shaders must have zwrite on. Having zwrite off cause front and back faces
    to render other each other. If the camera only looks down on the ocean and waves are small
    (like in a top down RTS game) then this should not be a issue.

    - If you have the ocean shader in the transparent queue then image effects like global fog
    that run after the opaque queue and before the transparent queue will not be applied to the ocean
    You must change the shader queue to resolve this. Not having the shader in the transparent queue
    can cause other issues however.

    - If use 'useOceanDepths' in the underwater script is set to false the shader will get the depth info
    from the depth buffer instead of doing a separate depth pass. This does not work in dx9/deferred with nvidia cards unless zwrite is set to off. Setting zwrite to off causes other issues.

    - If the ocean shaders are in a opaque queue then the grab pass for the refractions will not include the sky
    as it gets rendered after the opaque queue.

    - If the ocean shaders are in a opaque queue and the underwater post effect script is used and using deferred then sky color when viewed from underwater will flicker between white and the solid fill color.

    - There shadows on ocean are darker than what the should be. No ambient light?

    - The reflections are darker than what they should be even when the reflection intensity is increased.

    - Changing the projected grid resolution or grouping during run time creates a bug where there are areas of the mesh missing. This is most visible when the camera moves from side to side fast and when under water.

    - Speed trees will show a odd pattern when the view with the ocean as the background. This is because the ocean does a pass with a replacement shader to get the depth info needed to apply the under water effect. Unity has not given speed trees a unique render type so the replacement shader can not render them correctly. To fix this go to the under water script on the ocean and remove what ever layer the trees are on form the ocean depths layer. This means that if the trees are in the water they will not have the underwater effect applied to them correctly.

    - If the ocean is enabled in scene and when running if viewed from the scene view part of the editor to window
    goes black. If the camera is clicked on in scene view the scene window goes black.

    The demo builds should look something like this...

    Ocean49.jpg
     
  37. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Excellent look forward to using it. :)
     
  38. ThunderTruck

    ThunderTruck

    Joined:
    Sep 25, 2013
    Posts:
    61
    Fantastic look and speed , in my system with gtx 980 at 2560 x 1440 I have 170 fps.
    The only thing is when changing the wave speed then the foam speed is too fast, should be more exponential
     
  39. verenion

    verenion

    Joined:
    Mar 25, 2013
    Posts:
    10
    Ran okay here - I'm running it on low-end device and still got 30 fps; Will try it properly when i get back home. Look forward to getting this in my project!
     
  40. sadicus

    sadicus

    Joined:
    Jan 28, 2012
    Posts:
    272
    UNDERWATER in the Demo! The light fading the deeper you go looks great! $$.00 are ready.
     
  41. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Small issue with lighting when above waves but you see the occasional backface ie just clipping the waterline, some of them are a very deep blue/black which is probably due to not clamping or doing lighting twice for that poly or something (you'll know what I mean, it's a common artefact with color).

    Looks like everything is there ready for us to go, just need to sort out that realistic ish shoreline effect :) I expect you'll be wanting to tackle how it meets objects after launch though.
     
  42. pixelquaternion

    pixelquaternion

    Joined:
    Jun 28, 2014
    Posts:
    122
    Hi Scrawk ,

    Just a quick question here; will it be possible to have harbor not affected like open sea in heavy storm, since that is broken in all ship simulator out there and it is very unrealistic to have high surged waves in an harbor.

    Maybe a system with gradient could be implemented to fade the power of the waves in designated region like harbors?

    This would be a neat feature if you can pull it out.

    Regards
     
  43. verenion

    verenion

    Joined:
    Mar 25, 2013
    Posts:
    10
    I haven't played with the code yet - as I don't have access, however, from the demo, most of the water effects are based on a series of values. You could write a system yourself to manipulate these number based on your position in the world. E.g. The closer to harbours you get, the calmer the water gets - you could interpolate to make this smoother too. Just a thought :)
     
  44. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    It already implemented, look back thru the thread for details. Requires you to create a mask for areas that you wish waves to fade out.
     
    verenion likes this.
  45. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    This feature is demonstrated in the demo you can download. Note the calm sea where the white cubes are? it's tranquil.
     
  46. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    My height checks are all buggered now. I thought initially that it was my networking code but even my single player scenes are way off now.

    Found what is causing it. If the Fourier size is set for a GPU version the heights are all off.
     
    Last edited: Sep 22, 2015
  47. pixelquaternion

    pixelquaternion

    Joined:
    Jun 28, 2014
    Posts:
    122
    Hi John,

    Then it is answering my question and i am please to see Scrawk thought about it since it is a must have feature for realistic harbors.

    Regards
     
  48. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804
    Yes, if the displacement is done on the gpu the read back is disabled by default. You can untick the disable read back to have them read back but its dx11 only.

    I check the black dot issue if using blur. I wasnt getting the issue but I think its was cause by the black dots in the underwater post effect script being blurred. The dots are fixed now so blur shouldnt have the dots?

    @hippocoder: Ive never noticed the back faces. Can you post screen shot?

    @pixelquaternion : Yes you can mask out waves for harbors and it is in the demo. Its very simple to do.
     
    verenion likes this.
  49. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    @scrawk I haven't seen the dots since the latest build. I am also not seeing the black ocean during the fog and lighting either, so those both look good.

    I played with the CPU/GPU and even with readback enabled the heights are way off. I would have to dig out my older version but they were working in the last release, IIRC. I think the only reason I noticed it so readily is because my prefabs were using the GPU version and it was almost immediate they were off in my test scene.
     
  50. scrawk

    scrawk

    Joined:
    Nov 22, 2012
    Posts:
    804

    So the heights are off with both the CPU and GPU or just the GPU?